公司的一个项目,首先需要过滤一下邮件
邮件的主要内容就是应聘信息
当然会产生很多的垃圾邮件,比如智联招聘发的广告、猎头邮件和网易广告等
这里首先要过滤一下邮件,把没有用处的垃圾邮件过滤掉
本着先易后难的原则,首先使用简单的过滤方法
简单的说就是根据标题中的关键词,发件人邮箱来过滤邮件
这样的过滤方法其实过滤的准确性还是挺高的
当然啦,准确率和召回率可能还是要差一点的
经过初步过滤之后,接下来要做的就是信息的抽取
这个东西难度较大,
抽取的东西有地址、人名、公司名、职位、联系方式等
机器识别毕竟无法达到人类的高度
本次开发中主要使用python来做,这里写一下python项目需要注意的问题
1、不要滥用try ... except .....
感觉这个问题很严重,如果滥用,而且还没处理好的话,出了问题根
本就无法调试,返回错误如果不对的话根本就无法追踪
2、要注意编码问题
在使用python处理中文的时候,编码问题是格外重要,不过python的
编码还是比较简单,我遇到的有gbk、gb18030、gb2312、utf8这几
种使用的时候统一转为utf8比较方便
3、时间的处理
这个还是比较麻烦的,邮件中的时间都是字符串类型,关键是要知道
怎么去转化,例如:
Wed, 2 Mar 2016 14:31:24 +0800 (CST)
这里面的Wed, 2 Mar 2016 14:31:24部分,可以通过以下方式来做
time.strptime('Wed, 2 Mar 2016 14:31:24', '%a,%d %b %Y %H:%M:%S')
这样也能生成一个time的对象
缺点就是需要截取一部分,而且不知道时间格式是否会变化,如果变化的话那也是要出问题的
这里面email模块提供了一个解析的方法
from email import utils
utils.mktime_tz(utils.parsedate_tz(timestr))
这样返回的是时间戳,然后再用
time.localtime(stamptime)
就可以返回正常的时间格式了
其实email的utils方法提供了很多的解析邮件的方法,比如:
utils.parseaddr()就可以把msg.get('From')里面的内容解析成邮箱