使用Python自然語言處理入門教程

什麼是NLP?

自然語言處理(NLP)是關於開發能夠理解人類語言的應用程序和服務。一些NLP的實際例子是語音識別,例如:谷歌語音搜索,瞭解內容是什麼或情感分析等。

NLP的好處

衆所周知,博客,社交網站和網頁每天都會產生數百萬GB的千兆字節。

有許多公司收集所有這些數據以瞭解用戶及其情感,並將這些報告提供給公司以調整他們的計劃。

假設一個人喜歡旅行並且經常搜索度假目的地,用戶進行的搜索用於通過在線酒店和航班預訂應用向他提供相關廣告。

搜索引擎不是自然語言處理(NLP)的唯一實現,並且還有很多很棒的實現。

NLP實現

這些是自然語言處理(NLP)的一些成功實現:

搜索引擎,如谷歌,雅虎等。谷歌搜索引擎瞭解你是一個技術人員,所以它顯示了與你相關的結果。社交網站像Facebook新聞源一樣提供。新聞Feed算法使用自然語言處理瞭解您的興趣,並向您展示與其他帖子相關的廣告和帖子。Apple Siri等語音引擎。垃圾郵件過濾器,現在垃圾郵件過濾器瞭解電子郵件內容中的內容,看看它是否是垃圾郵件。

如何使用Python開始使用NLP?

自然語言工具包(NLTK)是最受歡迎的自然語言處理庫(NLP),它是用Python編寫的,背後有一個很大的社區。

NLTK也很容易學習,它是您將使用的最簡單的自然語言處理(NLP)庫。

在這個NLP教程中,我們將使用Python NLTK庫。

在我開始安裝NLTK之前,我假設您已經瞭解了一些Python基礎知識。

安裝nltk

如果您使用的是Windows或Linux或Mac,則可以使用pip安裝NLTK :

$ pip install nltk

在撰寫本文時,您可以在Python 2.7,3.4和3.5上使用NLTK。

要檢查NLTK是否已正確安裝,您可以打開python終端並鍵入以下內容:

導入nltk

如果一切順利,這意味着您已成功安裝NLTK庫。

一旦安裝了NLTK,就應該通過運行以下Python代碼來安裝NLTK軟件包:

import nltknltk.download()

這將顯示NLTK下載程序,以選擇需要安裝的軟件包。

使用Python自然語言處理入門教程

您可以安裝所有包,因爲它們的尺寸很小。

我們將學習如何識別網頁在Python中使用NLTK的內容

首先,我們將抓取一個網頁並分析文本以查看該頁面的內容。

urllib模塊將幫助我們抓取網頁

import urllib.requestresponse = urllib.request.urlopen('https://en.wikipedia.org/wiki/SpaceX')html = response.read()print(html)

從鏈接可以清楚地看出,該頁面是關於SpaceX的,現在讓我們看看我們的代碼是否能夠正確識別頁面的上下文。

我們將使用Beautiful Soup這是一個Python庫,用於從HTML和XML文件中提取數據。

from bs4 import BeautifulSoupsoup = BeautifulSoup(html,'html5lib')text = soup.get_text(strip = True)print(text)
使用Python自然語言處理入門教程

你會得到一個像這樣的輸出

現在我們從已抓取的網頁上獲得了乾淨的文字,讓我們將文本轉換爲tokens。

tokens = [t for t in text.split()]print(tokens)
計算詞頻

nltk提供了一個函數FreqDist(),它將爲我們完成這項工作。此外,我們將從我們的網頁中刪除stop words(a,at,the,for等),因爲我們不需要它們來阻礙我們的詞頻數。我們將在網頁中繪製最常出現的單詞的圖表,以便清楚地瞭解網頁的上下文

from nltk.corpus import stopwordssr= stopwords.words('english')clean_tokens = tokens[:]for token in tokens: if token in stopwords.words('english'): clean_tokens.remove(token)freq = nltk.FreqDist(clean_tokens)for key,val in freq.items(): print(str(key) + ':' + str(val))freq.plot(20, cumulative=False)
使用Python自然語言處理入門教程

使用Python自然語言處理入門教程

20個最常用單詞的圖表

代碼已正確識別網頁是否與SpaceX有關。

這是如此簡單有趣!您可以類似地識別新聞文章,博客等。

查看原文 >>
相關文章