【发布时间】:2015-10-21 19:51:58
【问题描述】:
从http://nlp.stanford.edu/nlp/javadoc/javanlp/edu/stanford/nlp/ie/NERFeatureFactory.html,添加一个新的提取器,最后一步是:
为此功能向 NERFeatureFactory 添加代码。首先决定哪个 该功能涉及类(隐藏状态)。如果只有 当前类,您将特征提取器添加到 featuresC 代码中,如果 当前类和上一类,然后是 featuresCpC 等。
我们只需要在特征集合中添加一个字符串,例如:featuresCpCnC.add(getWord(c) + "-PNSEQW");,然后StanfordNER就会将字符串解析为一个真实的特征吗?在这种情况下,如何在特征字符串中指定特定的类/字段,例如标题和作者?当我将特征转储到文本文件时(使用 exportFeatures 或 printFeatures),我只找到像 June-PSEQW|CpC 这样的通用类的特征,而我想要像 June-DateField-DateField-PSEQW|CpC 这样的东西,这意味着 (class[t-1]==DateField)*(class[t]==DateField)*(word[t-1]=="June")
【问题讨论】:
-
看来我找到了答案。添加字符串是添加新特征提取器的正确方法。斯坦福 NER 之所以只有泛型类的特征,是因为随后会生成所有可能的特定类的特征,并使用前向后向算法学习它们的权重。
标签: stanford-nlp named-entity-recognition