我在使用R中的tm
包做一些文本挖掘工作。一切都很顺利。但是,在提取词干后,出现了一个问题(http://en.wikipedia.org/wiki/Stemming)。显然,有一些单词具有相同的词干,但重要的是它们不应该被“合并”(因为这些单词有不同的含义)。
例如,看下面的4个文本。在这里,您不能将“lecturer”或“lecture”(“association”和“associate”)互换使用。然而,在第4步中却这样做了。
是否有任何优雅的解决方案可以手动实现某些情况/单词(例如保持“讲师”和“演讲”为两个不同的词)?
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)