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社區,共同學習,一起進步!