我正在重新训练斯坦福NER系统,从Text中提取技术名称和组织名称。
如果我想重新训练stanford ner模型,我们应该提供以下格式的训练数据:
She O
works O
on O
C# TECHNOLOGY
at O
New ORGANIZATION
York ORGANIZATION
TImes ORGANIZATION
and O
Microsoft ORGANIZATION
in O
New LOCATION
York LOCATION
以这种方式指定命名实体是否足够?在重新训练模型时,我们是否需要以某种格式指定词性信息?另外,如果我们有多个单词的实体,那么这是注释它们的正确方法吗?
这是我遵循的方法:方法是否合适?
在stanford ner的常见问题解答中使用此命令:
java -cp stanford-ner.jar edu.stanford.nlp.ie.crf.CRFClassifier -prop austen.prop
答案 0 :(得分:1)
是的,只需注释实体即可。斯坦福NER还支持在分类时使用POS信息的训练分类器,但是当使用分布相似性词群等其他技术时,它的准确性增加很少。在我们分发的模型中,为简单起见,我们不使用POS信息(因此NER可以在没有POS标签的情况下单独运行)。
对于注释多个单词实体,有几种策略。上述编码有时称为" IO" (在室外)。它具有易于解释和快速的优点,但缺点是不允许区分同一类的两个相邻实体 - 您必须假设同一类别的一组单词包含一个大实体。我们默认使用它,因为它简单而快速,尽管有这个缺点。 (相同类别的相邻实体很少出现在个人/组织/位置,但在其他一些领域可能更常见。)
但您也可以使用其他编码方案(如IOB)注释数据并训练模型,IOB具有相反的属性(更复杂,标记器运行速度较慢,可以表示相同类别的相邻实体)。有关详细信息,请参阅this SO question。