【发布时间】:2021-01-04 00:37:48
【问题描述】:
有没有办法使用 BERT 的偏移量将实体添加到 spacy doc 对象?问题是我的整个管道依赖于 spacy,我使用的是 spacy 不提供支持的最新 PUBMEDBERT。
因此,有时 pubmedbert 给出的实体偏移量不会导致 spacy 的有效 SPAN,因为标记化完全不同。
到目前为止,我做了哪些工作来解决我的问题? 我通过要求 spacy 在标点符号上拆分来制作自定义标记器,类似于 bert,但在某些情况下我无法制定规则。例如:-
text = '''assessment
Exdtve age-rel mclr degn, left eye, with actv chrdl neovas
Mar-10-2020
assessment'''
Pubmedbert 预测 13:17 是一个实体,即 dtve 但是在 spacy doc 对象中添加跨度作为实体时,它会导致 NONE,因为它不是有效的跨度。
span = doc.char_span(row['start'], row['end'], row['ent'])
doc.ents = list(doc.ents) + [span]
TypeError: object of type 'NoneType' has no len()
考虑 row['start'] 为 13, row['end'] 为 17, row['ent'] 为 label
我该如何解决这个问题?无论如何我可以使用 pubmedbert 给出的开始和结束偏移量在 spacy doc 对象中添加实体
非常感谢您对此的任何帮助,谢谢。
【问题讨论】:
标签: python data-science spacy bert-language-model huggingface-transformers