如何遍历语法分析树以使用R中的OpenNLP提取名词短语?

时间:2016-04-29 05:06:08

标签: r tree opennlp

我想使用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找到解决方案。感谢您的帮助。

0 个答案:

没有答案