Stemming i uzupełnianie rdzeni w zdaniu
W tym ćwiczeniu jako nasz dokument przyjmiemy następujące zdanie:
"In a complicated haste, Tom rushed to fix a new complication, too complicatedly."
Zdanie to zawiera te same trzy formy słowa „complicate", które widziałeś(-aś) w poprzednim ćwiczeniu. Różnica polega na tym, że wywołanie stemDocument() na całym zdaniu nie spowoduje wyodrębnienia rdzeni – zdanie zostanie zwrócone bez żadnych zmian. Sprawdź to samodzielnie w konsoli, pamiętając o zachowaniu znaków interpunkcyjnych.
Dzieje się tak, ponieważ stemDocument() traktuje całe zdanie jako jedno słowo. Innymi słowy, nasz dokument to wektor znakowy o długości 1, zamiast długości n, gdzie n to liczba słów w dokumencie. Aby rozwiązać ten problem, najpierw usuwamy znaki interpunkcyjne za pomocą funkcji removePunctuation(), którą poznałeś(-aś) kilka ćwiczeń temu. Następnie dzielimy ten wektor znakowy o długości 1 na wektor o długości n funkcją strsplit(), stosujemy unlist(), a potem przechodzimy do wyodrębniania i uzupełniania rdzeni.
Nie przejmuj się, jeśli to brzmi skomplikowanie – przejdziemy przez cały proces krok po kroku!
To ćwiczenie jest częścią kursu
Eksploracja tekstu metodą Bag-of-Words w R
Instrukcje do ćwiczenia
Dokument text_data oraz słownik uzupełnień comp_dict są już wczytane w twoim środowisku pracy.
- Usuń znaki interpunkcyjne z
text_dataza pomocąremovePunctuation()i przypisz wynik dorm_punc. - Wywołaj
strsplit()narm_punc, ustawiając argumentsplitna" ". Zagnieźdź to wewnątrzunlist()i przypisz wynik don_char_vec. - Użyj
stemDocument(), aby wyodrębnić rdzenie słów zn_char_vec, i przypisz wynik dostem_doc. - Utwórz
complete_doc, uzupełniając rdzenie w dokumencie za pomocąstemCompletion()zcomp_dictjako korpusem referencyjnym.
Czy stem_doc i complete_doc wyglądają tak, jak się spodziewałeś(-aś)?
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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