python + 機器學習 + 爬蟲__python
最後更新:2018-07-29
來源:互聯網
上載者:User
Python在這方面的package非常齊全:
網頁爬蟲: scrapy(不太清楚)
資料採礦: numpy, scipy, matplotlib, pandas(頭三個是業界標準,第四個類比R)
機器學習: scikit-learn, libsvm(極好)
自然語言處理: nltk(極好)
python強調程式員的生產力,讓你把精力集中在邏輯上而不是語言本身上。
你能想象用一下午時間實現從0開始一個簡單的搜尋引擎嗎。C++顯然是不行的。。你的大部分時間都將花在實現基本資料結構和調試語言錯誤上。。而用python,你要做的就是真正理解搜尋演算法,之後的實現真的很簡單。。
我覺得用python很適合演算法研究,不僅僅是資料採礦。快速開發能讓你迅速驗證你的想法,而不是把時間浪費在程式本身上(想象一下你寫了一星期的c++,調了一大堆積指標錯誤,最後發現想法本身就有錯誤。。)當你知道你已經有了一個正確的演算法,要使他運行速度提高只需用c++等重寫效能瓶頸並嵌入就行了。。
Links:
Scipy Stack(http://www.scipy.org/getting-started.html) - general tasks
Spark(http://spark.apache.org/docs/latest/index.html) - going large
Tensorflow(http://www.tensorflow.org/) - going deep GitHub - jupyter/docker-stacks: Opinionated stacks of ready-to-run Jupyter applications in Docker.
Python的快速迭代能力讓它收到青睞。
1)爬蟲Scrapy,簡單易用。用rq-queue結合的話很容易構造一個分布式的爬蟲。我曾經這樣爬下了整個豆瓣的好友關係圖。
2)資料採礦裡常用的演算法python裡都有實現。肖智博提到的scikit learn可謂翹楚。不僅文檔清晰,且幾乎需要常用的演算法均有實現。我們用scikit learn做了一個evemt detection的系統。整個系統用python寫成,機器學習部分用python
3)nlp部分不是特別瞭解。nltk很普遍的被很多大學課程用到。
企業裡:
據我所知公司裡的使用方式
google:爬蟲C++,資料採礦C++,nlp C++。python用來處理資料。
twitter:所有服務均用java和scala,python用來寫快速迭代的工具。比如說做搜尋引擎的演算法的同事寫了一個python用戶端用於自我裝載搜尋品質,我自己用py寫好了一個搜尋字詞推薦系統,包括介面,演算法和介面,通過測試後改寫成java。
網頁抓取:
python網頁抓取功能十分強大,眾多的標準庫,簡潔易上手,多種方法均可實現。
用Python做網頁抓取與解析入門筆記
我曾經做過urllib2+beautifulsoup、Xpath和scrapy三種的。前兩個可以藉助mongodb資料庫能很好地抓取、解析並儲存。scrapy能夠輸出json檔案。ps:中文編碼比較頭疼。
資料採礦:
Python 是一門適合做資料採礦的語言嗎。
機器學習:
推薦一本書《機器學習實戰》,非常棒。python代碼簡單優雅,易於上手,科學計算軟體包眾多。高效可複用的python是一個不錯的選擇。
自然語言處理:
NLTK目前已經發展超過十年,擁有超過十萬行的代碼。但是在中文處理上並沒有很完整的發展。推薦《python自然語言處理》。python提供了較多的工具和技術。中文研究真的很少,希望更多的人能夠將自己研究的東西放出來給予參考,不像現在搜尋一下全是《python自然語言處理》書上的內容。
python的nltk中文使用和學習資料匯總幫你入門提高