Son birkaç gündür kafamı kırıyordum. Tüm SO arşivlerini araştırdım ve önerilen çözümleri denedim, ancak bunu işe yaramayacak gibi görünmüyor. 2000 06, 1995 -99 vb. Gibi klasörlerde txt belgeleri kümeleri var ve belge terim matrisi oluşturma ve belge matrisi terimi gibi bazı temel metin madenciliği işlemlerini çalıştırmak ve bazı işlemlerin sözcüklerin ortak konumlarını yapmak istiyorum. Scriptim daha küçük bir corpus üzerinde çalışıyor, ancak daha büyük bir corpus ile denediğimde, bu beni başarısız oluyor. Böyle bir klasör operasyonu için kodu yapıştırdım. Büyük Metin Corpus kırılıyor tm_map
library(tm) # Framework for text mining.
library(SnowballC) # Provides wordStem() for stemming.
library(RColorBrewer) # Generate palette of colours for plots.
library(ggplot2) # Plot word frequencies.
library(magrittr)
library(Rgraphviz)
library(directlabels)
setwd("/ConvertedText")
txt <- file.path("2000 -06")
docs<-VCorpus(DirSource(txt, encoding = "UTF-8"),readerControl = list(language = "UTF-8"))
docs <- tm_map(docs, content_transformer(tolower), mc.cores=1)
docs <- tm_map(docs, removeNumbers, mc.cores=1)
docs <- tm_map(docs, removePunctuation, mc.cores=1)
docs <- tm_map(docs, stripWhitespace, mc.cores=1)
docs <- tm_map(docs, removeWords, stopwords("SMART"), mc.cores=1)
docs <- tm_map(docs, removeWords, stopwords("en"), mc.cores=1)
#corpus creation complete
setwd("/ConvertedText/output")
dtm<-DocumentTermMatrix(docs)
tdm<-TermDocumentMatrix(docs)
m<-as.matrix(dtm)
write.csv(m, file="dtm.csv")
dtms<-removeSparseTerms(dtm, 0.2)
m1<-as.matrix(dtms)
write.csv(m1, file="dtms.csv")
# matrix creation/storage complete
freq <- sort(colSums(as.matrix(dtm)), decreasing=TRUE)
wf <- data.frame(word=names(freq), freq=freq)
freq[1:50]
#adjust freq score in next line
p <- ggplot(subset(wf, freq>100), aes(word, freq))+ geom_bar(stat="identity")+ theme(axis.text.x=element_text(angle=45, hjust=1))
ggsave("frequency2000-06.png", height=12,width=17, dpi=72)
# frequency graph generated
x<-as.matrix(findFreqTerms(dtm, lowfreq=1000))
write.csv(x, file="freqterms00-06.csv")
png("correlation2000-06.png", width=12, height=12, units="in", res=900)
graph.par(list(edges=list(col="lightblue", lty="solid", lwd=0.3)))
graph.par(list(nodes=list(col="darkgreen", lty="dotted", lwd=2, fontsize=50)))
plot(dtm, terms=findFreqTerms(dtm, lowfreq=1000)[1:50],corThreshold=0.7)
dev.off()
ben tm_map içinde mc.cores = 1 argüman kullanmak
, operasyon süresiz devam eder. Ancak, tm_map içinde tembel = TRUE argümanını kullanırsam görünüşte iyi gider, ancak sonraki işlemler bu hatayı verir.Error in UseMethod("meta", x) :
no applicable method for 'meta' applied to an object of class "try-error"
In addition: Warning messages:
1: In mclapply(x$content[i], function(d) tm_reduce(d, x$lazy$maps)) :
all scheduled cores encountered errors in user code
2: In mclapply(unname(content(x)), termFreq, control) :
all scheduled cores encountered errors in user code
Her yere bir çözüm arıyordum, ancak sürekli olarak başarısız oldum. Herhangi bir yardım büyük takdir edilecektir!
En İyi! k
Teşekkürler, çok yardımcı oldu! – xbsd
Çok teşekkürler! SO hesabımın şifresini kaybettim, şimdi bunu şimdi gördüm :) – Kartik