Regex 将相似的单词/短语分组

Regex 将相似的单词/短语分组,regex,r,string,nlp,distance,Regex,R,String,Nlp,Distance,我有一个单词频率表,如下所示 > head(freqWords) employees work bose people company 1879 1804 1405 971 959 employee 100 > tail(freqWords) youll younggood

我有一个单词频率表,如下所示

> head(freqWords)
    employees          work          bose        people       company 
         1879          1804          1405           971           959 
    employee
          100
> tail(freqWords)
    youll younggood      yoyo       ytd  yuorself      zeal 
        1         1         1         1         1         1 
我想创建另一个频率表,它将组合相似的单词并添加它们的频率

在上面的示例中,我的新表应该包含employee和employees作为一个元素,频率为1979。比如说

> head(newTable)
    employee,employees          work          bose        people        
         1979                   1804          1405           971           
    company
    959
我知道如何找到类似的单词(使用
adist
stringdist
),但我无法创建频率表。例如,我可以使用下面的方法得到一个类似单词的列表

words <- names(freqWords)
lapply(words, function(x) words[stringdist(x, words) < 3])
我的单词/短语中没有任何标点符号/特殊符号。(我对R不太了解;我通过调整我找到的
adist2
的实现创建了
stringdist2
,但我不完全了解
模式和
repl
的工作原理)


所以我需要帮助来创建新的频率表。

如果你使用词干分析,也许是从tm软件包中,你至少可以像对待雇员、雇员和雇主一样对待单词。谢谢律师,tm软件包中的词干分析正是我需要的单词。但是对于短语(两个词,三个词),我仍然需要一些调整。我会尽量让你知道我试过词干分析,因为单个单词也不完全是我需要的。例如,它将
改进
改进
减少为
改进
,这不是我需要的。我需要
改进
改进
或两者兼而有之(
改进,改进
),如果我做词干分析,那么我必须手动更正所有拼写。}然后做词干分析,但保留一个反向列表。谢谢你,如果我有任何问题,我会尝试在这里发布。但短语的问题仍然存在。
lapply(words, function(x) words[stringdist2(x, words) < 3])
stringdist2 <- function(word1, word2){
    min(stringdist(word1, word2),
        stringdist(word1, gsub(word2, 
                          pattern = "(.*) (.*)", 
                          repl="\\2,\\1")))
}