Я хочу разбить следующий 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
(- > fast) и openNLP
(- > качество)?