当前位置: 首页 > 面试题库 >

如何使用Open nlp的分块解析器提取名词短语

于嘉誉
2023-03-14
问题内容

我是自然语言处理的新手。我需要从文本中提取名词短语。到目前为止,我已经使用open
nlp的分块解析器来解析我的文本以获得Tree结构。但是我无法从中提取名词短语。树结构,在打开的nlp中是否有任何正则表达式模式,以便我可以用它来提取名词短语。

下面是我正在使用的代码

    InputStream is = new FileInputStream("en-parser-chunking.bin");
    ParserModel model = new ParserModel(is);
    Parser parser = ParserFactory.create(model);
    Parse topParses[] = ParserTool.parseLine(line, parser, 1);
        for (Parse p : topParses){
                 p.show();}

在这里,我得到的输出为

(TOP(S(S(ADJP(JJ欢迎光​​临)(PP(TO至)(NP(NNP大)(NNP数据。))))))(S(NP(PRP We))(VP(VP(VBP
are) (VP(VBG工作)(PP(IN上的)(NP(NNP自然)(NNP语言)(NNP
Processing.can)))))(NP(DT一些)(CD个)(NN帮助))(NP( PRP us))(PP(IN
in)(S(VP(VBG提取)(NP(DT the)(NN名词)(NNS短语)))(PP(IN from)(NP(DT the)(NN树)(
WP结构。))))))))))

有人可以帮我得到NP,NNP,NN等名词短语吗?有人可以告诉我我是否需要使用任何其他NP
Chunker来获得名词短语吗?是否有任何正则表达式模式来实现相同目的?

请帮我。

提前致谢

咕use


问题答案:

Parse对象是一个树; 您可以使用getParent()getChildren()getType()导航树。

List<Parse> nounPhrases;

public void getNounPhrases(Parse p) {
    if (p.getType().equals("NP")) {
         nounPhrases.add(p);
    }
    for (Parse child : p.getChildren()) {
         getNounPhrases(child);
    }
}


 类似资料:
  • 我是自然语言处理的新手。我需要从课文中提取名词短语。到目前为止,我已经使用OpenNLP的分块解析器来解析我的文本,以获得树结构。但是我不能从树结构中提取名词短语,开放nlp中是否有正则表达式模式,以便我可以使用它来提取名词短语。 下面是我使用的代码 这里我得到的输出为 (顶部(S)ADJP(JJ欢迎)(PP(TO)(NP(NNP Big)(NNP Data.))))(名词短语)(名词短语)(名词

  • 我正在使用Apache的OpenNLP编写一个命令解析器。问题是OpenNLP将一些命令视为名词短语。例如,如果我解析像“open door”这样的东西,OpenNLP会给我。换句话说,它认为这个短语是“打开的门”,而不是“打开的门”。我希望它解析为。如果我解析“开门”,它会生成一个VP,但我不能指望有人使用限定词。 我目前正试图找出如何在错误的解析树上执行手术,但API文档严重缺乏。

  • 假设解析树中存在连接两个名词的动词,那么找出它的好策略是什么?例如,在这个句子中: 这名男子在回家前给妻子打了电话。 考虑到“男人”和“妻子”的输入,我想得到动词“called”。OpenNLP给了我一个解析树: (前)(前)(后)(后)(前)(后)(后)(后)(后)(后)(前)(前)(后)(后)(后)(前)(后)(后)(后)(后)(后)(前)(后)(后)(前)(后)(后)(后)(前)(后)(后)

  • 我是新的Python和nltk。我已经将代码从https://gist.github.com/alexbowe/879414转换为下面给定的代码,使其运行于许多文档/文本块。但我得到了以下错误 有人能帮我解决这个问题吗。我必须从数以百万计的产品评论中提取名词短语。我使用了使用Java的Standford NLP工具包,但速度非常慢,所以我认为在python中使用nltk会更好。如果有更好的解决方案

  • 我是使用NER进行Open NLP实体提取的新手,我在Open NLP NER中训练和评估了实体提取的模型,当我给出带有一个词的实体的输入文本时,它可以正常工作例如:“我想购买吉百利” 但它不适用于多词场景,例如:“我想买一台苹果MacBook” 如何训练模特选择多个单词 PS:我知道我需要做一些与NLP中提供的Bigram相关的事情,但是如何使用OpenNLP呢?

  • 有关于OpenNLP中解析器标记含义的文档吗?我知道POS标记类型遵循树库约定,但不幸的是,我没有找到任何关于解析器标记的信息,例如“SBAR”等。 这个留档是存在于某个地方还是我必须自己弄清楚?