Ich habe mir in den letzten Tagen diesen Kopf gebrochen. Ich habe alle SO-Archive durchsucht und die vorgeschlagenen Lösungen ausprobiert, aber ich kann es einfach nicht funktionieren lassen. Ich habe Gruppen von txt-Dokumenten in Ordnern wie 2000 06, 1995 -99 usw., und möchte einige grundlegende Text-Mining-Operationen wie das Erstellen von Dokumenten-Term-Matrix und Term-Dokument-Matrix und einige Operationen basierend Co-Standorte von Wörtern ausführen. Mein Skript arbeitet an einem kleineren Korpus, aber wenn ich es mit dem größeren Korpus versuche, versagt es mir. Ich habe den Code für eine solche Ordneroperation eingefügt.Big Text Corpus bricht 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()
Wenn ich das Argument mc.cores = 1 in tm_map verwende, wird der Vorgang unendlich fortgesetzt. Wenn ich jedoch in tm_map das Argument lazy = TRUE verwende, scheint es gut zu gehen, aber nachfolgende Operationen geben diesen Fehler an.
Ich habe überall nach einer Lösung gesucht, aber konsequent gescheitert. Jede Hilfe würde sehr geschätzt werden!
Am besten! k
Danke, viel geholfen! – xbsd
Vielen Dank! Ich habe das Passwort für meinen SO-Account verloren, also habe ich das jetzt gesehen :) – Kartik