使用Python和NLP构建你自己的简历解析器
使用Python和自然语言处理(NLP)一步一步地建立你自己的简历分析器的指南。
让我们先把一件事说清楚。简历是对你的技能和经验在一两页内的简短总结,而简历则更详细,是对申请人能力的较长表述。说到这里,让我们深入研究使用Python和基本的自然语言处理技术构建一个解析器工具。
简历是非结构化数据的一个很好的例子。由于没有广泛接受的简历布局;每份简历都有自己的格式风格,不同的文本块,甚至类别标题也确实有很大的不同。我甚至不需要提及解析多语言简历是多么大的挑战。
关于建立简历解析器的一个误解是认为这是一项容易的任务。"不,它不是"。
我们只谈预测看简历的申请人的名字。
世界上有数以百万计的人名,从Björk Guðmundsdóttir到毛泽东,从Наина Иосифовна到Nguyễn Tấn Dũng。许多文化习惯于使用中间的首字母,如Maria J. Sampson,而有些文化则广泛使用前缀,如Maria Brown女士。试图建立一个人名数据库是一种绝望的努力,因为你永远无法跟上它。
那么,在了解了这个东西的复杂性之后,我们是否应该开始建立我们自己的简历解析器呢?
目录
了解这些工具
将简历转换为纯文本
从PDF文件中提取文本
从docx文件中提取文本
从doc文件中提取文本
从简历中提取字段
从简历中提取姓名
从简历中提取电话号码
从简历中提取电子邮件地址
从简历中提取技能
从简历中提取教育和学校
了解这些工具
我们将使用Python 3,因为它有大量已经可用的库,而且它在数据科学领域被普遍接受。
我们还将使用nltk来完成NLP(自然语言处理)任务,如停止词过滤和标记化,使用docx2txt和pdfminer.6从MS Word和PDF格式中提取文本。
我们假设你的系统中已经有了Python3和pip3,并且可能使用了virtualenv的奇妙功能。我们将不讨论安装这些东西的细节。我们还假设你运行在一个基于Posix的系统上,如Linux(基于Debian)或macOS。
将简历转换为纯文本 从PDF文件中提取文本 让我们先用pdfminer从PDF文件中提取文本。你可以使用pip3(Python软件包安装程序)工具来安装它,或者从源代码编译它(不推荐)。使用pip,就像在命令提示符下运行以下程序一样简单。
pip install pdfminer.6
使用pdfminer,你可以轻松地从PDF文件中提取文本,使用以下代码。
# example_01.py
from pdfminer.high_level import extract_text
def extract_text_from_pdf(pdf_path):
返回 extract_text(pdf_path)
if __name__ == '__main__':
print(extract_text_from_pdf('./resume.pdf')) # noqa: T001
很简单,对吗?PDF文件在简历中非常流行,但有些人会喜欢docx和doc格式。让我们接着也从这些格式中提取文本。
从DOCX文件中提取文本 为了从docx文件中提取文本,其过程与我们对PDF文件所做的相当相似。让我们使用 pip 安装所需的依赖项(docx2txt),然后编写一些代码来完成实际工作。
pip 安装 docx2txt 而代码如下。
# example_02.py
import docx2txt
def extract_text_from_docx(docx_path):
txt = docx2txt.process(docx_path)
if txt:
return txt.replace('\t', ' ')
return None
if __name__ == '__main__':
print(extract_text_from_docx('./resume.docx')) # noqa: T001
如此简单。但是当我们试图从老式的doc文件中提取文本时,问题就来了。这些格式不能被docx2txt包正确处理,所以我们要做一个小技巧来从它们中提取文本。请继续。
从文档文件中提取文本 为了从doc文件中提取文本,我们将使用Pete Warden提供的整洁但极其强大的catdoc命令行工具。
Catdoc 读取 MS-Word 文件并将可读的 ASCII 文本打印到 stdout,就像 Unix 的 cat 命令。我们将使用apt工具安装它,因为我们运行的是Ubuntu Linux。你应该选择运行你喜欢的软件包安装程序,或者你可以从源代码中构建该工具。
apt-get更新
yes | apt-get install catdoc
准备好后,现在我们可以输入代码,它将实例化一个子进程,将stdout捕获到一个字符串变量中,并像我们对pdf和docx文件格式那样返回。
简历解析器

最低0.47元/天 解锁文章
117

被折叠的 条评论
为什么被折叠?



