我想使用R从一组文档中的每个句子中提取名词短语。我在R中使用openNLP为每个句子生成解析树。我需要帮助来遍历解析树以提取名词短语。这是我的代码:
install.packages("openNLP")
library(openNLP)
install.packages("openNLPmodels.en", repos = "http://datacube.wu.ac.at/", type = "source")
library(openNLPmodels.en)
install.package("tm")
library(tm)
s <- c("The touch pad of my laptop does not work.",
"The boy saw the man with the binoculars.")
s <- as.String(s)
sent_token_annotator <- Maxent_Sent_Token_Annotator()
word_token_annotator <- Maxent_Word_Token_Annotator()
parse_annotator <- Parse_Annotator()
a <- annotate(s, list(sent_token_annotator, word_token_annotator))
p <- parse_annotator(s, a)
ptexts <- sapply(p$features, '[[', "parse")
ptrees <- lapply(ptexts, Tree_parse)
ptrees
以下是输出树:
[[1]] (最佳 (S (NP(NP(DT)(NN触摸)(NN垫))(PP(IN)(NP(PRP $ my)(NN笔记本电脑)))) (VP(VBZ)(RB not)(VP(VB work))) (。))))
[[2]] (最佳 (S (NP(DT The)(NN boy)) (VP (VBD看到了) (NP(NP(DT)(NN man))(PP(IN with)(NP(DT)(NNS双筒望远镜))))) (。))))
我的目标是在任何级别提取NP。例如,&#34;男子用双筒望远镜&#34;,&#34;男子&#34;。我搜索了R openNLP文档和堆栈溢出,但无法使用R找到解决方案。感谢您的帮助。