清洁语料库时,tm包函数未删除引号和连字符

ano*_*ous 8 r text-mining tm

我正在尝试清理语料库,我使用了典型的步骤,如下面的代码:

docs<-Corpus(DirSource(path))
docs<-tm_map(docs,content_transformer(tolower))
docs<-tm_map(docs,content_transformer(removeNumbers))
docs<-tm_map(docs,content_transformer(removePunctuation))
docs<-tm_map(docs,removeWords,stopwords('en'))
docs<-tm_map(docs,stripWhitespace)
docs<-tm_map(docs,stemDocument)
dtm<-DocumentTermMatrix(docs)
Run Code Online (Sandbox Code Playgroud)

然而,当我检查矩阵时,几乎没有带引号的单词,例如:"我们""公司""代码指南" - 已知 - 加速

似乎单词本身在引号内,但当我尝试再次运行removePunctuation代码时,它不起作用.前面还有一些带子弹的话我也无法删除.

任何帮助将不胜感激.

cyb*_*j0g 10

removePunctuation用途gsub('[[:punct:]]','',x)即删除符号:!"#$%&'()*+, \-./:;<=>?@[\\\]^_{|}〜`.要删除其他符号,例如印刷引号或子弹符号(或任何其他符号),请声明您自己的转换函数:

removeSpecialChars <- function(x) gsub("“•”","",x)
docs <- tm_map(docs, removeSpecialChars)
Run Code Online (Sandbox Code Playgroud)

或者你可以进一步删除所有不是字母数字符号或空格的东西:

removeSpecialChars <- function(x) gsub("[^a-zA-Z0-9 ]","",x)
docs <- tm_map(docs, removeSpecialChars)
Run Code Online (Sandbox Code Playgroud)