我正在进行一个文本处理过程,我希望将类似的单词(表格,表格等)转换为一个单词(表格)。我看到tm包提供了一个工具,但这个不支持我正在寻找的语言。所以我想自己创造一些东西。
对于我希望有一个链接表的功能 - >
a <- c("Table", "Tables", "Tree", "Trees")
b <- c("Table", "Tree", "Chair", "Invoice")
df <- data.frame(b, a)
这样我就可以自动将所有“Tables”值转换为“Table”
关于我如何做到这一点的任何想法?
答案 0 :(得分:5)
在R中搜索词干,您可以查看here,然后尝试:
a <- c("Table", "Tables", "Tree", "Trees")
b <- c("Table", "Tree", "Chair", "Invoice")
library("SnowballC")
wordStem(words = a, language = "porter")
##[1] "Tabl" "Tabl" "Tree" "Tree"
library("tm") # tm use wordStem
stemCompletion(x = stemDocument(x = a), dictionary = b)
## Tabl Tabl Tree Tree
##"Table" "Table" "Tree" "Tree"
或者使用起来更复杂但更完整,您可以查看包korPus
并使用TreeTagger来处理您的文字:
library("koRpus")
tagged.results <- treetag(tolower(a), treetagger="manual", format="obj",
TT.tknz=FALSE , lang="en",
TT.options=list(path="./TreeTagger", preset="en"))
tagged.results@TT.res
## token tag lemma lttr wclass desc stop stem
##1 table NN table 5 noun Noun, singular or mass NA NA
##2 tables NNS table 6 noun Noun, plural NA NA
##3 tree NN tree 4 noun Noun, singular or mass NA NA
##4 trees NNS tree 5 noun Noun, plural NA NA
你想要的是:
tagged.results@TT.res$lemma
##[1] "table" "table" "tree" "tree"