在R中对相似文本进行分组

在R中对相似文本进行分组,r,cluster-analysis,text-mining,R,Cluster Analysis,Text Mining,我得到的员工指定数据有很多独特的值。 我想将一个名称的多种形式组合在一起,如(‘高级经理’、‘高级经理’、‘高级经理’、‘高级经理’、‘高级经理’、‘高级经理’、‘Snr经理’等)。此外,这些数据也有打字错误 使用R将多个名称组合成一个名称的最佳技术是什么 集群是解决此问题的最佳方法,还是其他技术可以更好地解决我的问题 我尝试了“欧几里德距离”和k-均值,但都没有得到令人满意的结果 library(tm) library(data.table) library(SparseM) library(

我得到的员工指定数据有很多独特的值。 我想将一个名称的多种形式组合在一起,如(‘高级经理’、‘高级经理’、‘高级经理’、‘高级经理’、‘高级经理’、‘高级经理’、‘Snr经理’等)。此外,这些数据也有打字错误

使用R将多个名称组合成一个名称的最佳技术是什么

集群是解决此问题的最佳方法,还是其他技术可以更好地解决我的问题

我尝试了“欧几里德距离”和k-均值,但都没有得到令人满意的结果

library(tm)
library(data.table)
library(SparseM)
library(cluster)
    data <- readLines('RDATA.txt')
    head(data)
library(tm)
库(数据表)
图书馆(SparseM)
图书馆(群集)

数据这不能以这种方式工作

P> >考虑“狗”、“雾”。这些词很相似,但您不希望它们聚集在一起。这不仅仅是一个打字错误


因此,您不能使用无监督的方法(如聚类)。你需要在语言、典型的拼写错误以及可能的语音学方面接受培训。

如果每个人都是经理,这并不重要,你应该添加自己的停止词,例如,你应该删除它。您还可以列出所有不同的单词,通过拼写检查,并手动为未通过拼写检查的单词指定翻译。顺便说一句,此距离矩阵只查看单词,而不查看拼写,因此您可能需要类似于
stringdist::stringdist
的内容。是否可以包含更多数据?可能有50行,请复制粘贴,不要使用堆栈溢出上表的图像捕获。
        data <- data[1:50]
        source <- VectorSource(data)
        corpus <- Corpus(source)
        corpus <- tm_map(corpus, content_transformer(tolower))
        corpus <- tm_map(corpus, removeNumbers)
        corpus <- tm_map(corpus, removePunctuation)
        corpus <- tm_map(corpus, stripWhitespace)
        corpus <- tm_map(corpus, removeWords, stopwords('english'))
    dtm = DocumentTermMatrix(corpus,
                             control = list(
                               wordLengths=c(4, 15),

                             ))
    m  <- as.matrix(dtm)
    distMatrix <- dist(m, method="euclidean")
    groups <- hclust(distMatrix,method="ward.D" )
    groups2 <-cutree(groups, k=10)
    clus_data <-cbind(data,groups2)
    clus_data