【发布时间】:2015-10-30 04:15:14
【问题描述】:
我想将下一个string 分解成句子:
library(NLP) # NLP_0.1-7
string <- as.String("Mr. Brown comes. He says hello. i give him coffee.")
我想展示两种不同的方式。一个来自包openNLP:
library(openNLP) # openNLP_0.2-5
sentence_token_annotator <- Maxent_Sent_Token_Annotator(language = "en")
boundaries_sentences<-annotate(string, sentence_token_annotator)
string[boundaries_sentences]
[1] "Mr. Brown comes." "He says hello." "i give him coffee."
第二个来自包stringi:
library(stringi) # stringi_0.5-5
stri_split_boundaries( string , opts_brkiter=stri_opts_brkiter('sentence'))
[[1]]
[1] "Mr. " "Brown comes. "
[3] "He says hello. i give him coffee."
在第二种方式之后,我需要准备句子以删除多余的空格或将新字符串再次分解为句子。我可以调整stringi函数来提高结果的质量吗?
当涉及大数据时,openNLP (非常)比stringi 慢。
有没有办法结合stringi(->快速)和openNLP(->质量)?
【问题讨论】:
-
如果您在这里没有得到答案,您可能会在corpus linguistics with R forum 上获得好运
-
我也在 stringi 的 HitHub 页面上打开了这个问题:github.com/Rexamine/stringi/issues/184
-
OpenNLP 和 stringi 在如何检测句子边界方面彼此不同。 stringi 似乎有一套规则。 openNLP 使用来自学习过程的模型。但我仍然看不到瓶颈在哪里......
标签: regex r text-mining opennlp stringi