Začněte nyníZačněte zdarma

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

Zobrazit kurz

Pokyny k cvičení

  • Vezmi vektor politicians a 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í glue přidej nově vytvořený context jak před, tak za polit_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
)
Upravit a spustit kód