NLP系列 | 使用Python輕鬆開始自然語言處理開發

AIRX全新技術專欄--NLP(自然語言處理)開發

以下內容由公衆號:AIRX社區(國內領先的AI、AR、VR技術學習與交流平臺) 整理

什麼是NLP ?自然語言處理(NLP)是關於開發能夠理解人類語言的應用程序和服務。一些NLP的實際例子比如:詞典翻譯、聊天機器人、情緒分析等。

以下是自然語言處理(NLP)的一些成功應用:

  • 搜索引擎:如谷歌,雅虎等。谷歌搜索引擎知道你是一個技術人員,所以它會顯示與你相關的結果。

  • 像Facebook新聞這樣的社交網站。news feed算法使用自然語言處理了解你的興趣,並顯示相關的廣告和帖子。

  • 語音引擎,比如蘋果Siri。

  • 垃圾郵件過濾器,如谷歌垃圾郵件過濾器。這不僅僅是普通的垃圾郵件過濾,現在垃圾郵件過濾器瞭解郵件內容,看看它是不是垃圾郵件。

1、如何使用Python從NLP開始?

自然語言工具包(NLTK)是最流行的自然語言處理(NLP)庫,它是用Python編寫的,並且NLTK也非常容易學習,在本NLP教程中,我們將使用Python NLTK庫。在開始安裝NLTK之前,我假設你已經瞭解一些Python基礎知識。

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

$ pip install nltk

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

Import nltk

 

如果一切順利,這意味着你已經成功安裝了NLTK庫。一旦你安裝了NLTK,你應該通過運行以下代碼來安裝NLTK包:

import nltk
nltk.download()

NLTK downloader將顯示選擇需要安裝哪些包:

 

2、獲取網頁文字內容

在這裏,我們將學習如何在Python中使用NLTK與web識別頁面有關的內容。首先,我們將抓取一個頁面並分析文本,以瞭解該頁面是關於什麼的。urllib模塊將幫助我們抓取網頁:

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

從這個鏈接可以很清楚地看出,頁面是關於SpaceX的,現在讓我們看看我們的代碼是否能夠正確識別頁面的上下文。我們將使用Beautiful Soup,這是一個用於從HTML和XML文件中提取數據的Python庫。我們將使用beautiful soup來清理HTML標記的網頁文本。

from bs4 import BeautifulSoup
soup = BeautifulSoup(html,'html5lib')
text = soup.get_text(strip = True)
print(text)

現在我們已經從抓取的web頁面中獲得了文本,讓我們將文本轉換爲tokens:

tokens = [t for t in text.split()]
print(tokens)

 

3、統計詞頻

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

from nltk.corpus import stopwords
sr= 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)

代碼已經正確地識別出該網頁談論的是SpaceX。你同樣可以識別新聞文章、博客等。現在我們已經成功地邁出了學習NLP的第一步,接下來我們會更深入的瞭解NLP~

關於更多機器學習、人工智能、增強現實資源和技術乾貨,可以關注公衆號:AIRX社區,共同學習,一起進步!

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章