名称识别:如何标记训练集并选择算法?

2024-10-16 20:39:48 发布

您现在位置:Python中文网/ 问答频道 /正文

对于包含公司名称的文本,我想训练一个自动标记承包商(执行任务的公司)和负责人(公司雇用承包商)的模型。在

例如:

Blossom Inc. hires the consultants of Big Think to develop an outsourcing strategy.

以Blossom Inc为委托人,Big Think作为承包商。在

我的第一个问题:仅标记我的培训集中的负责人和承包商就足够了,还是另外使用词性标记更好?

换句话说,要么

Blossom/PRINCIPAL Inc./PRINCIPAL hires/NN the/NN consultants/NN of/NN Big/CONTRACTOR Think/CONTRACTOR to/NN develop/NN an/NN outsourcing/NN strategy/NN ./.

或者

Blossom/PRINCIPAL Inc./PRINCIPAL hires/VBZ the/DT consultants/NNS of/IN Big/CONTRACTOR Think/CONTRACTOR to/TO develop/VB an/DT outsourcing/NN strategy/NN ./.

第二个问题:一旦我有了训练集,nltk包的哪种算法最有前途?N-Gram标签,Brill标签,TnT标签,Maxent分类器,Naive Bayes。。。?还是我完全走错了路?在

我是新来的NLP,我只是想在我投入大量时间来标记我的训练集之前征求意见。我的文本是德语,这可能会增加一些困难。。。谢谢你的建议!在


Tags: oftheto标记principal公司nninc
3条回答

我建议您不要合并命名实体和POS信息。大多数研究表明POS(或其他一些形态和/或大写特征)对于检测命名实体是有价值的。由于您可以非常安全地使用自动POS标记器(除非您处理嘈杂的文本),您可能会得到以下结果:

Blossom/NNP/PRINCIPAL Inc./NNP/PRINCIPAL hires/VBZ/O the/DT/O consultants/NNS/O of/IN/O Big/NNP/CONTRACTOR Think/NNP/CONTRACTOR to/TO/O develop/VB/O an/DT/O outsourcing/NN/O strategy/NN/O ./.

其中POS级别将自动标记,而您可以手动注释委托人和承包商。还要注意,大多数人使用BIO format来标记命名实体。在

请记住,识别组织通常是相当困难的——至少比人员和地点更难。除非您有一个预定义的组织列表,否则需要使用大型词典。直觉上,我想你可以把你的任务分为:

  1. 识别和过滤组织(ORG),例如使用一个NER标签
  2. 注入额外的处理(模式/语法/语义)
  3. 实施第二个模型,转换委托人或承包商的相关组织

命名实体识别(Stanford)已经足够解决您的问题了。在

使用词性标记不会帮助您解决问题。在

生成NER模型所需的足够数量的训练数据将给您带来良好的结果。在

如果你使用Stanford-NER,那么它使用CRF分类器和算法。在

  1. 您不需要手动标记POS。POS tager会帮你的。在
  2. 德语词性标记请参见this question。在

相关问题 更多 >