我正在尝试清理语料库,并且使用了典型步骤,如下面的代码:
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)
然而,当我检查矩阵时,很少有带有引号的单词,例如:
“我们”
“公司”
“代码
指导方针”
-已知
-加速
似乎单词本身在引号内,但是当我再次尝试运行 removePunctuation 代码时,它不起作用。还有一些前面有子弹的字我也删不掉。
任何帮助将不胜感激。
最佳答案
removePunctuation
用途 gsub('[[:punct:]]','',x)
即删除符号:!"#$%&'()*+, \-./:;<=>?@[\\\]^_
{|}~`。要删除其他符号,例如打印引号或项目符号(或任何其他符号),请声明您自己的转换函数:
removeSpecialChars <- function(x) gsub("“•”","",x)
docs <- tm_map(docs, removeSpecialChars)
或者您可以进一步删除所有不是字母数字符号或空格的内容:
removeSpecialChars <- function(x) gsub("[^a-zA-Z0-9 ]","",x)
docs <- tm_map(docs, removeSpecialChars)
关于r - tm 包函数在清理语料库时没有删除引号和连字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30994194/