这个问题可能是 Lemmatizer in R or python (am, are, is -> be?) 的重复,但我仍然再次添加它,因为之前的一个问题被关闭了,理由是太广泛了,且唯一的答案并不高效(因为它需要访问一个外部网站来完成这个过程,而我的语料库非常大,所以速度太慢)。因此,这个问题的一部分将与上述问题类似。
根据维基百科的定义,词形还原(lemmatization或lemmatisation)在语言学中是指将单词的不同屈折形式分组在一起,以便可以将它们分析为一个单一的项目。
Lemmatisation(或lemmatization)在语言学中是指将单词的不同屈折形式分组在一起,以便可以将它们分析为一个单一的项目。
在R中搜索词形还原的结果只会提到R的wordnet
包。当我尝试使用该包时,期望将一个字符向量c("run", "ran", "running")
输入到词形还原函数中,得到的结果应该是c("run", "run", "run")
。但我发现该包只提供了类似于grepl
函数的功能,通过各种过滤器名称和字典来实现。
wordnet
包中的一个示例代码,它会给出以“car”开头的最多5个单词,如过滤器名称所解释的那样:
filter <- getTermFilter("StartsWithFilter", "car", TRUE)
terms <- getIndexTerms("NOUN", 5, filter)
sapply(terms, getLemma)
以上并不是我所要寻找的词形还原。我要寻找的是,使用R
找到单词的真正词根:(例如,从c("run", "ran", "running")
到c("run", "run", "run")
)。