Kate Li (Taiwan)的部落格

首頁

自然語言處理如何快速理解?有這篇文章就夠了!

作者 zindani 時間 2020-03-31
all

原文來源:codeburst.io

作者:Pramod Chandrayan

「雷克世界」編譯:嗯~阿童木呀、我是卡布達

現如今,在更多情况下,我們是以比特和位元組為生,而不是依靠交換情感。我們使用一種稱之為電腦的超級智慧機器在互聯網上進行交易和溝通。囙此,我們覺得有必要讓機器明白我們在說話時是如何對其進行理解的,並且試圖用人工智慧,一種稱之為NLP——自然語言處理科技為它們提供語言。作為一種研究結果,聊天機器人正在成為一種可靠的聊天工具,使用這種非人為依賴的智慧工具與人類進行交流。

我强烈的感受到:

直到我們的機器學會瞭解行為和情緒,數據科學家和工程師的工作才完成了一半。與深度學習(ML學科領域)融合的NLP將對這種電腦語言的使用起到關鍵作用。

什麼是NLP

這是一種人工智慧方法,給定機器一些人類語言從而使得它們能够與人類進行溝通交流。它涉及使用NLP科技對書面語言進行智慧分析,以獲取對一組文字數據的見解,如:

1.情緒分析

2.資訊選取和檢索

3.智能搜索等

它是人工智慧和計算語言學的交匯點,能够處理機器和人類自然語言之間的互動,即電腦需要對其進行分析、理解、改變或生成自然語言。NLP幫助電腦機器以各種形式使用自然人類語言進行交流,包括但不限於語音、印刷、寫作和簽名。

NLP機器學習和深度學習:它們是如何連接的

NLP與機器學習和深度學習密切相關,所有這些都是人工智慧領域的分支,如下圖所示:它是一個致力於使機器智能化的計算機科學領域。深度學習是一種流行的機器學習科技之一,如回歸,K-means等。

機器學習的類型很多,像無監督機器學習這樣的經常用於NLP科技中,如LDA(潜在狄利克雷分佈,一種主題模型算灋)。

為了能够執行任何一個NLP,我們需要深入理解人類使如何處理語言的情感和分析方面。還有各種各樣像社交媒體這樣的語言資料來源,人們直接或間接地分享他們感受到的內容,而這必須通過使用NLP的機器進行智慧分析。NLP機器需要建立一個人類推理系統,借助ML科技,它們可以自動執行NLP過程並對其進行擴展。

簡而言之,“深度學習與自然語言處理”是相互聯系、相互依存的,以構建一個能够像人類一樣思考、說話和行動的智慧電腦。

Meltwater Group的NLP專家John Rehling在《自然語言處理是如何幫助揭示社交媒體情緒》一文中說,

“通過分析語言的含義,NLP系統扮演著非常重要的角色,如糾正語法,將語音轉換為文字,以及在多語言之間自動翻譯。”

NLP如何工作

理解NLP的工作原理是非常重要的,因為這樣的話,我們就可以將NLP作為一個整體來理解。NLP一般有兩個主要組成部分:

1.NLU:自然語言理解

2.NLG:自然語言生成

讓我們深入理解NLU

自然語言理解:它涉及的是一種方法論,試圖瞭解如何對饋送給電腦的自然語言賦予一定的相關意義。

在開始時,電腦獲得自然語言的輸入(自然語言可以是任何語言,它們通過使用和重複在人類中自然進化,而不是有意識的計畫或預謀,自然語言可以採用不同的形式,例如語音或簽名)。

電腦之後將它們轉換成人工語言,如語音辨識和/或語音轉換文字。在這裡我們把資料轉換成一個文字形式,NLU過程來理解其中的含義。

HMM:隱瑪律可夫模型(NLU示例)

來源:wikipedia

它是一種統計語音辨識模型,它可以在預先構建的數學科技的幫助下,將你的語音轉換成文字,並試圖推斷出你所說的語言。

它試圖理解你所說的,通過將語音數據分解成一小段特定的時間段,大多數情况下時間是20-20 ms。這些數据集將進一步與預饋語音進行比較,從而進一步解讀你在每個語音組織中所說的內容。這裡的目的是找到音素(一個最小的語音組織)。然後,機器對一系列這樣的音素進行觀察,並統計了最可能說出的單詞和句子。

不僅如此,NLU會深刻理解每個單詞,試圖理解它是一個名詞還是動詞,什麼是時態(過去或未來)等。這個過程被定義為POS:詞性標注部分(Part Of Speech Tagging)。NLP具有內寘的詞典和一套與語法預編碼相關的協定,這些協定被預編碼到它們的系統中,並在處理自然語言數据集時使用它,從而在NLP系統處理人類語音時,編譯所說的內容。

NLP系統也有一個詞典(詞彙表)和一套編碼到系統中的語法規則。現代NLP算灋使用統計機器,學習將這些規則應用於自然語言,並推斷所說話語背後最可能的含義。在考慮諸如具有多個含義的詞語(多義詞)或具有相似含義的詞語(同義詞)時,存在一些挑戰,但軟件開發者在他們的NLU系統中建立了自己的規則,可以通過適當的訓練和學習來處理這類問題。

自然語言生成:

與第一階段(NLU做了大量的努力以理解人類的話語)相比,NLG可以很容易的進行翻譯工作,即將電腦的人工語言翻譯為有意義的文字,並可以通過文字轉語音(tex-to-speech)科技將其轉化為可聽語音。文字轉語音((tex-to-speech))科技通過韻律模型(prosody model)來分析文字,從而確定語言的斷句、長短和音調。然後,利用語音資料庫,將記錄的所有音素彙集在一起,形成一個連貫的語音串。

簡而言之,NLP採用NLU和NLG來處理人類自然語言,尤其是處理語音辨識領域的人類自然語言,並試圖將傳遞字串或可聽語言作為輸出,來理解、編譯並推斷所說的內容。

NLP在現代脉络中的應用:

在這個處於數位革命的電腦時代中,大部分任務需要由人類利用連結物聯網的機器來完成。NLP在為媒體、出版、廣告、醫療、銀行和保險等行業領域建立强大的軟體工具方面,發揮了重要作用,從而幫助他們高效快捷地運作。

NLP的一些現代用法:

1.聊天機器人

這是一個被稱為機器人的成熟軟件,它可以處理任何場景的人物對話。api.ai、微軟語音理解智慧服務(LUIS)等一些熱門的NLP和機器學習平臺,可用於研發你的商業聊天機器人。

2.垃圾郵件過濾

來源:yhat

你們中的大多數人一定對垃圾郵件並不陌生。Google使用基於NLP的科技來保障你的收件箱清潔、無垃圾郵件。貝葉斯垃圾郵件過濾(Bayesian spam filtering)是一種備受矚目的科技,它是一種統計技術,基於此,電子郵件中詞語的稽核通過率根據其在垃圾和非垃圾郵件語料庫中的典型事例來確定。

3.機器翻譯

NLP被越來越多的應用於機器翻譯程式當中,這使得一種語言被自動翻譯成另一種語言,穀歌是一個將你的文字翻譯為所需語言的先驅者。

機器翻譯科技所面臨的挑戰不在於翻譯單詞,而在於保留句子的含義,這是一個複雜的科技問題,也是NLP的覈心。

4.命名實體選取(Named entity extraction)

它用於從給定的項目集合中分離出具有相似性質和内容的項目。例如名字、姓氏、年齡、地理位置、地址、電話號碼、電子郵寄地址和公司名稱等等。命名實體選取(亦稱命名實體識別)使挖掘數據變得更加容易。

5.自動匯總

自然語言處理可用於從大段文字中選取可讀摘要。例如,我們可以自動總結出一份長篇學術文章的簡短摘要。

接下來我們將深入介紹一些NLP的科技細節。

當自然界與人工相逢的時候,機器就像是一個真正具有生命力的人類一樣進入了生活中。

NLP科技術語

NLP術語

•語音體系——關於系統性地組織語音的研究。

•形態學——這是一個從基本意義組織中進行單詞構建的研究。

•語素——語言中意義的基本組織。

•語法——它是指單詞經過組合排列構成句子,它還涉及在句子和短語中確定單詞結構的作用。

•語義——它涉及的是單詞的含義,以及該如何將單詞組合成有意義的短語和句子。

•語用學——它涉及的是在不同情况下使用和理解句子以及對句子的解釋是如何受到影響的。

•話語——它指的是前面的句子如何影響對於下一句的解釋的。

•常識性知識——它涉及的是對於世界的一般性認識。

自然語言處理庫(對於開發者而言)

NLP庫:

有許多通用的協力廠商開源庫,開發人員可以使用它們來構建基於NLP的Projects Viz .。

•自然語言工具包(NLTK)

•Apache OpenNLP

•斯坦福大學NLP套件

•Gate NLP庫

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

NLP實施所涉及的步驟:

來源:mediterra-soft

它涵蓋了5個主要步驟:

•詞法分析——它對給定單詞的結構進行識別和分析,其中整個文字數據塊在詞法分析中被分解成段落、句子和詞彙。

•解析(句法分析)——它涉及以一種顯示單詞之間的關係的管道對分析句子中的單詞進行語法和單詞排列分析,在這個階段,任何不符合語法正確的句子都被拒絕,例如,“building lives in sita”將不會被語法分析器所接受

•語義分析——對給定的文字進行分析以從中選取意義。它通過對任務域中的語法結構和目標進行分析來完成。語義分析器拒絕不相關的句子,如“hot banana”。

•話語綜合——正如我們所知,每個句子都與前一句話相互聯系,基於倒數第二句的意義而言,任何句子都變得有意義。同樣,它也使得後一句話變得有意義。

•語用分析——在此期間,常識性知識被重新定義了,解釋了它們的真實意義到底是什麼,它涉及到那些需要常識性知識的語言方面。

用圖片來解讀NLP(點擊圖片放大):

NLP應用程序:

1.光學字元識別

2.語音辨識

3.機器翻譯

4.自然語言生成

5.情緒分析

6.語義蒐索

7.自然語言程式設計:

8.情感計算

9.開發聊天機器人

其他一些你必讀的NLP參考文獻:

https://www.udemy.com/nlp-beginners/

https://dzone.com/articles/nlp-tutorial-using-python-nltk-simple-examples

https://www.analyticsvidhya.com/blog/2017/01/ultimate-guide-to-understand-implement-natural-language-processing-codes-in-python/

https://github.com/bonzanini/nlp-tutorial

https://codeburst.io/a-guide-to-nlp-a-confluence-of-ai-and-linguistics-2786c56c0749