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
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
tokenizerpodobnou té výše, která bude generovat 2-slovné bigramy. - Vytvoř
unigram_dtmzavoláním funkceDocumentTermMatrix()natext_corpbez použití funkcetokenizer(). - Vytvoř
bigram_dtmzavoláním funkceDocumentTermMatrix()natext_corps funkcítokenizer(), kterou jsi právě vytvořil/a. - Prohlédni si
unigram_dtmabigram_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
___