Я не использую openNLP
, но использую различные пакеты для маркировки POS.Если у кого-то есть ответ для openNLP
, который может вам помочь, это было бы здорово.
Но я дам вам решение, используя udpipe
.Это может оказаться полезным.
s <- paste(c("Pierre Vinken, 61 years old, will join the board as a ",
"nonexecutive director Nov. 29.\n",
"Mr. Vinken is chairman of Elsevier N.V., ",
"the Dutch publishing group."),
collapse = "")
library(udpipe)
if (file.exists("english-ud-2.0-170801.udpipe"))
ud_model <- udpipe_load_model(file = "english-ud-2.0-170801.udpipe") else {
ud_model <- udpipe_download_model(language = "english")
ud_model <- udpipe_load_model(ud_model$file_model)
}
x <- udpipe_annotate(ud_model, s)
x <- as.data.frame(x)
table(x$upos)
ADJ ADP AUX DET NOUN NUM PROPN PUNCT VERB
2 2 2 3 6 2 8 5 1
edit: количество предложений:
table(x$sentence_id, x$upos)
ADJ ADP AUX DET NOUN NUM PROPN PUNCT VERB
1 2 1 1 2 3 2 3 3 1
2 0 1 1 1 3 0 5 2 0
Когда вы создаете data.frame из x после аннотаций, у вас есть доступ к doc_id, para_id, Предложение_ и т. д. и т. д. Вы можете создать целый ряд статистических данных для каждого документа / предложения и т. д. Виньетки дают хороший обзор того, что возможно.