Stemming slov a doplnění základových tvarů ve větě
Pro toto cvičení použijeme jako dokument následující větu:
"In a complicated haste, Tom rushed to fix a new complication, too complicatedly."
Tato věta obsahuje stejné tři formy slova „complicate", které jsme viděli v předchozím cvičení. Rozdíl je v tom, že i kdybys na tuto větu zavolal/a stemDocument(), funkce by ji vrátila beze změny – žádný stemming by neproběhl. Vyzkoušej to v konzoli a sám/sama se přesvědč. Nezapomeň zahrnout i interpunkci.
Děje se to proto, že stemDocument() bere celou větu jako jedno slovo. Jinými slovy, náš dokument je znakový vektor délky 1, místo délky n, kde n je počet slov v dokumentu. Aby to fungovalo správně, nejprve odstraníme interpunkci pomocí funkce removePunctuation(), kterou jsi se naučil/a v jednom z předchozích cvičení. Pak použijeme strsplit(), abychom rozložili znakový vektor délky 1 na vektor délky n, zabalíme ho do unlist() a teprve poté provedeme stemming a zpětné doplnění tvarů.
Nevadí, pokud ti to přijde trochu zmatené – pojďme si celý postup projít krok za krokem!
Toto cvičení je součástí kurzu
Dolování textu metodou Bag-of-Words v R
Pokyny k cvičení
Dokument text_data a doplňovací slovník comp_dict jsou načtené ve tvém pracovním prostředí.
- Odstraň interpunkci z
text_datapomocíremovePunctuation()a výsledek ulož dorm_punc. - Zavolej
strsplit()narm_puncs argumentemsplitnastaveným na" ". Celé to obal dounlist()a výsledek ulož don_char_vec. - Použij
stemDocument()k provedení stemmingu slov nan_char_veca výsledek ulož dostem_doc. - Vytvoř
complete_doctak, že zpětně doplníš základové tvary ve svém stemmovaném dokumentu pomocístemCompletion()scomp_dictjako referenčním korpusem.
Odpovídají stem_doc a complete_doc tomu, co jsi očekával/a?
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# Remove punctuation: rm_punc
rm_punc <- ____
# Create character vector: n_char_vec
n_char_vec <- unlist(___(___, split = " "))
# Perform word stemming: stem_doc
stem_doc <- ___
# Print stem_doc
stem_doc
# Re-complete stemmed document: complete_doc
complete_doc <- ___
# Print complete_doc
complete_doc