首页 > 解决方案 > Spacy NER 模型训练数据改进

问题描述

我是 NLP 的新手,尝试在spacy.io的帮助下创建 NER 模型,我只是为 ORG 实体https://spacy.io/usage/training#ner创建自己的 NER 模型。训练数据大小为 100,训练数据如下所示。

TRAIN_DATA = [
    ("2003 -2005 Pergo Inc. Software Analyst\Database Administrator", {"entities": [(11, 20, "ORG")]}),
    ("PROFESSIONAL EXPERIENCE Client: WPS Health Solutions, Madison, WI                           Mar17 - Till Date Role: RPA Developer", {"entities": [(32, 52, "ORG")]}),
    ("Client: National Institutes of Health (NIH/NIAMS), Bethesda, MD             Jan15 - Feb17 Role: RPA Developer", {"entities": [(8, 36, "ORG")]}),
    ("Client: Wells Fargo, Fremont, CA                                                   July14 - Dec14 Role: .Net/SharePoint Developer", {"entities": [(8, 19, "ORG")]}),
]

现在我用我的训练模型测试我的句子。如果我使用训练有素的数据,我会得到完美的公司名称。

doc = nlp('Client: Ananth Technologies Limited, Hyderabad, India Feb11- July12 Role: QA Automation Tester')
print("Organization", [(ent.text, ent.label_) for ent in doc.ents])

组织 [(u'Ananth Technologies Limited', u'ORG')]

但我通过了它部分检测到的新句子。

doc = nlp('Client: MOUNTAIN HIGH HOME BUILDERS, Loveland, CO Application Engineer 8/03-5/10')
print("Organization", [(ent.text, ent.label_) for ent in doc.ents])

组织 [(u'MOUNTAIN HIGH', u'ORG')]

现在我逐渐增加我的训练数据,准确率提高的同时预测错误单词为 ORG。我的训练数据(句子)看起来不同,例如日期,名称,位置等......,在不同的地方不是你可以在上面看到的(TRAIN_DATA)。现在我在这里感到震惊,我的问题是正确的方式?

任何人都可以建议我改进我的模型的任何想法吗?

谢谢

标签: pythonnlpspacy

解决方案


您需要一个更大的数据集来训练模型以更好地预测。大多数情况下,100 个数据集会在不同的情况下失败。


推荐阅读