1. Nauka
  2. /
  3. Kursy
  4. /
  5. Eksploracja tekstu metodą Bag-of-Words w R

Connected

ćwiczenie

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!

Instrukcje

100 XP

Dokument text_data oraz słownik uzupełnień comp_dict są już wczytane w twoim środowisku pracy.

  • Usuń znaki interpunkcyjne z text_data za pomocą removePunctuation() i przypisz wynik do rm_punc.
  • Wywołaj strsplit() na rm_punc, ustawiając argument split na " ". Zagnieźdź to wewnątrz unlist() i przypisz wynik do n_char_vec.
  • Użyj stemDocument(), aby wyodrębnić rdzenie słów z n_char_vec, i przypisz wynik do stem_doc.
  • Utwórz complete_doc, uzupełniając rdzenie w dokumencie za pomocą stemCompletion() z comp_dict jako korpusem referencyjnym.

Czy stem_doc i complete_doc wyglądają tak, jak się spodziewałeś(-aś)?