【发布时间】:2018-07-18 15:19:10
【问题描述】:
我一直在努力使用 RWeka 包,特别是使用 NGramTokenizer 函数来制作二元组。通过搜索互联网,我看到一两个其他用户遇到同样的问题但没有解决方案(这对我有用)。
下面是一个例子: 2-gram and 3-gram instead of 1-gram using RWeka
所以运行:
library(RWeka)
library(tm)
as.matrix(TermDocumentMatrix(Corpus(VectorSource(c(txt1 = "This is my house",
txt2 = "My house is green"))),
list(tokenize = function(x) NGramTokenizer(x,
Weka_control(min=2,
max=2)),
tolower = TRUE)))
我明白了:
Docs
Terms txt1 txt2
house 1 1
this 1 0
green 0 1
- 注意没有二元组,只有一元组(house、this、green)。
我已经在一个 volatile 语料库上尝试了它,其中分离出分词器功能以及我如何从 DataCamp 课程中学习,但得到了以下问题。
Error in .jcall("RWekaInterfaces", "[S", "tokenize", .jcast(tokenizer,
: java.lang.NullPointerException Called from: .jcheck()
我在 Internet 上看到的其他解决方案运行良好,但仍然产生了像上面这样的 unigrams。
在 64 位 Windows 操作系统上运行 64 位 Java 1.8 和 R 3.4.3。
我尝试安装旧版本的 RWeka,但在尝试旧版本的 tm 安装时,它出现了错误,所以我无法为我工作(使用由 LukeA 在开头链接的 SO 线程中引用的版本这个问题)。
【问题讨论】: