加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

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

发布时间:2020-12-14 19:28:21 所属栏目:Java 来源:网络整理
导读:我是自然语言处理的新手,我需要从文本中提取出名词短语.我远在我使用open nlp的分块解析器来解析我的文本以获取Tree结构.但是我无法从树结构,在开放nlp中是否有任何正则表达式模式,以便我可以使用它来提取名词短语. 以下是我正在使用的代码 InputStream is =
我是自然语言处理的新手,我需要从文本中提取出名词短语.我远在我使用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();}

在这里我得到的输出

(SP(VPP(VBP))(S(NP(PRP We)))(S(S(S(SJ(欢迎)(PP(TO to)(NP(NNP Big) (NP(DTG))(NP(DT))(PP(IN)(NP(NNP Natural))(NNP语言)(NNP Processing) (PP(IN in)(PP(IN))(S(VP(VBG提取))(NP(DT))(NN名词)(NNS短语)) WP结构.)))))))))))

有些人可以帮我取得名词短语,如NP,NNP,NN等.有些人可以告诉我,我需要使用任何其他的NP Chunker来获得名词短语吗?有没有任何正则表达式呢?

请帮忙我

提前致谢

Gouse.

解决方法

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);
    }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读