重新训练spaCy的NER v1.8.2 - 训练量和实体类型组合

时间:2017-05-11 09:58:06

标签: python-2.7 nlp named-entity-recognition spacy

我正在(重新)培训spaCy的命名实体识别器并且有一些疑问,我希望更有经验的研究人员/从业者可以帮助我弄清楚:

  1. 如果考虑几百个例子,这是一个很好的起点,那么那个合理的数字是什么? 100 000实体/标签是否过量?
  2. 如果我引入一个新标签,那么在培训期间标签的实体数量是否大致相同(平衡)是否最好?
  3. 关于混合其他实体类型的示例':

    • 我是否只是将随机已知类别/标签添加到我的训练集中,例如:('The Business Standard published in its recent issue on crude oil and natural gas ...', [(4,21, 'ORG')], )

    • 我可以为各种标签使用相同的文字吗?例如('The Business Standard published in its recent issue on crude oil and natural gas ...', [(55,64, 'COMMODITY')], )

    • 在类似的说明中我们假设我希望spaCyto还能识别第二个COMMODITY然后我可以使用相同的句子并标记不同的区域,例如('The Business Standard published in its recent issue on crude oil and natural gas ...', [(69,80, 'COMMODITY')], )?这是应该怎么做的?

    • 新标签和其他(旧)标签之间的比例被认为是合理的

  4. 感谢

    PS我使用spaCy 1.8.2在Ubuntu 16.04中使用Python2.7

1 个答案:

答案 0 :(得分:1)

Matthew Honnibal check out issue 1054 on spaCy's github page的完整答案。以下是与我的问题相关的最重要的一点:

  

问题(Q)1:如果考虑几百个例子并且是一个很好的起点,那么什么是合理的目标? 10万实体/标签是否过量?

     
    

答案(A):每个机器学习问题都会有不同的示例/准确度曲线。您可以通过使用比您更少的数据进行训练来了解这一点,并了解曲线的外观。如果您有1,000个示例,请尝试使用500,750等进行培训,并了解这会如​​何影响您的准确性。

  
     

问题2:如果我引入新标签,那么在培训期间该标签的实体数量是否大致相同(平衡)是否最佳?

     
    

A:在使渐变太稀疏之间进行权衡,并使学习问题无法代表实际示例的样子。

  
     

问题3:关于混合其他实体类型的示例':

     
      
  • 我只是将随机已知的类别/标签添加到我的训练集中:
  •   

A:不,应该注释该文本中的所有实体,因此上面的示例:('The Business Standard published in its recent issue on crude oil and natural gas ...', [(4,21, 'ORG')], )应为('The Business Standard published in its recent issue on crude oil and natural gas ...', [(4,21, 'ORG'), (55,64, 'COMMODITY'), (69,80, 'COMMODITY')], )

  
      
  • 我可以为各种标签使用相同的文字吗?:
  •   

A:不在给出示例的方式。见上一个答案。

  
      
  • 新标签和其他标签之间的比例是否合理?:
  •   

答:请参阅答案问题2

PS:双重引用是来自github问题答案的直接引用。