R tm removeWords停用词不会删除停用词

Mit*_*ops 2 nlp r stop-words tm

我正在使用R tm包,发现几乎tm_map所有删除文本元素的函数都不适用于我.

通过'工作'我的意思是,例如,我将运行:

d <- tm_map(d, removeWords, stopwords('english'))
Run Code Online (Sandbox Code Playgroud)

但是当我跑的时候

ddtm <- DocumentTermMatrix(d, control = list(
    weighting = weightTfIdf,
    minWordLength = 2))
findFreqTerms(ddtm, 10)
Run Code Online (Sandbox Code Playgroud)

我还是得到:

[1] the     this
Run Code Online (Sandbox Code Playgroud)

等等,还有一堆其他的停用词.

我没有看到任何错误表明出现了问题.有谁知道这是什么,以及如何正确地使用停用词删除功能,或者诊断出我的错误是什么?

UPDATE

之前有一个错误,我没有抓到:

Refreshing GOE props...
---Registering Weka Editors---
Trying to add database driver (JDBC): RmiJdbc.RJDriver - Warning, not in CLASSPATH?
Trying to add database driver (JDBC): jdbc.idbDriver - Warning, not in CLASSPATH?
Trying to add database driver (JDBC): org.gjt.mm.mysql.Driver - Warning, not in CLASSPATH?
Trying to add database driver (JDBC): com.mckoi.JDBCDriver - Warning, not in CLASSPATH?
Trying to add database driver (JDBC): org.hsqldb.jdbcDriver - Warning, not in CLASSPATH?
[KnowledgeFlow] Loading properties and plugins...
[KnowledgeFlow] Initializing KF...
Run Code Online (Sandbox Code Playgroud)

Weka正在删除tm中的停用词,对吗?这可能是我的问题?

更新2

这个,这个错误似乎是无关的.这是关于数据库,而不是关于停用词.

Mit*_*ops 6

没关系,它正在发挥作用.我做了以下最小例子:

data("crude")
crude[[1]]
j <- Corpus(VectorSource(crude[[1]]))
jj <- tm_map(j, removeWords, stopwords('english'))
jj[[1]]
Run Code Online (Sandbox Code Playgroud)

tm_map在系列中使用了几个表达式.事实证明,我删除空格,标点符号等的顺序已经连接了新的停用词.

  • 是的,以正确的顺序获取那些`tm_map`函数可能很恶劣.我过去一直在努力克制,并发现重新排序序列有所帮助.很高兴你把事情解决了. (3认同)
  • 我对removeWords中的自定义单词基本上有同样的问题.应该是什么命令?我正在运行stripWhitepace,removePunctuation,removeWords和stemDocument.我想我会弄清楚,但也许值得用正确的顺序更新解决方案. (2认同)