Spacy NER模型训练数据改进

时间:2019-06-25 12:46:51

标签: python nlp spacy

对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)。现在我被打中了,我的问题是正确的吗?

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

谢谢

1 个答案:

答案 0 :(得分:0)

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