Python NER使用Spacy库在恢复解析器上未给出正确的结果
我正在使用SpaCY的命名实体识别从简历中提取姓名、组织等。 这是我的python代码Python NER使用Spacy库在恢复解析器上未给出正确的结果,python,nlp,spacy,named-entity-recognition,ner,Python,Nlp,Spacy,Named Entity Recognition,Ner,我正在使用SpaCY的命名实体识别从简历中提取姓名、组织等。 这是我的python代码 import spacy import PyPDF2 mypdf = open('C:\\Users\\akjain\\Downloads\\Resume\\Al Mal Capital_Nader El Boustany_BD Manager.pdf', mode='rb') pdf_document = PyPDF2.PdfFileReader(mypdf) first_page = pdf_docume
import spacy
import PyPDF2
mypdf = open('C:\\Users\\akjain\\Downloads\\Resume\\Al Mal Capital_Nader El Boustany_BD Manager.pdf', mode='rb')
pdf_document = PyPDF2.PdfFileReader(mypdf)
first_page = pdf_document.getPage(0)
nlp = spacy.load('en_core_web_sm')
text = first_page.extractText()
doc = nlp(text)
for ent in doc.ents:
print(ent.text, ent.label_)
如果我看到输出,它看起来不太好。
名称未正确标识。姓氏被视为组织名称,迪拜被视为个人等等
这是我从公共数据集中获得的简历快照
我想从简历中提取候选人姓名、组织机构、位置等信息。当我阅读文档时,它说使用spaCy的准确率超过95%。但就我而言,情况并非如此。
有没有办法提高特征提取的准确性
spaCy NER是在OnNotes语料库上训练的,该语料库是电话对话、新闻专线、新闻组、广播新闻、广播对话和网络日志的集合。这些类型的文本都主要包含完整的句子,这与你正在培训的简历大不相同。例如,实体Dubai周围没有语法上下文,这使得该特定模型很难将其识别为位置。它习惯于看到像…这样的句子。。。当他在迪拜旅行时。。。。一般来说,机器学习性能总是与您正在培训和评估模型的特定问题领域相关
您可以尝试使用en_core_web_md或en_core_web_lg运行此功能,它们在OntoNotes上的性能稍好一些,但在特定的域文本上仍然不能很好地运行
为了尝试提高准确性,我建议您自己注释一组简历,并将培训数据反馈到模型中,从而进一步完善现有模型。请参阅文档。不过,我不确定这会有多好,因为正如我所说的,简历更难,因为它们的句子上下文较少。spaCy NER是在OntoNotes语料库上训练的,该语料库是电话对话、新闻专线、新闻组、广播新闻、广播对话和网络日志的集合。这些类型的文本都主要包含完整的句子,这与你正在培训的简历大不相同。例如,实体Dubai周围没有语法上下文,这使得该特定模型很难将其识别为位置。它习惯于看到像…这样的句子。。。当他在迪拜旅行时。。。。一般来说,机器学习性能总是与您正在培训和评估模型的特定问题领域相关
您可以尝试使用en_core_web_md或en_core_web_lg运行此功能,它们在OntoNotes上的性能稍好一些,但在特定的域文本上仍然不能很好地运行
为了尝试提高准确性,我建议您自己注释一组简历,并将培训数据反馈到模型中,从而进一步完善现有模型。请参阅文档。不过,我不确定这会有多好,因为正如我所说的,简历更难,因为它们的句子上下文较少