n-Gramme ändern
Bisher haben wir TDMs und DTMs nur mit einzelnen Wörtern erstellt. Standardmäßig werden sie mit Unigrammen erzeugt, aber du kannst auch Tokens mit zwei oder mehr Wörtern verwenden. Das kann helfen, nützliche Phrasen zu extrahieren, die zusätzliche Erkenntnisse liefern oder bessere prädiktive Merkmale für einen Machine-Learning-Algorithmus bereitstellen.
Die Funktion unten nutzt das Paket RWeka, um Trigramm-(Drei-Wort-)Tokens zu erstellen: min und max sind beide auf 3 gesetzt.
tokenizer <- function(x) {
NGramTokenizer(x, Weka_control(min = 3, max = 3))
}
Die angepasste Funktion tokenizer() kann dann als zusätzlicher Parameter an die Funktionen TermDocumentMatrix oder DocumentTermMatrix übergeben werden:
tdm <- TermDocumentMatrix(
corpus,
control = list(tokenize = tokenizer)
)
Diese Übung ist Teil des Kurses
Text Mining mit Bag-of-Words in R
Anleitung zur Übung
Ein corpus wurde wie zuvor mit den Chardonnay-Tweets vorverarbeitet. Das resultierende Objekt text_corp steht dir in deinem Workspace zur Verfügung.
- Erstelle eine Funktion
tokenizerwie oben, die 2-Wort-Bigramme erzeugt. - Erzeuge
unigram_dtm, indem duDocumentTermMatrix()auftext_corpaufrufst, ohne die Funktiontokenizer()zu verwenden. - Erzeuge
bigram_dtm, indem duDocumentTermMatrix()auftext_corpmit der gerade erstellten Funktiontokenizer()verwendest. - Untersuche
unigram_dtmundbigram_dtm. Welche hat mehr Terme?
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# Make tokenizer function
___ <- function(x) {
___(___, ___(___, ___))
}
# Create unigram_dtm
___ <- ___(___)
# Create bigram_dtm
___ <- ___(
___,
___
)
# Print unigram_dtm
___
# Print bigram_dtm
___