IniziaInizia gratis

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

Visualizza il corso

Istruzioni dell'esercizio

  • Usa il vettore politicians e 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 context appena creato sia prima sia dopo polit_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
)
Modifica ed esegui il codice