2016-07-11 16 views
2

名词短语多个命名实体类型。一个单词可以多次标记很重要。例如David Cronenberg应该被标记为directorperson认识上我目前使用OpenNLP UIMA用一个句子来标记词用NLP

我知道训练过程中被正确执行,因为我有一个自定义的模型文件,当用一个标签所有句子从模型文件中删除检测到其他标签。

我想最好能够继续使用OpenNLP翻一番标签的话。有没有办法做到这一点?如果不是这样的话,这可能与另一个库如斯坦福CoreNLP。

一个获取标签的代码如下:

List<NamedEntity> entities = JCasUtil.selectCovered(NamedEntity.class, aConstituent); 
    if (!entities.isEmpty()) { 
     // is never more than 1 
    } 

和一些示例训练数据低于(有数百个类似这样的行。)

<START:person> David Cronenberg <END> directed <START:film> Crash <END> . 
<START:director> David Cronenberg <END> directed <START:film> Scanners <END> . 
+0

伸出来OpenNLP的开发商。你可能会在这里找到帮助,但你可能会在那里找到更多。如果它是开源的,那就查看代码 - 你不仅可以在那里找到你的答案,还可以找到解决方案。 –

回答

2

列车为独立的分类不同类型的命名实体,例如一个用于person,另一个用于director。然后将多个OpenNlpNamedEntityRecognizer组件添加到您的管道中,每个组件都使用一个模型进行配置。