我正在尝试清理语料库,我使用了典型的步骤,如下面的代码:
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)