3

我一直在关注如何在 R 中使用 mallet 创建主题模型的教程。我的文本文件每行有 1 个句子。它看起来像这样,大约有 50 句话。

Thank you again and have a good day :).
This is an apple.
This is awesome!
LOL!
i need 2.
.
.
. 

这是我的代码:

Sys.setenv(NOAWT=TRUE)

#setup the workspace
# Set working directory
dir<-"/Users/jxn"
Dir <- "~/Desktop/Chat/malletR/text" # adjust to suit
require(mallet)
documents1 <- mallet.read.dir(Dir)
View(documents1)
stoplist1<-mallet.read.dir("~/Desktop/Chat/malletR/stoplists")
View(stoplist1)
**mallet.instances <- mallet.import(documents1$id, documents1$text, "~/Desktop/Chat/malletR/stoplists/en.txt", token.regexp ="\\p{L}[\\p{L}\\p{P}]+\\p{L}")**

除了代码的最后一行,一切正常

**`**mallet.instances <- mallet.import(documents1$id, documents1$text, "~/Desktop/Chat/malletR/stoplists/en.txt", token.regexp ="\\p{L}[\\p{L}\\p{P}]+\\p{L}")**`**

我不断收到此错误:

Error in .jcall("RJavaTools", "Ljava/lang/Object;", "invokeMethod", cl,  : 
  java.lang.NoSuchMethodException: No suitable method for the given parameters

根据包,函数应该是这样的:

mallet.instances <- mallet.import(documents$id, documents$text, "en.txt",
                    token.regexp = "\\p{L}[\\p{L}\\p{P}]+\\p{L}")

我相信它与 token.regexp 参数有关,因为它
documents1 <- mallet.read.dir(Dir)工作得很好,这意味着提供给 mallet.instances 的前 3 个参数是正确的。

这是我正在遵循教程的 git repo 的链接。 https://github.com/shawngraham/R/blob/master/topicmodel.R

任何帮助将非常感激。

谢谢,J

4

2 回答 2

7

我怀疑问题出在您的文本文件上。我遇到了同样的错误并通过使用以下as.character()函数解决了它:

mallet.instances <- mallet.import(as.character(documents$id), as.character(documents$text), "en.txt", FALSE, token.regexp="\\p{L}[\\p{L}\\p{P}]+\\p{L}")

于 2014-06-05T20:09:28.403 回答
0

您确定将 id 字段也转换为 character 吗?很容易忽略建议并将其保留为整数。

Also there is a typo in the code sample: the backslashes have to be escaped:
    token.regexp = "\\p{L}[\\p{L}\\p{P}]+\\p{L}"
This usually occurs because the html text editor eats up one backslash.
于 2016-05-16T18:23:54.550 回答