不要在 R 中使用文本挖掘形成集群
Do not form clusters with text mining in R
我需要对文本进行聚类(俄语文本的文本挖掘)。
这里的代码:
mydat=read.csv("C:/Users/Admin/Downloads/kr_csv.csv", sep=";",dec=",")
View(mydat)
library("tm")
library("SnowballC")
library("textcat")
corpus=Corpus(VectorSource(mydat))
dtm=DocumentTermMatrix(corpus,
control=list(stemming=T, stopwords=F,
minWorldLenght=3,removeNumbers=T,
removePunctuation=T,
#stopwords=c(stopwords('SMART'))
weighting=function(x)
weightTf(x) ))
m<-as.matrix(dtm)
norm_eucl=function(m)
m/apply(m,1,function(x)sum(x^2)^.5)
m_norm=norm_eucl(m)
res=kmeans(m_norm,3,100)
我选择了 3-cluster 决策并得到了这个错误
Error in sample.int(m, k) :
cannot take a sample larger than the population when 'replace = FALSE'
It is mean that I can't take more than one cluster, but this can not be.
How can I extract multiple clusters?
mydat
> dim(m_norm)
[1] 1 4298
head(m_norm, 20) there many docs (all on russian) I copied only part.
> Docs артикул madc артикул madc ту артикулldvoko аскуэ аскуэ зао аскуэ зао хакель асу асу тп асу тп аскуэ атх
Terms
Docs атх ол атх ол ооо ач csb аяд аяд аяд базе базе протокола базе протокола hart бандажирования
Terms
Docs бандажирования пучков бандажирования пучков проводов батарея батарея gp батарея gp в без без протяжки без протяжки диам
Terms
Docs без протяжки фмм без устройствадля без устройствадля ручного без электропривода без электропривода классгерметичности белая
Terms
Docs бирка бирка кабельная бирка кабельная у бирка пластмассовая бирка пластмассовая квадратная бкп бкп дакж бкп дакж
Terms
Docs бкра бкра бкра благовещенск благовещенский благовещенский арматурный благовещенский арматурный завод блок
Terms
Docs блок блок м блок atx блок atx w блок клапанный блок клапанный метран блок концевых блок концевых переключателей
我发现错误是在预处理中
这里是工作代码
mydat=read.csv("C:/Users/Admin/Downloads/kr_csv.csv", sep=";",dec=",")
tw.corpus <- Corpus(VectorSource(mydat$name))
tw.corpus <- tm_map(tw.corpus, stripWhitespace)
tw.corpus <- tm_map(tw.corpus, removePunctuation)
tw.corpus <- tm_map(tw.corpus, removeNumbers)
tw.corpus <- tm_map(tw.corpus, removeWords, stopwords("russian"))
tw.corpus = tm_map(tw.corpus, content_transformer(tolower))
tw.corpus = tm_map(tw.corpus, stemDocument)
doc.m <- DocumentTermMatrix(tw.corpus)
dtm_tfxidf<-weightTfIdf(doc.m)
m<-as.matrix(dtm_tfxidf)
rownames(m)<-1:nrow(m)
norm_eucl=function(m)
m/apply(m,1,function(x)sum(x^2)^.5)
m_norm=norm_eucl(m)
> dim(m_norm)
[1] 399 860
我需要对文本进行聚类(俄语文本的文本挖掘)。 这里的代码:
mydat=read.csv("C:/Users/Admin/Downloads/kr_csv.csv", sep=";",dec=",")
View(mydat)
library("tm")
library("SnowballC")
library("textcat")
corpus=Corpus(VectorSource(mydat))
dtm=DocumentTermMatrix(corpus,
control=list(stemming=T, stopwords=F,
minWorldLenght=3,removeNumbers=T,
removePunctuation=T,
#stopwords=c(stopwords('SMART'))
weighting=function(x)
weightTf(x) ))
m<-as.matrix(dtm)
norm_eucl=function(m)
m/apply(m,1,function(x)sum(x^2)^.5)
m_norm=norm_eucl(m)
res=kmeans(m_norm,3,100)
我选择了 3-cluster 决策并得到了这个错误
Error in sample.int(m, k) : cannot take a sample larger than the population when 'replace = FALSE' It is mean that I can't take more than one cluster, but this can not be. How can I extract multiple clusters? mydat
> dim(m_norm)
[1] 1 4298
head(m_norm, 20) there many docs (all on russian) I copied only part.
> Docs артикул madc артикул madc ту артикулldvoko аскуэ аскуэ зао аскуэ зао хакель асу асу тп асу тп аскуэ атх
Terms
Docs атх ол атх ол ооо ач csb аяд аяд аяд базе базе протокола базе протокола hart бандажирования
Terms
Docs бандажирования пучков бандажирования пучков проводов батарея батарея gp батарея gp в без без протяжки без протяжки диам
Terms
Docs без протяжки фмм без устройствадля без устройствадля ручного без электропривода без электропривода классгерметичности белая
Terms
Docs бирка бирка кабельная бирка кабельная у бирка пластмассовая бирка пластмассовая квадратная бкп бкп дакж бкп дакж
Terms
Docs бкра бкра бкра благовещенск благовещенский благовещенский арматурный благовещенский арматурный завод блок
Terms
Docs блок блок м блок atx блок atx w блок клапанный блок клапанный метран блок концевых блок концевых переключателей
我发现错误是在预处理中
这里是工作代码
mydat=read.csv("C:/Users/Admin/Downloads/kr_csv.csv", sep=";",dec=",")
tw.corpus <- Corpus(VectorSource(mydat$name))
tw.corpus <- tm_map(tw.corpus, stripWhitespace)
tw.corpus <- tm_map(tw.corpus, removePunctuation)
tw.corpus <- tm_map(tw.corpus, removeNumbers)
tw.corpus <- tm_map(tw.corpus, removeWords, stopwords("russian"))
tw.corpus = tm_map(tw.corpus, content_transformer(tolower))
tw.corpus = tm_map(tw.corpus, stemDocument)
doc.m <- DocumentTermMatrix(tw.corpus)
dtm_tfxidf<-weightTfIdf(doc.m)
m<-as.matrix(dtm_tfxidf)
rownames(m)<-1:nrow(m)
norm_eucl=function(m)
m/apply(m,1,function(x)sum(x^2)^.5)
m_norm=norm_eucl(m)
> dim(m_norm)
[1] 399 860