標籤:python 自然語言處理 nlp nltk 入門知識
本文主要是總結最近學習的論文、書籍相關知識,主要是Natural Language Pracessing(自然語言處理,簡稱NLP)和Python挖掘維基百科Infobox等內容的知識。
此篇文章主要參考書籍《Natural Language Processing with Python》Python自然語言處理,希望對大家有所協助。書籍:
官方網頁版書籍:http://www.nltk.org/book/
CSDN:
一. 自然語言處理簡單介紹
所謂“自然語言”,是指人們日常交流使用的語言,如英語、印地語隨著不斷演化,很難用明確的規則來刻畫。
從廣義上,“自然語言處理”(Natural Language Processing簡稱NLP)包含所有電腦對自然語言進行的操作,從最簡單的通過計數詞出現的頻率來比較不同的寫作風格到最複雜的完全“理解”人所說的話。
基於NLP的技術應用日益廣泛,如手機和手持電腦支援IME聯想提示(predictive text)和手寫辨識、網路搜尋引擎能搜到非結構化文本中的資訊、機器翻譯能把中文文本翻譯成西班牙文等。
通過使用Python程式設計語言和自然語言工具包(NLTK,Natural Language Toolkit)的開源函數庫,本書包括自然語言處理的實際經驗。本書可以自學,也可以作為自然語言處理或電腦語言學課程的教科書,或是人工智慧、文本挖掘、語料庫語言學課程的補充讀物。
本書為什麼使用Python呢?
Python是一種簡易功能強大的變成語言,非常適合處理語言資料。
作為解釋語言,Python便於互動式變成;作為物件導向語言,Python允許資料和方法被方面的封裝和重用。作為動態語言,Python允許屬性等程式運行時才被添加到對象,允許變數自動類型轉換,提高開發效率。Python內建強大的標準庫,包括映像編程、數值處理和網路連接等組件。
章節介紹包括:如何使用很短的Python程式分析感興趣的文本資訊(1-3章)、結構化程式設計章節(第4章)、語言處理的主要內容:標註、分類和資訊提取(5-7章)、探索分析句子、識別句法結構和構建表示句意的方法(8-10章)、最後一章講述如何有效管理語言資料(第11章)。
二. NLTK環境配置
首先安裝Python,可在官網https://www.python.org/下載。
Python對方便使用的一個方式是你可以在互動式解譯器運行你的程式,通過一個簡單的互動式開發壞境(Interactive DeveLopment Environment,簡稱IDLE)的圖形介面訪問Python解譯器。後面配置NLTK就是在IDLE環境下進行。
然後下載NLTK,資料如下:
官網連結:http://www.nltk.org/
安裝步驟:http://www.nltk.org/install.html
:https://pypi.python.org/pypi/nltk
由於我的電腦是windows系統,安裝的步驟如所示:
安裝NLTK3.0
測試NLTK輸入代碼:
>>> import nltk>>> nltk.download()
如所示:
下載NLTK圖書集:使用nltk.download()瀏覽可用的軟體包,下載器上的Collections選項卡顯示軟體包如何被打包分組;選擇book標記所在行,擷取本書的例子和聯絡所需的全部資料。可參考資料。
點擊”Download“後安裝需要一定時間,最後選項book變成”Installed“:
同時如果無法下載,你可以對自己感興趣的選擇雙擊進行下載:
當資料下載到機器後,你可以使用Python解譯器載入其中一些,在Python提示符後輸入”from nltk.book import *”告訴解譯器從NLTK的book載入所有的文本,輸入text1找到相應的文本名字。如所示:
此時你的NLTK配置成功。
三. 自然語言處理常用方法
1.concordance函數
功能:搜尋文本,在text1中輸入函數concordance(),尋找《白鯨記》中的詞語monstrous。
>>> text1.concordance("monstrous")
提示:可以通過快速鍵Alt+P擷取之前輸入的命令,共搜尋11個匹配結果。
2.similar函數
功能:通過函數similar()可以查詢括弧中相關詞在上下文中相似的詞語。詞語索引使我們看到此的上下文,如monstrous出現的上下文,如the_pictures和the_size。
>>> text1.similar("monstrous")
可以發現與monstrous(醜陋的)相似的大部分都是形容詞:curious(好奇的)、impalpable(無形的)、perilous(危險的)、lazy(懶惰的)等。
我的懷疑應該是和上下文語義結構有關,卻沒有“理解”它具體的詞義。如:the Monstrous Pictures、more monstrous stories、a monstrous size。很顯然monstrous充當修飾名詞的形容詞結構——冠詞+monstrous+名詞。
3.common_contexts函數
功能:函數common_contexts允許我們研究兩個或兩個以上的詞共同的上下文,如monstrous和very。
>>> text2.common_contexts(["monstrous","very"])a_pretty is_pretty a_lucky am_glad be_glad
必須用方括弧和圓括弧把這些詞括起來,中間用逗號分隔。個人理解:似乎similar是與之相關的詞語,而common_contexts是相似的結構。
4.generate函數
功能:通過函數generate()產生一些隨機文本自動產生文章。
>>> text3.generate()
注意:第一次運行此命令時,由於要搜集詞序列的統計資訊而執行得比較慢,每次運行它,輸出的文本都會不同。雖然文本是隨機的,但是它重用了源文本中的詞和短語,從而使我們能夠感覺到它的風格和內容。
報錯:”AttributeError: ‘Text‘ object has noattribute ‘generate‘“其原因參照StackFlow:
理想輸出結果如下:
總結:最後希望這篇入門文章對大家有所協助,如果有錯誤或不足之處,親海涵!後面還會深入的講解自然語言處理和Python挖掘相關知識;同時包括NLTK的更廣泛應用及理解。建議大家購買正版書籍閱讀,挺不錯的書籍《Python自然語言處理》Steven Bird, Ewan Klein & Edward Loper。
(By:Eastmount 2015-4-16 晚上8點 http://blog.csdn.net/eastmount/)
[python+nltk] 自然語言處理簡單介紹和NLTK壞境配置及入門知識(一)