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

How to extract features from an OpenNLP generators?

我正在使用这个自定义 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 代码,但我没有找到任何关于提取此生成器生成的特征的信息。

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

谢谢!

机器学习功能不保证令牌将被标记为命名实体。就好像在token里放了一个flag,说这个token出现在字典里,但是还需要用其他的feature来评估。

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