对类似的词进行分类

Mar*_*eet 0 r text-mining

我目前正在做一个文本处理过程,我希望将类似的单词(表格,表格等)转换成一个单词(表格).我看到tm包提供了一个工具,但这个不支持我正在寻找的语言.因此,我想自己创造一些东西.

对于我希望有一个链接表的函数 - >

 a <- c("Table", "Tables", "Tree", "Trees")
 b <- c("Table", "Tree", "Chair", "Invoice")
 df <- data.frame(b, a)
Run Code Online (Sandbox Code Playgroud)

这样我就可以自动将所有"表"值转换为"表"

有关如何做到这一点的任何想法?

Vic*_*orp 5

在R中搜索词干,您可以在这里查看,您可以尝试:

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" 
Run Code Online (Sandbox Code Playgroud)

或者使用起来更复杂但更完整,您可以查看包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
Run Code Online (Sandbox Code Playgroud)

你想要的是:

tagged.results@TT.res$lemma
##[1] "table" "table" "tree"  "tree" 
Run Code Online (Sandbox Code Playgroud)