Я получил данные о назначении сотрудников, имеющие столько уникальных значений.
Я хочу объединить воедино многие формы одного обозначения, такие как «Старший менеджер», «Старший менеджер», «Старший менеджер», «Старший менеджер» и т. Д.). Кроме того, эти данные также содержат опечатки.
Какая будет лучшая техника для объединения многих обозначений в одно с помощью R.
Является ли кластеризация лучшим способом решения этой проблемы, или может какой-то другой метод поможет лучше решить мою проблему.
Я пробовал «евклидово расстояние» и k-средства, но ни один из них не дал удовлетворительных результатов.
library(tm)
library(data.table)
library(SparseM)
library(cluster)
data <- readLines('RDATA.txt')
head(data)
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