【发布时间】:2017-05-16 00:53:29
【问题描述】:
我希望有更好的方法来做到这一点。我有一个带有推文的 data.table:其中 8018 条。我正在使用 data.table 函数对每条推文进行 POS 标记。
数据表:
Tweet
Sample Tweet 1 :)
sample tweet 2
词性标注功能:
tagPOS = function(x) {
s <- as.String(x)
sent_token_annotator = Maxent_Sent_Token_Annotator()
word_token_annotator = Maxent_Word_Token_Annotator()
a2 = annotate(s, list(sent_token_annotator, word_token_annotator))
pos_tag_annotator = Maxent_POS_Tag_Annotator()
a3 = annotate(s, pos_tag_annotator, a2)
a3w = subset(a3, type == "word")
POStags = unlist(lapply(a3w$features, `[[`, "POS"))
return(paste(POStags,collapse = " "))
}
获取 POS:
dat[,c("ID"):= .I]
options( java.parameters = "-Xmx10g" )
dat[,c("POS"):= tagPOS(Tweet),by = .(ID)]
即使设置了内存,我也会收到此错误:
Error in .jnew("opennlp.tools.postag.POSModel", .jcast(.jnew("java.io.FileInputStream", :
java.lang.OutOfMemoryError: GC overhead limit exceeded
【问题讨论】:
-
@lukeA 你只是在指出添加选项
options( java.parameters = "-Xmx10g" )吗?我的代码中已经有了它,但它仍然无法正常工作...... -
您是否在任何库调用之前放置了选项语句?
-
@lukeA 是的,还是不行。
标签: r twitter nlp data.table