Ich mache etwas Text-Mining in R mit dem tm
-Paket. Alles funktioniert sehr glatt. Ein Problem tritt jedoch nach dem Stemmen (http://en.wikipedia.org/wiki/Stemming) auf. Offensichtlich gibt es einige Wörter, die den gleichen Stamm haben, aber es ist wichtig, dass sie nicht "zusammengewürfelt" werden (da diese Wörter verschiedene Dinge bedeuten).Text-Mining mit dem tm-Paket - Wort stemming
Für ein Beispiel siehe die folgenden 4 Texte. Hier dürfen Sie nicht "Dozent" oder "Vortrag" ("Assoziation" und "Associate") austauschbar verwenden. Dies ist jedoch, was in Schritt 4 getan wird.
Gibt es eine elegante Lösung, wie dies für einige Fälle/Wörter manuell implementieren (z. B. dass "Dozent" und "Vortrag" als zwei verschiedene Dinge gehalten werden)?
texts <- c("i am member of the XYZ association",
"apply for our open associate position",
"xyz memorial lecture takes place on wednesday",
"vote for the most popular lecturer")
# Step 1: Create corpus
corpus <- Corpus(DataframeSource(data.frame(texts)))
# Step 2: Keep a copy of corpus to use later as a dictionary for stem completion
corpus.copy <- corpus
# Step 3: Stem words in the corpus
corpus.temp <- tm_map(corpus, stemDocument, language = "english")
inspect(corpus.temp)
# Step 4: Complete the stems to their original form
corpus.final <- tm_map(corpus.temp, stemCompletion, dictionary = corpus.copy)
inspect(corpus.final)
Dies ist der Punkt der Stemming. Du machst es um Wurzelwörter zu bekommen. Wenn Sie Unterschiede beibehalten wollen, dann stemmen Sie sich nicht. –
Ich weiß. Aber gibt es nicht eine elegante Möglichkeit, es für einige Fälle zurück zu ändern? – majom