python - 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)。现在我在这里感到震惊,我的问题是正确的方式?
任何人都可以建议我改进我的模型的任何想法吗?
谢谢
解决方案
您需要一个更大的数据集来训练模型以更好地预测。大多数情况下,100 个数据集会在不同的情况下失败。
推荐阅读
- android - 导航组件 - 如何检查片段是否新导航到与弹回
- c++ - Visual Studio 2019 clang 扩展中的 LLDB 在哪里?
- python - 如何关闭自动完成但在 Jupyter Notebook 中保持提示?
- matlab - MATLAB - 情节出现在新图中?
- php - 更新mysql中的表数据
- android - 请求 Android 覆盖权限会导致根据 Android 版本显示不同的屏幕 - 这可以避免吗?
- javascript - 如何用中文文件名写入文件
- sas - sas datastep 循环计算新的数据行
- node.js - 如何在 Express.js 应用程序中设置多个视图文件夹
- python - 如何通过虚拟机连接到主机上的套接字服务器?