LoslegenKostenlos loslegen

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

Kurs anzeigen

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 tokenizer wie oben, die 2-Wort-Bigramme erzeugt.
  • Erzeuge unigram_dtm, indem du DocumentTermMatrix() auf text_corp aufrufst, ohne die Funktion tokenizer() zu verwenden.
  • Erzeuge bigram_dtm, indem du DocumentTermMatrix() auf text_corp mit der gerade erstellten Funktion tokenizer() verwendest.
  • Untersuche unigram_dtm und bigram_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
___
Code bearbeiten und ausführen