使用Spacy库的NER在简历解析器上未提供正确的结果

问题描述 投票:1回答:1

我正在使用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_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_) 

如果我看到输出,则效果不佳。名称未正确识别。姓氏被视为组织名称,迪拜被视为人,依此类推。

enter image description here

这是从公共数据集中获取的简历的快照。

我想从简历集中提取候选人的姓名,组织,位置等。当我阅读文档时,它说使用spaCy的准确性超过95%。但是就我而言不是。有什么方法可以提高特征提取的准确性吗?

enter image description here

python nlp spacy named-entity-recognition ner
1个回答
4
投票

spaRy NER model在OntoNotes语料库上进行训练,该语料库是电话对话,新闻专线,新闻组,广播新闻,广播对话和Weblog的集合。这些类型的文本都主要包含完整的句子,这与您正在训练的简历完全不同。例如,实体“迪拜”没有语法上下文,因此该特定模型很难将其识别为位置。过去常常看到诸如“ ...他在迪拜旅行时...”之类的句子。通常,机器学习性能始终与您正在训练和评估模型的特定问题领域相关。

[您可以尝试使用en_core_web_mden_core_web_lg来运行此功能,它们在OntoNotes上的性能稍好,但在特定的域文本上仍然不能很好地运行。

为了尝试提高准确性,我建议您自己注释一组简历,并将训练数据反馈回模型中,以进一步完善现有模型。请参阅文档here。我不确定这将如何运作,因为就像我说的那样,履历更加困难,因为它们从句子中获得的上下文更少。

© www.soinside.com 2019 - 2024. All rights reserved.