郵件信息抽取

公司的一個項目,首先須要過濾一下郵件
郵件的主要內容就是應聘信息
固然會產生不少的垃圾郵件,好比智聯招聘發的廣告、獵頭郵件和網易廣告等
這裏首先要過濾一下郵件,把沒有用處的垃圾郵件過濾掉python

本着先易後難的原則,首先使用簡單的過濾方法
簡單的說就是根據標題中的關鍵詞,發件人郵箱來過濾郵件
這樣的過濾方法其實過濾的準確性仍是挺高的編碼

固然啦,準確率和召回率可能仍是要差一點的調試

通過初步過濾以後,接下來要作的就是信息的抽取code

這個東西難度較大,
抽取的東西有地址、人名、公司名、職位、聯繫方式等
機器識別畢竟沒法達到人類的高度對象

本次開發中主要使用python來作,這裏寫一下python項目須要注意的問題開發

一、不要濫用try ... except .....字符串

感受這個問題很嚴重,若是濫用,並且還沒處理好的話,出了問題根   
 本就沒法調試,返回錯誤若是不對的話根本就沒法追蹤

二、要注意編碼問題get

在使用python處理中文的時候,編碼問題是格外重要,不過python的
 編碼仍是比較簡單,我遇到的有gbk、gb18030、gb23十二、utf8這幾
 種使用的時候統一轉爲utf8比較方便

三、時間的處理email

這個仍是比較麻煩的,郵件中的時間都是字符串類型,關鍵是要知道
 怎麼去轉化,例如:
 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')裏面的內容解析成郵箱
相關文章
相關標籤/搜索