根据优先级以编程方式提取Stanford NLP regexner规则中的意图

时间:2018-10-08 11:12:03

标签: stanford-nlp named-entity-recognition ner

我目前正在使用正则表达式规则测试斯坦福大学NLP命名实体识别器注释器。我基于此示例编写代码。 https://javadeveloperzone.com/nlp/nlp-standford-regexner-example/

根据斯坦福大学NLP文档所述

  

第四列可用于为规则赋予优先级。如果多个规则匹配,则除非您赋予规则优先级,否则结果是不确定的。这是最后一个文件的(某种愚蠢的)扩展名,其中我们有优先级的规则。优先级出现在第四栏中,因此请非常小心地注意,实体标签和优先级之间有两个选项卡。没有明确指定优先级的规则的优先级为1.0。

比方说,我有此RegexNER实体规则,优先级:

  

布拉德·皮特(Brad pitt)ACTOR PERSON 1.0

     

布拉德·皮特导演个人2.0

我的代码中有这个

public String getTokenNerTags(CoreDocument document) {
        return document.tokens()
                       .stream()
                       .map(token -> token.word()+":"+token.ner())
                       .collect(Collectors.joining(" "));
}

例如,我想输入以下文本:

  

搜索布拉德·皮特电影

我的问题是,如何以编程方式输出具有最高优先级的实体?

例如: 输出:

  

搜索{DIRECTOR}布拉德·皮特{DIRECTOR}电影

0 个答案:

没有答案