5.1 文本聚类
聚类技术可以在不阅读文档的情况下阐明大量语料库中的主题。
营销人员可以将这些方法应用到论坛帖子或在线评论中,以理解评论者认为有意义的广泛主题。这有助于发现产品创新和客户焦虑的来源。
文档聚类还用于快速信息检索,因为文档可以在没有人工干预的情况下自动标记。
例如,研究人员可能希望获得一组提到亚特兰大的特定商业文章。系统可以只对业务文章进行分组,然后在Atlanta上执行更小的关键字搜索。这肯定比搜索数以百万计的商业和亚特兰大的文章要快。
案例背景:
呼叫中心的员工流失率通常很高,因为这些工作工资低且重复性强。由于人员流动率高,需要不断地进行人才招聘。因此,你决定根据员工以前的工作经验来了解他们的特点。作为一名拥有数据驱动思维的人力资源专家,你想将员工以往的工作经验聚集在一起,找到那些在公司呆了一年以上的员工的常用简历术语。根据这些术语辅助招聘可能会待一年以上的候选人。
5.1.1 K均值聚类
options(stringsAsFactors = F)
set.seed(1234)
Sys.setlocale(category = "LC_ALL", locale = "C")
library(skmeans)
library(tm)
library(clue)
library(cluster)
library(fpc)
library(wordcloud)
wk.exp<-read.csv('E:/Rdata/text_mining-master/1yr_plus_final4.csv',header=TRUE)
wk.source<-VCorpus(VectorSource(wk.exp$text))
wk.corpus<-clean.corpus(wk.source)
wk.dtm<-DocumentTermMatrix(wk.corpus,control = list(weighting=weightTfIdf))
wk.dtm.s<-scale(wk.dtm,scale = T)
wk.clusters<-kmeans(wk.dtm.s,3)
barplot(wk.clusters$size,main='k-means')
#cmdscale将距离矩阵进行主成分分析,强制压缩至低维空间
plotcluster(cmdscale(dist(wk.dtm)),wk.clusters$cluster)
#轮廓图
dissimilarity.m<-dist(wk.dtm.s)
plot(silhouette(wk.clusters$cluster,dissimilarity.m))
#cluster 3 的轮廓线为0.00