针对多种类型的Opennlp名称实体培训

时间:2017-07-06 14:14:22

标签: java nlp opennlp

我有一些问题,例如&#34;有多少员工,其中包含指定代码<START:desigcd> 123 <END>和薪水<START:sal> 10000 <END>或更多。

我已培训NameFinderME来处理此数据

NameFinderME.train("en", "desigcd", SampleStream, modelParams, desigNameFinderFactory);
//Training twice for different types of data
NameFinderME.train("en", "salary", SampleStream, modelParams, desigNameFinderFactory);

Span desigNumSpans[] = desigFinder.find(strInput.split(" "));
            for(Span span : desigNumSpans)
            {
                //span.gets//
                System.out.println(span);
                System.out.println("Type="+span.getType());
                System.out.println(strInput.split(" ")[span.getStart()]);
            }

这将打印以下输出。 [3..4]设计 TYPE = desigcd 123 [8..9]设计 TYPE = desigcd 10000

为什么它采用相同类型(desigcd)两次?这是错的吗?因为句子10000是sal?

,它第二次打印时不应该为null

1 个答案:

答案 0 :(得分:0)

重点是两个标签&#39; sal&#39;和'设计&#39;是数字。因此,尝试提供区分两者的功能。