添加功能提取器到斯坦福NER

时间:2015-01-14 21:38:39

标签: stanford-nlp named-entity-recognition

http://nlp.stanford.edu/nlp/javadoc/javanlp/edu/stanford/nlp/ie/NERFeatureFactory.html开始,要添加新的提取器,最后一步是:

  

为此功能添加NERFeatureFactory代码。首先决定哪个   类(隐藏状态)涉及该功能。如果只有   当前类,您将功能提取器添加到featuresC代码,if   当前和上一课,然后是featureCpC等。

我们只需要在功能集合中添加一个字符串,例如: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")

1 个答案:

答案 0 :(得分:0)

我认为这是预期的行为 - 是否有性能问题表明培训没有按预期进行?

详细说明,在最常见的情况下,特征形成器f(x,y)同时接受输入x和输出y,并为该特定对构造特征向量。但是,在许多NLP应用程序中,这些功能实际上只取决于输入x,因此我们公开的特征化程序接口只是f(x),并且只是隐式地将特征与后端的输出类连接起来({{3} })。在这种情况下,我们只打印f(x)而不是完整的f(x,y)似乎是合理的。