朋友是某上市企业的HR,集团上百个岗位,每天都能收到成千上万封简历,多次跟我提起能否做一个简历解析工具可以根据关键字快速筛选出需要的简历。简单思索,整个工具包含简历的获取、解析、保存以及检索。获取通过他们内部邮箱可以轻松拿到附件,存储和检索借助ElasticSearch。而其中的解析简历则是重点中的重点。
简历构成
从形式上简历可以是word、pdf、图片、html文件等方式,因此需要将附件首先转换成文字,其中图片需要用到ocr技术。而简历的内容大体可以分为基本信息,工作经历,获奖经历等。如果从头开发势必会使用很长时间,因此万能的互联网再次发挥了作用。
Pyresparser
经过many time的搜索pyresparser进入了我的视线,项目地址点这里,它可以检索出姓名、邮箱、手机号码、技能、工作经历等信息。虽然目前只能支持word文档和pdf文档,但基本够用了。pyresparser使用spacy处理文本信息,spacy是一个 Python 和 CPython 的 NLP 自然语言文本处理库,感兴趣的点这里。pyresparser使用非常简单
from pyresparser import ResumeParser
data = ResumeParser('/path/to/resume/file').get_extracted_data()
print(data)
输入结果
安装问题
1、Can t find model en_core_web_sm. It doesn t seem to be a Python package or a valid path to a data directory.
这个是缺少安装en_core_web_sm,可以直接执行命令安装python -m spacy download en_core_web_sm。也可以先下载en_core_web_sm包然后安装pip install en_core_web_sm-2.1.0.tar.gz。这里为方便大家下载我已经将包上传到这里。
2、Resource stopwords not found.Please use the NLTK Downloader to obtain the resource:import nltk nltk.download('stopwords')。
解决方法已经在问题里面了,建立一个新文件然后通过nltk.download('stopwords')下载文件。