【轉帖】Python在大資料分析及機器學習中的兵器譜

來源:互聯網
上載者:User

標籤:

Flask:Python系的輕量級Web架構。

 

1. 網頁爬蟲工具集

Scrapy 

推薦大牛pluskid早年的一篇文章:《Scrapy 輕鬆定製網路爬蟲》

Beautiful Soup 客觀的說,Beautifu Soup不完全是一套爬蟲工具,需要配合urllib使用,而是一套HTML/XML資料分析,清洗和擷取工具。
Python-Goose  Goose最早是用Java寫得,後來用Scala重寫,是一個Scala項目。Python-Goose用Python重寫,依賴了Beautiful Soup。前段時間用過,感覺很不錯,給定一個文章的URL, 擷取文章的標題和內容很方便

 

 

 

 

 

 

2. 文本處理

NLTK — Natural Language Toolkit

推薦2本書籍:

1. 官方的《Natural Language Processing with Python》,以介紹NLTK裡的功能用法為主,同時附帶一些Python知識,同時國內陳濤同學友情翻譯了一個中文版,這裡可以看到:推薦《用Python進行自然語言處理》中文翻譯-NLTK配套書;

2. 《Python Text Processing with NLTK 2.0 Cookbook》,這本書要深入一些,會涉及到NLTK的代碼結構,同時會介紹如何定製自己的語料和模型等,相當不錯

Pattern   Pattern由比利時安特衛普大學CLiPS實驗室出品,客觀的說,Pattern不僅僅是一套文本處理工具,它更是一套web資料採礦工具,囊括了資料抓模數塊(包括Google, Twitter, 維基百科的API,以及爬蟲和HTML分析器),文本處理模組(詞性標註,情感分析等),機器學習模組(VSM, 聚類,SVM)以及可視化模組等,可以說,Pattern的這一整套邏輯也是這篇文章的組織邏輯,不過這裡我們暫且把Pattern放到文本處理部分。我個人主要使用的是它的英文處理模組Pattern.en, 有很多很不錯的文本處理功能,包括基礎的tokenize, 詞性標註,句子切分,語法檢查,拼字錯誤修正,情感分析,句法分析等,相當不錯。
TextBlob TextBlob是一個很有意思的Python文本處理工具包,它其實是基於上面兩個Python工具包NLKT和Pattern做了封裝(TextBlob stands on the giant shoulders of NLTK and pattern, and plays nicely with both),同時提供了很多文本處理功能的介面,包括詞性標註,名詞短語提取,情感分析,文本分類,拼字檢查等,甚至包括翻譯和語言偵測,不過這個是基於Google的API的,有調用次數限制。TextBlob相對比較年輕,有興趣的同學可以關注。
MBSP for Python MBSP與Pattern同源,同出自比利時安特衛普大學CLiPS實驗室,提供了Word Tokenization, 句子切分,詞性標註,Chunking, Lemmatization,句法分析等基本的文本處理功能,感興趣的同學可以關注。
Gensim Gensim是一個相當專業的主題模型Python工具包,無論是代碼還是文檔,我們曾經用《如何計算兩個文檔的相似性》介紹過Gensim的安裝和使用過程,這裡就不多說了。
langid.py 語言偵測是一個很有意思的話題,不過相對比較成熟,這方面的解決方案很多,也有很多不錯的開源工具包,不過對於Python來說,我使用過langid這個工具包,也非常願意推薦它。langid目前支援97種語言的檢測,提供了很多易用的功能,包括可以啟動一個建議的server,通過json調用其API,可定製訓練自己的語言偵測模型等,可以說是“麻雀雖小,五髒俱全”。
Jieba: 結巴中文分詞 終於可以說一個國內的Python文本處理工具包了:結巴分詞,其功能包括支援三種分詞模式(精確模式、全模式、搜尋引擎模式),支援繁體分詞,支援自訂字典等,是目前一個非常不錯的Python中文分詞解決方案。
xTAS 我們組同事之前發布了xTAS,也是基於python的text mining工具包,歡迎使用,連結:http://t.cn/RPbEZOW。看起來很不錯的樣子,回頭試用一下。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3. Python科學計算工具包

Numpy, Scipy, Matplotlib, iPython

 

 

 

4. Python機器學習與資料採礦工具包

scikit-learn 大名鼎鼎的scikit-learn,scikit-learn是一個基於NumPy, SciPy, Matplotlib的開源機器學習工具包,主要涵蓋分類,迴歸和聚類演算法,例如SVM, 羅吉斯迴歸,樸素貝葉斯,隨機森林,k-means等演算法,代碼和文檔都非常不錯,在許多Python項目中都有應用。例如在我們熟悉的NLTK中,分類器方面就有專門針對scikit-learn的介面,可以調用scikit-learn的分類演算法以及訓練資料來訓練分類器模型。這裡推薦一個視頻,也是我早期遇到scikit-learn的時候推薦過的:推薦一個Python機器學習工具包Scikit-learn以及相關視頻–Tutorial: scikit-learn – Machine Learning in Python官方首頁:http://scikit-learn.org/
Pandas Pandas也是基於NumPy和Matplotlib開發的,主要用於資料分析和資料視覺效果,它的資料結構DataFrame和R語言裡的data.frame很像,特別是對於時間序列資料有自己的一套分析機制,非常不錯。這裡推薦一本書《Python for Data Analysis》,作者是Pandas的主力開發,依次介紹了iPython, NumPy, Pandas裡的相關功能,資料視覺效果,資料清洗和加工,時間資料處理等,案例包括金融股票資料採礦等,相當不錯。官方首頁:http://pandas.pydata.org/
MLPY   官方首頁:http://mlpy.sourceforge.net/
MDP MDP用於資料處理的模組化工具包,一個Python資料處理架構。 從使用者的觀點,MDP是能夠被整合到資料處理序列和更複雜的前饋網路結構的一批監督學習和非監督學習演算法和其他資料處理單元。計算依照速度和記憶體需求而高效的執行。從科學開發人員的觀點,MDP是一個模組架構,它能夠被容易地擴充。新演算法的實現是容易且直觀的。新實現的單元然後被自動地與程式庫的其餘組件進行整合。MDP在神經科學的理論研究背景下被編寫,但是它已經被設計為在使用可訓練資料處理演算法的任何情況中都是有用的。其站在使用者一邊的簡單性,各種不同的隨時可用的演算法,及應用單元的可重用性,使得它也是一個有用的教學工具。”官方首頁:http://mdp-toolkit.sourceforge.net/
PyBrain PyBrain(Python-Based Reinforcement Learning, Artificial Intelligence and Neural Network)是Python的一個機器學習模組,它的目標是為機器學習任務提供靈活、易應、強大的機器學習演算法。(這名字很霸氣)PyBrain正如其名,包括神經網路、強化學習(及二者結合)、無監督學習、進化演算法。因為目前的許多問題需要處理連續態和行為空白間,必須使用函數逼近(如神經網路)以應對高維資料。PyBrain以神經網路為核心,所有的訓練方法都以神經網路為一個執行個體。”官方首頁:http://www.pybrain.org/
PyML  “PyML是一個Python機器學習工具包,為各分類和迴歸方法提供靈活的架構。它主要提供特徵選取、模型選擇、組合分類器、分類評估等功能。”
Milk

Machine learning toolkit in Python.

“Milk是Python的一個機器學習工具箱,其重點是提供監督分類法與幾種有效分類分析:SVMs(基於libsvm),K-NN,隨機森林經濟和決策樹。它還可以進行特徵選取。這些分類可以在許多方面相結合,形成不同的分類系統。對於無監督學習,它提供K-means和affinity propagation聚類演算法。”

官方首頁:http://luispedro.org/software/milkhttp://luispedro.org/software/milk
PyMVPA

MultiVariate Pattern Analysis (MVPA) in Python

“PyMVPA(Multivariate Pattern Analysis in Python)是為大資料集提供統計學習分析的Python工具包,它提供了一個靈活可擴充的架構。它提供的功能有分類、迴歸、特徵選取、資料匯入匯出、可視化等”官方首頁:http://www.pymvpa.org/
 Pyrallel 

 Parallel Data Analytics in Python

“Pyrallel(Parallel Data Analytics in Python)基於分散式運算模式的機器學習和半互動實驗項目,可在小型叢集上運行”Github字碼頁:http://github.com/pydata/pyrallel
 Monte 

 gradient based learning in Python

“Monte (machine learning in pure Python)是一個純Python機器學習庫。它可以迅速構建神經網路、條件隨機場、羅吉斯迴歸等模型,使用inline-C最佳化,極易使用和擴充。”官方首頁:http://montepython.sourceforge.net
 Theano  “Theano 是一個 Python 庫,用來定義、最佳化和類比數學運算式計算,用於高效的解決多維陣列的計算問題。Theano的特點:緊密整合Numpy;高效的資料密集型GPU計算;高效的符號微分運算;高速和穩定的最佳化;動態產生c代碼;廣泛的單元測試和自我驗證。自2007年以來,Theano已被廣泛應用於科學運算。theano使得構建深度學習模型更加容易,可以快速實現多種模型。PS:Theano,一位希臘美女,Croton最有權勢的Milo的女兒,後來成為了畢達哥拉斯的老婆。
 Pylearn2  “Pylearn2建立在theano上,部分依賴scikit-learn上,目前Pylearn2正處於開發中,將可以處理向量、映像、視頻等資料,提供MLP、RBM、SDA等深度學習模型。”官方首頁:http://deeplearning.net/software/pylearn2/

【轉帖】Python在大資料分析及機器學習中的兵器譜

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.