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

Změna n-gramů

Dosud jsme vytvářeli TDM a DTM výhradně z jednotlivých slov. Výchozí nastavení pracuje s unigramy, ale můžeš se zaměřit i na tokeny tvořené dvěma nebo více slovy. To ti může pomoci odhalit užitečné fráze, které přinesou nové poznatky nebo zlepší predikční vlastnosti pro algoritmus strojového učení.

Níže uvedená funkce využívá balíček RWeka k vytvoření trigramových (tříslovných) tokenů: min i max jsou nastaveny na 3.

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

Vlastní funkci tokenizer() pak lze předat do funkcí TermDocumentMatrix nebo DocumentTermMatrix jako dodatečný parametr:

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

Toto cvičení je součástí kurzu

Dolování textu metodou Bag-of-Words v R

Zobrazit kurz

Pokyny k cvičení

Objekt corpus byl předem zpracován stejným způsobem jako dříve, tentokrát na základě tweetů o chardonnay. Výsledný objekt text_corp je dostupný v tvém pracovním prostředí.

  • Vytvoř funkci tokenizer podobnou té výše, která bude generovat 2-slovné bigramy.
  • Vytvoř unigram_dtm zavoláním funkce DocumentTermMatrix() na text_corp bez použití funkce tokenizer().
  • Vytvoř bigram_dtm zavoláním funkce DocumentTermMatrix() na text_corp s funkcí tokenizer(), kterou jsi právě vytvořil/a.
  • Prohlédni si unigram_dtm a bigram_dtm. Který z nich obsahuje více termínů?

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

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

# Create unigram_dtm
___ <- ___(___)

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

# Print unigram_dtm
___

# Print bigram_dtm
___
Upravit a spustit kód