R文本挖掘问题

时间:2016-03-17 14:16:27

标签: r tm

我对编程非常陌生,现在正在我的ResMA中开始学习R。

我现在必须做一些非常简单的事情,而且我似乎在某些方面失败了。我只需要计算一个txt文件中的字形(字母),没别的。我首先使用TM创建语料库,我正在清理它和所有内容,但是当我尝试对每个字素进行频率分析时,文本实际上并没有清除标点符号和奇怪的符号等。

我使用的代码是:

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完全不同,但是当我尝试反之亦然时,它仍然无效。

我只需要这样做: 我要去上学了!---&gt;我要去学校----&gt; i- 2 a-1 m-1 ....

我无法解决问题所在,我将非常感谢您的帮助!

1 个答案:

答案 0 :(得分: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" 

虽然注意到因为词干,&#34;去&#34;转变为&#34;去&#34;。

然后您可以像原始代码一样计算字符数

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

希望它有所帮助。