Estrai i nomi con contesto
Riprendiamo il nostro insieme di dati sui politici svizzeri. È composto da due variabili: articles, una raccolta di articoli di cronaca politica svizzera, e politicians, un vettore con diversi nomi di politici svizzeri.
Hai già contato il numero di occorrenze per nome, ma non sarebbe interessante non solo contare i nomi, bensì vedere anche in quale contesto vengono usati? Potresti, per esempio, confrontare se i contesti differiscono tra politiche e politici. Per farlo, dovrai estrarre il testo che circonda i nomi dei nostri politici.
Poiché il testo contiene caratteri di parola \\w così come punteggiatura [:punct:] come punti . o virgole ,, dovrai creare un pattern che faccia combaciare entrambi questi tipi di caratteri.
Questo esercizio fa parte del corso
Espressioni regolari intermedie in R
Istruzioni dell'esercizio
- Usa il vettore
politicianse comprimilo per creare un "or pattern" come hai fatto nel capitolo 2. - Crea un pattern personalizzato tra parentesi quadre
[]che corrisponda sia ai caratteri di parola sia ai segni di punteggiatura. - Usando glue, aggiungi il
contextappena creato sia prima sia dopopolit_pattern.\\s?indica che dopo i nomi dei politici può esserci uno spazio o nessuno spazio.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# Create our polit_pattern again by collapsing "politicians"
polit_pattern <- glue_collapse(___, sep = "|")
# Match one or more word characters or punctuations
context <- "([___[___]]+\\s){0,10}"
# Add this pattern in front and after the polit_pattern
polit_pattern_with_context <- glue(
"{___}({polit_pattern})\\s?{___}"
)
str_extract_all(
articles$text,
pattern = polit_pattern_with_context
)