Extrage nume cu context
Să revenim la setul nostru de date despre politicienii elvețieni. Acesta conține două variabile: articles – o colecție de articole de știri despre politica elvețiană – și politicians – un vector cu mai multe nume de politicieni elvețieni.
Ai numărat deja aparițiile fiecărui nume, dar nu ar fi interesant să nu te oprești doar la numărare și să vezi și în ce context sunt folosite aceste nume? Ai putea, de exemplu, să compari dacă există diferențe de context între politicienii de gen feminin și cei de gen masculin. Pentru asta, va trebui să extragi textul din jurul numelor de politicieni.
Deoarece textul conține caractere de tip cuvânt \\w, dar și semne de punctuație [:punct:] precum puncte . sau virgule ,, va trebui să creezi un tipar care să identifice ambele tipuri de caractere.
Acest exercițiu face parte din cursul
Expresii regulate intermediare în R
Instrucțiuni pentru exercițiu
- Folosește vectorul
politiciansși combină-l pentru a crea un „tipar sau" (or pattern), la fel cum ai procedat în capitolul 2. - Creează un tipar personalizat în paranteze pătrate
[]care să identifice atât caractere de tip cuvânt, cât și semne de punctuație. - Folosind glue, adaugă noul
contextcreat atât înainte, cât și dupăpolit_pattern.\\s?indică faptul că după numele politicienilor poate urma sau nu un spațiu.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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
)