Extrakce jmen s kontextem
Vraťme se k datové sadě o švýcarských politicích. Obsahuje dvě proměnné: articles – sbírku zpravodajských článků o švýcarské politice – a politicians – vektor s několika jmény švýcarských politiků.
Počty výskytů jednotlivých jmen už máš za sebou, ale nebylo by zajímavé nejen je počítat, ale také vidět, v jakém kontextu se tato jména objevují? Mohl/a by ses například podívat, zda se kontexty liší u političek a politiků. K tomu budeš potřebovat extrahovat text obklopující jména politiků.
Protože text obsahuje jak slovní znaky \\w, tak interpunkci [:punct:] – například tečky . nebo čárky , – budeš muset vytvořit vzor, který zachytí oba tyto typy znaků.
Toto cvičení je součástí kurzu
Intermediate Regular Expressions in R
Pokyny k cvičení
- Vezmi vektor
politiciansa spoj ho tak, aby vznikl „or pattern" (vzor s alternativami), stejně jako jsi to udělal/a ve 2. kapitole. - Vytvoř vlastní vzor v hranatých závorkách
[], který zachytí jak slovní znaky, tak interpunkci. - Pomocí
gluepřidej nově vytvořenýcontextjak před, tak zapolit_pattern. Část\\s?říká, že za jménem politika může, ale nemusí následovat mezera.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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
)