上車|Python文本分析初體驗(下)

編程語言 Python NLTK 大數據 崑崙數據K2Data 2017-05-14

上車|Python文本分析初體驗(下)

中文文本分析常見的問題

中文的文本分析相對於英文有著很大的不同。英文天然具有分詞的標誌——空格,每個單詞之間一定是以空格進行分離,所裡在對於英文文章進行分詞變得相對簡單,沒有分錯詞的問題。然而對於中文來說,分詞是一個十分困難的事情,中文之間並沒有諸如空格這樣的分詞標誌,如何對中文進行分詞,對於提高中文文本分析的準確率有著很重要的影響。

中文的分詞大致可以分為兩類,分別是基於字典的機械分詞方法和以及基於統計模型的序列標註方法。字典匹配是將文本中的文字切片和已有的字典進行匹配,如果文字切片在字典中出現,則為正確的匹配字符,字典匹配包括最大匹配法和全切分路徑選擇等方法。序列標註的方法有隱馬爾科夫模型(HMM)和條件隨機場(CRF),通過統計計算的方式,得出最有可能的文字組合。

基於Stanford CoreNLP Toolkit和Python NLTK的中文分詞實例Stanford CoreNLP Toolkit

Stanford NLP是Stanford NLP團隊開發的一款基於java的開源自然語言處理工具集,提供了包括統計NLP和深度學習NLP在內的多種自然語言解決方案。Stanford NLP Software有著豐富的文本處理功能,包括分詞,詞性標註,命名實體辨別,句法依存分析等。Stanford NLP Word Segmenter提供了基於條件隨機場(CRF)的中文分詞解決方案,擁有兩個分別基於 Chinese Penn Treebank Standard和Peking University Standard的模型。

· Stanford CoreNLP Online

Stanford NLP Software還提供了在線使用的工具,有興趣的話還可以在線嘗試和感受一下文本分析的魅力。在文本框中輸入想要分析的文字段落,選擇需要的輸出格式,並點擊submit提交,分析結果將以你選擇的方式呈現,這裡以可視化模式為例:

· Python NLTK Library

在Python的NLTK(Natural Language Toolkit)中也提供了Stanford NLP分詞器的接口,我們可以使用Python來進行簡單的文本分析訓練。NLTK是Python中最常用的自然語言處理包,提供了包括50是個語料庫在內的許多工具接口,並提供一系列文本處理的工具,使用起來十分方便。NLTK提供的工具包括文本分類,文本分詞,文本標註和解析等。

· Stanford CoreNLP安裝和使用

Standford NLP的安裝十分簡單, 在Stanford NLP官網的下載頁面,下載Segmenter和Parser兩個組件,將其置於你的python目錄下,調用NLTK的StanfordSegmenter包,使用工具時需先配置路徑,如下圖所示,下圖使用的是相對路徑:

上車|Python文本分析初體驗(下)

下面我們使用Stanford NLP的分詞器來進行一個簡單的分詞訓練,通過調用segment方法來實現中文分詞:

代碼:segmenter.segment(u"崑崙數據是一家專注於工業大數據的公司")

結果:崑崙 數據 是 一 家 專注於 工業 大數 據 的 公司

我們也可以調用Stanford NLP Software來做詞性標註的工作,從官網下載Postagger組件,同樣,將其置於你的Python目錄下,調用NLTK的StanfordPOSTagger包,並編輯接口的相對路徑,需要注意的是,做詞性標註時,輸入的文本應為分詞後的單詞集,不是未分詞的文本,如下圖所示:

上車|Python文本分析初體驗(下)

代碼:

上車|Python文本分析初體驗(下)

結果:

上車|Python文本分析初體驗(下)

Stanford NLP Software還有許多十分有用的功能,感興趣的話,可以在官網上下載其他的組件,配置好路徑,自己選擇一個文本進行試驗,相信一定會發現許多有趣的結果。

結語

文本分析是非常前沿的技術,也是一個十分費時費力的工作,需要花大量的時間和精力處理千變萬化的無規則文字信息,人為的總結輸入,加上機器模型的不斷學習,才能得到一個較為出色的文本分析系統。我們也需要與時俱進,運用最先進的算法理念,所以不斷的自我學習和提升,是做好文本分析工作的必要過程。借用喬布斯的那句話:Stay Hungry,Stay Foolish。

作者:JasonKeine

出身華盛頓大學的數據科學小磚家,92年小鮮肉,180+,K2分析團隊顏值擔當之一,文藝,深沉……看到這裡心動了?人家已脫離單身苦海。這次我們真的不招親~

Reference:

Text Mining Wiki:http://www.wikiwand.com/en/Text_mining

Google’s Neural Machine Translation System: https://research.google.com/pubs/pub45610.html

StanfordNLP:https://nlp.stanford.edu

StanfordNLP Download:https://nlp.stanford.edu/software/

StanfordNLP Online:http://nlp.stanford.edu:8080/corenlp/

Python NLTK:http://www.nltk.org

NLTK斯坦福分詞器實踐:http://www.52nlp.cn/python自然語言處理實踐-在nltk中使用斯坦福中文分詞器

基於Deep Learning的分詞嘗試:https://zhuanlan.zhihu.com/p/22427093

Three Real-World Applications of Text Mining to Solve Specific Business Problems: http://www.b-eye-network.com/view/12783

相關推薦

推薦中...