記一次python專案的開發

PJZero發表於2016-12-31

最近因為學校開設課程實驗的要求,我完成了一個小型的bat招聘網站內容分析系統,思路挺簡單的,我就想通過爬蟲把bat的招聘網站內所有的職位資訊都爬取下來,然後做一個同意的管理,使用者client可以通過app和系統進行互動,獲取到這三個公司職位的聚合資訊。後臺會開啟一個不斷更新資料庫的服務,通過這個服務,網站內的所有職位在一定的時間內都會同步到我的伺服器,以保證我的資料庫內容的時效性。使用者可以選擇關注四個技術點,以及關注的一個具體的職位,現在還沒有實現職位資訊變更的訊息推送,不過在預期內,或許能實現吧(可能性不大)。然後我也大概做了一個簡單的推薦系統,可以根據使用者關注的內容推送職位要求或描述相近的職位給使用者,可惜的是即使我已經訓練好了模型,但是執行起來速度還是跟不上,一個推薦過程大概需要半分鐘,當然這是在我的小筆記本上跑出來的速度,慚愧。推薦過程實現的思路肯定是有很多漏洞的,此前沒有做過自然預言處理相關的開發,實現的時候就是簡單的想,怎麼把一個職位的描述資訊儘可能無差錯的轉換為向量,在得到職位的向量之後,再利用各種聚類演算法進行聚類分析(這個想法非常非常的粗糙,這裡寫下來只是~還不如不寫,不管了)。總之實現過程沒什麼參考價值啊,而且最後做出來的東西也用不上,到時候拿去給老師檢查的時候就當作一個噱頭吧。
實現的過程中還是遇到了不少問題的,比如說怎麼實現一個restful伺服器?資料庫的更新策略是什麼?怎麼完成這個推薦系統?訓練的模型怎麼跟隨資料庫中的資料變化來更新(我計算過大概更新一次模型需要半個小時)?怎麼處理錯誤,返回錯誤資訊?~不管最後實現的結果怎麼樣吧,也算是有一個不太成熟的解決辦法了不是。
程式碼量大概就2200行吧,這個只是服務端的,我只負責服務端的實現。程式碼我已經開源到開源中國上了~Here如果你們感興趣的話,歡迎fork~在實現的過程中,特別是後臺採用了很多很多各種各樣的包和苦,這裡列一下

  • sqlalchemy: 資料庫orm,算是python:orm的一個標準吧,提供的介面非常非常的友好,使用方便~推薦
  • flask:伺服器框架,輕量,開發迅速,不廢話推薦!
  • requests:http請求框架,非常好用~ 簡單的幾句就能完成一個請求而且介面非常的human,你只要知道http協議,幾乎可以不用去看文件就能實現傳送請求內容獲取等。神器
  • BeautifulSoup4:頁面解析工具,我比較喜歡裡面的通過選擇器選擇標籤的功能,還是挺實用的,不過希望這個庫的作者能吧xpath選擇方式加上去,畢竟個人覺得xpath比較直觀,好理解。推薦
  • jieba:中文分詞工具,非常有名了,對自然語言處理感興趣的可以瞭解一下,這次主要用到的它的關鍵詞提取的功能,效果還是不錯的。
  • word2vec:一個可以將word轉換為vector的工具包,裡面也包含了doc2vec,實用型。
  • scikit-learn:python機器學習的不二之選,神器。也是自己非常喜歡的一個包,裡面有各種各樣的機器學習的模型和演算法實現,而且介面出乎意料的統一,這點讓我很喜歡。本人對機器學習也挺感興趣的,以後打算去看看它的原始碼啦。
  • matplotlib:畫圖畫圖~不多說了!!!推薦

話說python裡面好用的包還真的多誒,真是挺喜歡這們語言的,喜歡它的語法,喜歡它的各種牛逼的庫,加油吧,希望自己以後能靠著自己喜歡的東西做自己喜歡的事情過自己喜歡的生活~

相關文章