Python和NLP构建你自己的简历解析器

简历解析器

使用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文件格式那样返回。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值