如何从OpenNLP生成器中提取特征?

时间:2016-08-17 08:28:04

标签: java machine-learning nlp opennlp

我正在使用此自定义featureGenerator:

    AdaptiveFeatureGenerator featureGenerator = new CachedFeatureGenerator(
             new AdaptiveFeatureGenerator[]{                                 
                new WindowFeatureGenerator(new TokenFeatureGenerator(), 2, 2),
                new WindowFeatureGenerator(new TokenClassFeatureGenerator(true), 2, 2),
                new OutcomePriorFeatureGenerator(),
                new PreviousMapFeatureGenerator(),
                new BigramNameFeatureGenerator(),
                new SentenceFeatureGenerator(true, false),
                new DictionaryFeatureGenerator("person", dictionary)
               });

我只添加了 DictionaryFeatureGenerator ,条目很少:

    Dictionary dictionary = new Dictionary();
    dictionary.put(new StringList(new String[]{"giovanni"}));
    dictionary.put(new StringList(new String[]{"maria"}));
    dictionary.put(new StringList(new String[]{"luca"}));

我试着查看DictionaryFeatureGenerator.java代码,但是我没有找到任何关于提取这个生成器的生成功能的信息。

所以问题是,在我的模型的生成器列表中添加此生成器后,如何提取功能以了解哪些标记与我的字典条目匹配?

谢谢!

1 个答案:

答案 0 :(得分:1)

机器学习功能不保证令牌将被标记为命名实体。它就像在令牌中放置一个标志,表示令牌出现在字典中,但仍然需要使用其他功能进行评估。

您可以使用DictionaryNameFinder跳过机器学习。