當前位置:
首頁 > 新聞 > 自然語言處理背後的數據科學

自然語言處理背後的數據科學

本文為 AI 研習社編譯的技術博客,原標題 :

The Data Science Behind Natural Language Processing

作者 | John Thuma

翻譯 | luyao777

校對 | Pita 審核 | 醬番梨 整理 | 立魚王

原文鏈接:

https://medium.com/dataseries/the-data-science-behind-natural-language-processing-69d6df06a1ff

人類交流是能感知到的最迷人的特性之一。作為人類的一員,我知道人類之間如何互動是極其複雜的。我們經常發送和接收錯誤的信息,或者我們的信息會被他人誤解。每天我們都理所當然地認為自己有能力向同事和家人傳達意義。我們用各種各樣的方式交流,包括交談和書寫符號。人與人之間的交流可以像隔著房間看一眼那麼簡單。斯坦福大學機器學習教授克里斯?曼寧將溝通描述為「一個離散的、符號的、分類的信號系統」。這是什麼意思呢?我認為是我們的感官,如視覺、觸覺、聽覺,甚至是嗅覺,使我們能夠交流。這讓我想到了這篇博客的主題:當我們把計算納入考慮範圍時會發生什麼?什麼是自然語言處理?它是如何工作的?

自然語言處理背後的數據科學

自然語言處理 (NLP) 是計算機科學和人工智慧領域的一門學科。NLP 是人與機器之間的溝通, 它既能解釋我們的意思, 也能構建有效的反應。這個領域已經從上世紀50年代就存在了, 你可能聽說過的艾倫圖靈開發的"圖靈測試" 。圖靈測試衡量計算機對人類書面問題的反饋。如果一個獨立的人不能分辨一個人和一台機器的區別, 那麼計算系統就會被評為智能。從上世紀50年代以來, 我們取得了長足的進步, 數據科學和語言學領域也取得了很大進展。本文的其餘部分詳細介紹了這些演算法在自然語言處理領域的一些基本功能,同時將包含一些使用 Python 的代碼示例。

標記化

為了開始自然語言處理, 我們將從一些非常簡單的文本解析開始。標記化是提取文本流的一個過程, 如一個句子, 並將其分解為其最基本的單詞。例如, 取以下句子:「he red fox jumps over the moon .」每個單詞都代表一個標記, 其中共有七個。

使用Python標記句子:

myText = 『The red fox jumps over the moon.』

myLowerText = myText.lower

myTextList = myLowerText.split

print(myTextList)

OUTPUT:

[『the』, 『red』, 『fox』, 『jumps』, 『over』, 『the』, 『moon』]

詞性歸類

詞性歸類用於確定句法功能。在英語中, 詞性的主要部分是: 形容詞、代詞、名詞、動詞、副詞、前置詞、連詞和感嘆詞。這是用來推斷基於它的單詞的意圖。例如, PERMIT 一詞可以是一個名詞和一個動詞。動詞用法:「I permit you to go to the dance.」 名詞用法:「Did you get the permit from the county.」

使用Python分析部分語音 :(使用 NLTK 庫)

您可能需要安裝 NLTK, 它是用於自然語言處理的 Python 庫。關於 NLTK 的說明: https://www.geeksforgeeks.org/part-speech-tagging-stop-words-using-nltk-python/

import nltk

myText = nltk.word_tokenize(『the red fox jumps over the moon.』)

print(『Parts of Speech: 『, nltk.pos_tag(myText))

OUTPUT:

Parts of Speech: [(『the』, 『DT』), (『red』, 『JJ』), (『fox』, 『NN』), (『jumps』, 『NNS』), (『over』, 『IN』), (『the』, 『DT』), (『moon』, 『NN』), (『.』, 『.』)]

因此, 您可以看到 NLTK 如何將句子分解為各個標記並解釋語音的某些部分, 例如 ("fox"、"NN"):

NN 名詞, 單數 "fox"

停止詞刪除

許多句子和段落中包含的單詞幾乎沒有意義或價值。這些詞包括 "a"、"and"、"an"和"the"。移除停止詞是一個從句子或單詞流中刪除這些單詞的過程。

使用 Python 和 NLTK 進行停止詞刪除: (點擊原文閱讀有關 NLTK 的說明)

from nltk.corpus import stopwordsfrom nltk.tokenize import word_tokenize

example_sent = 「a red fox is an animal that is able to jump over the moon.」 stop_words = set(stopwords.words(『english』)) word_tokens = word_tokenize(example_sent) filtered_sentence = [w for w in word_tokens if not w in stop_words] filtered_sentence = for w in word_tokens: if w not in stop_words: filtered_sentence.append(w) print(filtered_sentence)

OUTPUT:[『red』, 『fox』, 『animal』, 『able』, 『jump』, 『moon』, 『.』]

詞幹提取

詞幹提取是減少單詞雜訊的過程,也稱為詞典歸一化。它減少了詞形變化。例如, "釣魚" 一詞有一個詞幹 "魚"。詞幹提取是用來把一個詞簡化為它的基本含義。另一個很好的例子是 "喜歡" 這個詞, 它是許多詞的詞幹, 比如: "likes"、"liked"、"likely"。搜索引擎使用詞幹分析就是這個原因。在許多情況下, 搜索其中一個詞返回在集合中包含另一個單詞的文檔可能會很有用。

要使用 Python 和 NLTK 庫執行詞幹提取, 請執行以下操作:

from nltk.stem import PorterStemmerfrom nltk.tokenize import word_tokenize

ps = PorterStemmer

for w in words:print(w, 」 : 「, ps.stem(w))

OUTPUT:

(『likes』, 『 : 『, u』like』)

(『likely』, 『 : 『, u』like』)

(『likes』, 『 : 『, u』like』)

(『liking』, 『 : 『, u』like』)

words = [「likes」, 「likely」, 「likes」, 「liking」]

詞形還原

詞幹提取和詞形還原是非常相似的, 因為它們能讓你找到詞根。這稱為單詞規範化, 兩者都可以生成相同的輸出結果。然而, 它們的工作方式卻大不相同。詞幹提取試圖將單詞切分而詞形還原給你提供觀察單詞是名詞、動詞還是其他詞性。讓我們以單詞 "saw"為例。詞幹提取會返回 "saw", 詞形還原可以返回"see" 或 "saw"。詞形還原通常會返回一個可讀的詞, 而詞幹提取可能不會。有關差異的示例, 請參見下文。雷鋒網雷鋒網雷鋒網

讓我們看一個 Python 示例, 它將詞幹提取與詞形還原進行了比較:

from nltk.stem import PorterStemmer# from nltk.tokenize import word_tokenizefrom nltk.stem import WordNetLemmatizer

lemmatizer = WordNetLemmatizer

ps = PorterStemmer

words = [「corpora」, 「constructing」, 「better」, 「done」, 「worst」, 「pony」]

for w in words:print(w, 」 STEMMING : 「, ps.stem(w), 」 LEMMATIZATION 「, lemmatizer.lemmatize(w, pos=『v』))

OUTPUT:

corpora STEMMING : corpora LEMMATIZATION corpora

constructing STEMMING : construct LEMMATIZATION constructing

better STEMMING : better LEMMATIZATION good

done STEMMING : done LEMMATIZATION done

worst STEMMING : worst LEMMATIZATION bad

pony STEMMING : poni LEMMATIZATION pony

總結

語言學是對語言、形態學、句法、語音和語義學的研究。包括數據科學和計算在內的這一領域在過去60年里已經進行了爆炸式的發展。我們剛剛在 NLP 中探索了一些非常簡單的文本分析功能。Google、Bing 和其他搜索引擎利用這項技術幫助您在萬維網上查找信息。想想看, 讓 Alexa 播放你最喜歡的歌曲或者 Siri 是如何幫助你指路。這都是因為 NLP。計算中的自然語言不是噱頭或玩具。NLP是我們生活中無縫計算的未來。

Arcadia Data剛剛發布了5.0 版, 其中包括我們稱之為 Search Based BI的自然語言查詢功能。它使用了之前描述的一些數據科學和文本分析。查看我們關於Search Based BI工具的視頻可了解更多信息: SEARCH-BASED BI

原文轉載:https://www.arcadiadata.com/blog/the-data-science-behind-natural-language-processing/

想要繼續查看該篇文章相關鏈接和參考文獻?

點擊自然語言處理背後的數據科學】即可訪問:

https://ai.yanxishe.com/page/TextTranslation/1641

AI研習社今日推薦:AI入門、大數據、機器學習免費教程

35本世界頂級原本教程限時開放,這類書單由知名數據科學網站 KDnuggets 的副主編,同時也是資深的數據科學家、深度學習技術愛好者的Matthew Mayo推薦,他在機器學習和數據科學領域具有豐富的科研和從業經驗。

點擊鏈接即可獲取:https://ai.yanxishe.com/page/resourceDetail/417

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 雷鋒網 的精彩文章:

TensorFlow 2.0 挑戰賽來啦,15 萬美元獎金等你來拿
對話推想科技席渭齡:零門檻、可視化的AI科研平台,對醫生的科研工作意味著什麼?

TAG:雷鋒網 |