我已经使用Java 6中的静态方法准备了一个类,并将其导出到JAR文件中:
package pl.poznan.put.stemutil;
public class Stemmer {
public static String stemText(String text) {
Set<String> c = new HashSet<String>();
...
return StringUtils.join(c, " ");
}
}
我使用以下代码将其导入R:
require(rJava)
.jinit("java/stem-util.jar")
stem = J("pl.poznan.put.stemutil.Stemmer")$stemText
然后,当我直接调用它时,例如:
> stem("płotkami")
[1] "płotek płotka"
但是,当我尝试将其与tm_map()函数一起使用时,出现了问题:
> vc = VCorpus(vs, readerControl = list(language = "pl"))
> vc[[1]]
<<PlainTextDocument (metadata: 7)>>
mirki mirkówny zaczynam wolne jutra ( ͡° ͜ʖ ͡°) #pijzwykopem #piwozlidla
> vc = tm_map(vc, stem)
Komunikat ostrzegawczy:
In mclapply(content(x), FUN, ...) :
all scheduled cores encountered errors in user code
> vc[[1]]
[1] "Error in FUN(X[[1L]], ...) : \n Sorry, parameter type `NA' is ambiguous or not supported.\n"
attr(,"class")
[1] "try-error"
attr(,"condition")
<simpleError in FUN(X[[1L]], ...): Sorry, parameter type `NA' is ambiguous or not supported.>
我做错了什么?
最佳答案
最后添加mc.cores参数对我有用。但是,这是一种解决方法,而不是适当的解决方案。
vc = tm_map(vc, content_transformer(stem), mc.cores=1)
关于java - 用rJava导入的静态Java函数不适用于tm_map(),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27660155/