r - tm 包函数在清理语料库时没有删除引号和连字符

标签 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)

然而,当我检查矩阵时,很少有带有引号的单词,例如:
“我们”
“公司”
“代码
指导方针”
-已知
-加速

似乎单词本身在引号内,但是当我再次尝试运行 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/

相关文章:

r - 如何编写自定义的removePunctuation()函数以更好地处理Unicode字符?

java - 从 XML 文件创建集群

r - 修改 cSplit_e 函数以考虑多个值

r - 如何从csv文件中读取表格中的文本

r - 在 ggplot2 中使用 SVG 图像作为符号

r - 在 `for` 循环中创建一组绘图

r - 在 R 中运行 map reduce 作业时出错

r - data.table 和字符向量

r - 将术语文档矩阵转换为 R 中的节点/边缘列表

r - 如何将多个 qdap 转换链接在一起以进行 R 中的文本挖掘/情感(极性)分析