python-3.x - Spacy python错误的多实体识别
问题描述
我被困在一个问题上并寻求你的帮助。我正在尝试使用 spacy 训练多个实体
以下是我的火车数据
response =[
('java developer with java and html css javascript ',
{'entities': [(0, 14, 'jobtitle'),
(0 , 4, 'skills'),
(34,37,'skills'),
(38, 49, 'skills')
]
}),
('looking for software engineer with java python',
{
'entities': [
(12, 29, 'jobtitle'),
(40, 46, 'skills'),
(35,39,"skills")
]
})
]
这是我有问题的火车代码
nlp = spacy.blank("en")
optimizer = nlp.begin_training()
for i in range(20):
random.shuffle(TRAIN_DATA)
for text, annotations in TRAIN_DATA:
nlp.update([text], [annotations], sgd=optimizer)
错误:ValueError:[E103] 试图设置冲突的 doc.ents:'(0, 14, 'jobtitle')' 和 '(0, 4, 'skills')'。令牌只能是一个实体的一部分,因此请确保您设置的实体不重叠。
解决方案
正如错误消息所解释的,spacy 的 NER 模型不支持重叠的实体跨度,因此您无法使用这些注释训练模型。
推荐阅读
- selenium - 使用 BeautifulSoup 或 Selenium 抓取网站时找不到数据
- python - 模型不适合 numpy 数组说“Int 不是可迭代对象”
- python - 在 Python 中为 Azure Blob 存储中的目录生成 SAS 令牌
- python - Python合并2个excel文件并将excel图表导入pdf文件
- angular - 类型“jsPDF”上不存在属性“fromHTML”
- python - 使用另一个选定的列创建新的 CSV
- java - 如何在 java 流中添加我的方法?
- laravel-7 - 根据下拉列表连接数据库
- typescript - 为什么 TypeScript 的箭头函数返回的不仅仅是一个显式的 void,但函数上的错误却是一样的?
- ckeditor - CKEditor5 - 源格式/布局