2016-03-17 126 views
2

我完全新的節目,現在我做我的RESMA,我已經開始學習R.[R文本挖掘問題

我現在要做的事情很簡單,我似乎在某個時候會失敗。我只需要在一個txt文件中計算字形(字母),沒有別的。我首先使用TM創建一個語料庫,我正在清理它和所有內容,但是當我嘗試運行每個字形的頻率分析時,文本實際上沒有清除標點和奇怪符號等。

代碼I現在用的是這樣的:

library("tm") 
library("SnowballC") 
library("wordcloud") 
library("RColorBrewer") 
filePath <- choose.files() 
text <- readLines(filePath) 
docs <- Corpus(VectorSource(text)) 
toSpace <- content_transformer(function (x , pattern) gsub(pattern, " ", x)) 
docs <- tm_map(docs, toSpace, "/") 
docs <- tm_map(docs, toSpace, "@") 
docs <- tm_map(docs, toSpace, "\\|") 
docs <- tm_map(docs, content_transformer(tolower)) 
docs <- tm_map(docs, removeNumbers) 
docs <- tm_map(docs, removePunctuation) 
docs <- tm_map(docs, stripWhitespace) 
docs <- tm_map(docs, stemDocument) 
print (docs) 

x=strsplit(text, "") 

newlist = unlist(x,recursive=F) 
freqtab = table(newlist) 

print (freqtab) 

好了,所以,很明顯,這裏的文檔比那裏X完全不同的,但是當我嘗試做的事情,反之亦然,但仍然沒有工作。

我只需要做到這一點: 我要上學 - >我要去上學----> I-2a A-1 間1 ....

我不明白我的問題來自哪裏,我會感謝您的幫助!

+0

什麼是resma? – cory

回答

0

問題是你沒有修改text所有的操作;你正在通過docs工作。

使用在您的文章作爲text簡單的例子運行你的代碼,

text <- "I am going to school!" 
docs <- Corpus(VectorSource(text)) 
toSpace <- content_transformer(function (x , pattern) gsub(pattern, " ", x)) 
docs <- tm_map(docs, toSpace, "/") 
docs <- tm_map(docs, toSpace, "@") 
docs <- tm_map(docs, toSpace, "\\|") 
docs <- tm_map(docs, content_transformer(tolower)) 
docs <- tm_map(docs, removeNumbers) 
docs <- tm_map(docs, removePunctuation) 
docs <- tm_map(docs, stripWhitespace) 
docs <- tm_map(docs, stemDocument) 

,然後打印的docs內容,你的所有的修改應用

print(unlist(docs)[1]) 
    content.content 
"i am go to school" 

不過注意,因爲詞幹的那,「走」轉變爲「走」。

然後你可以指望的人物在你的原代碼,

x=strsplit(as.character(unlist(docs)[1]), "") 
freqtab = table(x[[1]]) 
print(freqtab) 

    a c g h i l m o s t 
4 1 1 1 1 1 1 1 4 1 1 

希望它能幫助。