Word Stemming und Stem Completion an einem Satz
Betrachte für diese Übung den folgenden Satz als unser Dokument:
"In a complicated haste, Tom rushed to fix a new complication, too complicatedly."
Dieser Satz enthält die gleichen drei Formen des Wortes „complicate“, die wir in der vorherigen Übung gesehen haben. Der Unterschied hier ist, dass selbst wenn du stemDocument() auf diesen Satz anwendest, der Satz unverändert zurückgegeben wird, ohne Wörter zu „stemm(en)“. Probier es kurz in der Konsole aus. Achte darauf, die Satzzeichen mit einzuschließen.
Das passiert, weil stemDocument() den gesamten Satz als ein einziges Wort behandelt. Anders gesagt: Unser Dokument ist ein Zeichenkettenvektor der Länge 1 statt der Länge n, wobei n der Anzahl der Wörter im Dokument entspricht. Um dieses Problem zu lösen, entfernen wir zuerst die Satzzeichen mit der Funktion removePunctuation(), die du vor ein paar Übungen kennengelernt hast. Dann wenden wir strsplit() auf diesen Zeichenkettenvektor der Länge 1 an, sodass er Länge n erhält, unlist()-en das Ergebnis und führen anschließend Stemming und erneute Vervollständigung durch.
Keine Sorge, falls das verwirrend klang. Gehen wir den Prozess Schritt für Schritt durch!
Diese Übung ist Teil des Kurses
Text Mining mit Bag-of-Words in R
Anleitung zur Übung
Das Dokument text_data und das Vervollständigungswörterbuch comp_dict sind in deinem Workspace geladen.
- Entferne die Satzzeichen in
text_datamitremovePunctuation()und weise das Ergebnisrm_punczu. - Rufe
strsplit()aufrm_puncmit dem Argumentsplitgleich" "auf. Verschachtle dies inunlist()und weise das Ergebnisn_char_veczu. - Verwende erneut
stemDocument(), um Wortstemming aufn_char_vecdurchzuführen, und weise das Ergebnisstem_doczu. - Erstelle
complete_doc, indem du dein gestemmtes Dokument mitstemCompletion()wieder vervollständigst undcomp_dictals Referenzkorpus verwendest.
Entsprechen stem_doc und complete_doc deinen Erwartungen?
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# Remove punctuation: rm_punc
rm_punc <- ____
# Create character vector: n_char_vec
n_char_vec <- unlist(___(___, split = " "))
# Perform word stemming: stem_doc
stem_doc <- ___
# Print stem_doc
stem_doc
# Re-complete stemmed document: complete_doc
complete_doc <- ___
# Print complete_doc
complete_doc