Zacznij terazZacznij za darmo

Zmiana n-gramów

Do tej pory tworzyliśmy macierze TDM i DTM wyłącznie na podstawie pojedynczych słów. Domyślnie używane są unigramy, ale możesz też skupić się na tokenach złożonych z dwóch lub więcej słów. Takie podejście pozwala wyodrębniać użyteczne frazy, które dostarczają dodatkowych spostrzeżeń lub poprawiają jakość cech predykcyjnych w algorytmach uczenia maszynowego.

Poniższa funkcja korzysta z pakietu RWeka, aby tworzyć trigramy (tokeny trzywyrazowe): min i max są ustawione na 3.

tokenizer <- function(x) {
  NGramTokenizer(x, Weka_control(min = 3, max = 3))
}

Następnie niestandardową funkcję tokenizer() można przekazać do funkcji TermDocumentMatrix lub DocumentTermMatrix jako dodatkowy parametr:

tdm <- TermDocumentMatrix(
  corpus, 
  control = list(tokenize = tokenizer)
)

To ćwiczenie jest częścią kursu

Eksploracja tekstu metodą Bag-of-Words w R

Zobacz kurs

Instrukcje do ćwiczenia

Obiekt corpus został wstępnie przetworzony jak poprzednio na podstawie tweetów o chardonnay. Wynikowy obiekt text_corp jest dostępny w twoim środowisku.

  • Utwórz funkcję tokenizer podobną do powyższej, która generuje bigramy (2-wyrazowe).
  • Utwórz unigram_dtm, wywołując DocumentTermMatrix() na obiekcie text_corp bez użycia funkcji tokenizer().
  • Utwórz bigram_dtm, wywołując DocumentTermMatrix() na obiekcie text_corp z funkcją tokenizer(), którą właśnie utworzyłeś.
  • Sprawdź unigram_dtm i bigram_dtm. Który z nich zawiera więcej terminów?

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# Make tokenizer function 
___ <- function(x) {
  ___(___, ___(___, ___))
}

# Create unigram_dtm
___ <- ___(___)

# Create bigram_dtm
___ <- ___(
  ___,
  ___
)

# Print unigram_dtm
___

# Print bigram_dtm
___
Edytuj i uruchom kod