【发布时间】:2015-08-20 08:47:45
【问题描述】:
更新:
我想我可能有一个解决方法来解决这个问题,只需添加一个代码:dtms = removeSparseTerms(dtm,0.1) 它会删除语料库中的稀疏字符。但我认为这只是一种解决方法,仍然等待专家的回答!
最近我正在使用 tm 包在 R 中学习文本挖掘。我有一个想法,以最大频率绘制关于我的 ABAP 程序中的单词的词云。所以我写了一个 R 程序来实现这一点。
library(tm)
library(SnowballC)
library(wordcloud)
# set path
path = system.file("texts","abapcode",package = "tm")
# make corpus
code = Corpus(DirSource(path),readerControl = list(language = "en"))
# cleanse text
code = tm_map(code,stripWhitespace)
code = tm_map(code,removeWords,stopwords("en"))
code = tm_map(code,removePunctuation)
code = tm_map(code,removeNumbers)
# make DocumentTermMatrix
dtm = DocumentTermMatrix(code)
#freqency
freq = sort(colSums(as.matrix(dtm)),decreasing = T)
#wordcloud(code,scale = c(5,1),max.words = 50,random.order = F,colors = brewer.pal(8, "Dark2"),rot.per = 0.35,use.r.layout = F)
wordcloud(names(freq),freq,scale = c(5,1),max.words = 50,random.order = F,colors = brewer.pal(8, "Dark2"),rot.per = 0.35,use.r.layout = F)
但是在我的 ABAP 代码中,一些变体在变体名称中包含“_”和“-”,所以如果我执行了这个:
code = tm_map(code,removePunctuation)
如果去掉“_”或“-”,有些词会很奇怪。
这次的话是正确的,但是弹出了一些意想不到的字符,例如我的ABAP代码commet...
那么我们是否有一些方法可以准确地删除我们不想要的标点符号并保留我们想要的标点符号?
【问题讨论】:
标签: r customization text-mining tm punctuation