NLP入門級指南,這幾點一定要搞懂!

點擊上方關注,All in AI中國

NLP入門級指南,這幾點一定要搞懂!

自然語言處理(NLP)是計算機科學和人工智能的一個領域,涉及自然語言中計算機與人類之間的相互作用。NLP的最終目標是使計算機能夠像我們一樣理解語言。它是虛擬助手、語音識別、情緒分析、自動文本摘要、機器翻譯等內容背後的驅動力。在這篇文章中,你將學習自然語言處理的基礎知識深入瞭解其中的一些技巧,並瞭解NLP如何從深度學習的最新進展中受益。

目錄:

  1. 簡介
  2. 為什麼NLP很困難
  3. 語法和語義分析
  4. NLP技術
  5. 深度學習和NLP
  6. 總結

一 、簡介

自然語言處理(NLP)是計算機科學、語言學和機器學習的交叉學科,它致力於讓計算機理解並生成人類語言。NLP技術的應用包括Alexa和Siri這樣的語音助手,還有機器翻譯和文本過濾等。NLP是從機器學習(尤其是深度學習技術)的最新進展中受益匪淺的領域之一。該領域分為以下三個部分:

  1. 語音識別 - 將口語翻譯成文本。
  2. 自然語言理解 - 計算機理解我們所說內容的能力。
  3. 自然語言生成 - 計算機生成自然語言。

二 、為什麼NLP很困難

人類語言之所以特殊是由於幾個原因。它是專門用於傳達說話者/作者的意思。這是一個複雜的系統,雖然小孩子可以很快學會它。關於人類語言的另一個顯著之處在於它與符號有關。據Chris Manning(斯坦福大學的機器學習教授)表示,它是一個離散的、象徵性的、絕對的信號系統。這意味著你可以通過使用不同的方式傳達相同的含義,例如語音、手勢、符號等。人類大腦的這些編碼是連續的激活模式,通過聲音和視覺的連續信號傳遞這些符號。

由於其複雜性,理解人類語言被認為是一項艱鉅的任務。例如,句子中單詞的排列有無數種不同的可能。此外,單詞可以有多種含義,正確解釋句子需要有具體的語境信息。每種語言或多或少都是獨特和含糊的。看看下面的報紙標題"The Pope's baby steps on gays"。這句話顯然有兩種截然不同的解釋(可以理解為"教皇的孩子踩了同性戀(人群)",也可以理解為"教皇在同性戀的問題上裹足不前"),這是NLP挑戰的一個很好的例子。

請注意,通過計算機對語言的完美理解將導致AI可以處理互聯網上可用的所有信息,然而這反過來可能會導致人為干預的智能出現。

三 語法和語義分析

語法分析語法和語義是理解自然語言的兩種主要技術。語言是一組有效的句子,但是什麼使句子變得有效呢?實際上,你可以將有效性分為兩類:語法和語義。術語上,語法是指文本的語法結構,語義是指由它傳達的含義。但是,語法上正確的句子不必在語義上正確。只需看看下面的例子。句子"cows flow supremely"(奶牛的流動是至高無上的)在語法上是有效的(主語 - 動詞 - 副詞),但沒有任何意義。

語法分析:

NLP入門級指南,這幾點一定要搞懂!

(https://pixabay.com/de/grammatik-lupe-lupen-buch-389907/)

語法分析,也稱為語法分析或解析,是分析符合正式語法規則的自然語言的過程。語法規則適用於單詞組,而不是單個單詞。語法分析基本上為文本分配語義結構。

例如,句子包括主語和謂語,其中主語是名詞短語而謂詞是動詞短語。看看下面這句話:"the dog(名詞短語)went away(動詞短語)"。請注意,我們可以將每個名詞短語與動詞短語結合起來。就像我已經提到過的那樣,儘管它們在語法上是正確的,但是形成的句子並沒有真正有意義。

語義分析:

對於我們人類而言,我們理解某人所說的話的方式是一種無意識的過程,它依賴於我們的直覺和我們對語言本身的認識。因此,我們理解語言的方式很大程度上取決於語義和語境。由於計算機不能依賴這些技術,因此需要採用不同的方法。"語義"這個詞是一個語言術語,意思是與意義或邏輯相關的東西。

NLP入門級指南,這幾點一定要搞懂!

(https://pixabay.com/de/sinn-download-begriff-blickwinkel-2470745/)

因此,語義分析是理解單詞、符號和句子結構的含義和解釋的過程。這使計算機能夠以人類的方式部分理解自然語言,包括意義和語境。我之所以這麼說,是因為語義分析是NLP中最棘手的部分之一,而且至今還沒有很好的解決方案。例如,語音識別已經變得非常好並且幾乎完美無缺,但我們對自然語言理解(語義)的能力還不足。你的手機基本上了解你所說的內容但通常無法用它做任何事情,因為它無法理解背後的意義。另外,請注意,有些技術只會讓你認為他們理解了文本的含義。一種基於關鍵詞或統計學甚至純粹機器學習的方法可以使用匹配或頻率技術來獲取關於文本"是關於什麼的"的線索。這些方法是有條件的,雖然看起來它們理解到了真正的潛在含義。

四 理解文本的技巧

在下面,我們將討論許多用於自然語言處理的最流行的技術。請注意,其中一些是緊密交織在一起的,只是作為用來解決更大的問題的子任務而出現。

解析:

什麼是解析?首先,讓我們看一下字典:

解析——"將句子分解為其組成部分,並描述它們的語法角色。"

解釋的很好,但它可以更全面一些。解析是指計算機對句子的正式分析,從而形成一個解析樹,以視覺形式顯示彼此的語法關係,可用於進一步處理和理解。

在下面你可以看到句子"小偷搶劫公寓"的解析樹,以及由它傳達的三種不同信息類型的描述。

NLP入門級指南,這幾點一定要搞懂!

如果我們查看單個單詞正上方的字母,我們可以看到它們顯示每個單詞的詞性(名詞,動詞和限定詞)。如果我們再往上看一層,我們會看到一些單詞被分成短語的層次結構。例如,"小偷"是一個名詞短語,"搶劫公寓"是一個動詞短語,結合在一起它們形成了一個句子,這標誌著一個更高的水平。

但名詞或動詞短語的實際含義是什麼?讓我們用"名詞短語"的例子解釋一下。這些是包含名詞的一個或多個單詞的短語,可能包含描述性詞語,動詞或副詞。我們的想法是用與它們相關的單詞對名詞進行分組。

解析樹還為我們提供了關於單詞語法關係的信息,這些語法關係是由它們表示的結構決定的。例如,我們可以在結構中看到"小偷"是"搶劫"的主語。

結構意味著我們有動詞("robbed"),它上方標有"V",再上面標有"VP",與主語"小偷"的"S"相關聯,"V"旁邊有一個"NP"。這就像主語 - 動詞關係的模板,還有許多其他類型的關係。

詞幹:

詞幹提取是一種來自形態學和信息檢索的技術,其在NLP中主要用於預處理和提高效率。但是,讓我們首先看一下它實際上意味著什麼:

詞幹——"起源於或由其引起。"

基本上,詞幹是將單詞減少到單詞詞幹的過程,但實際上它的真正含義是什麼?"詞幹"是刪除所有詞綴後剩下的詞的一部分。

你可能會問自己,為什麼我們甚至需要詞幹?詞幹是必需的,因為你會遇到實際上具有相同詞幹和相同含義的不同語句。我們來看看兩個句子的例子:

#我正在開車(I was taking a ride in the car)

#我正在開車(I was riding in the car)

這兩個句子意思完全相同,這個詞的用法也是相同的。

現在,想象一下詞彙表中的所有英語單詞,以及它們末尾的所有不同的註釋。要存儲它們,所有這些都需要一個包含許多實際意義相同的單詞的龐大數據庫。這可以僅通過關注單詞的詞幹來解決。這裡(推薦)的算法是1979年的"Porter Stemming Algorithm",其效果非常好。

文本分割:

NLP中的文本分割是將文本轉換為有意義的單元的過程,這些單元可以是單詞,句子,不同主題,潛在的意圖等等。大多數情況下,文本被分段為其組成單詞,這可能是一項艱鉅的任務,具體取決於語言難易程度。例如,在英語中一般用空格分隔單詞,除了像"ice box"這樣的單詞,它是一個詞但由空格分隔。但是人們有時也把它寫成"ice-box"。

命名實體識別

命名實體識別(NER)集中於確定文本中的哪些項目("命名實體")可以被定位並分類為預定義的類別。這些類別的範圍可以是人員名稱、組織、地點、貨幣價值和百分比。

只需看看以下示例:

在NER之前:"Martin在2016年購買了300股SAP。"

在NER之後:"[Martin] Person在[2016] Time購買了300股[SAP]組織。"

關係提取

關係提取採用"命名實體識別"的命名實體,並嘗試識別它們之間的語義關係。常見的用例有找出誰與誰結婚,一個人為特定公司工作等等。此問題也可以轉換為分類問題,你可以在其中為每種關係類型訓練機器學習模型。

情緒分析:

通過情緒分析,我們想要確定態度,例如,演講家或作者關於一個文章,互動或事件的態度(情緒)。因此,需要理解文本以預測潛在意圖是一種自然語言處理問題。情緒主要分為積極,消極和中性情緒。通過使用情緒分析,我們希望根據他撰寫的關於產品的評論來預測客戶對產品的看法和態度。因此,情緒分析廣泛應用於評論,調查,文章等等。

如果你對使用Python中的某些技術感興趣,可以查看我創建的Python的自然語言工具包(NLTK)的Jupyter筆記本。你還可以查看我的博客文章,瞭解如何使用Keras構建神經網絡,我將訓練神經網絡進行情感分析。(https://towardsdatascience.com/how-to-build-a-neural-network-with-keras-e8faa33d0ae4)

五 深度學習和NLP

現在我們對自然語言處理有了更多瞭解,但問題是,我們如何在NLP中使用深度學習。

深度學習和自然語言的核心是"詞義",一個詞,特別是它的意義被表示為實數的向量。因此,使用代表單詞的這些向量,我們將單詞放在高維空間中。有趣的是,這些由向量表示的單詞將充當語義空間。這僅僅意味著具有相似含義的詞傾向於在高維向量空間中聚集在一起。你可以在下面看到單詞含義的直觀表示:

NLP入門級指南,這幾點一定要搞懂!

你可以通過使用主成分分析(PCA)或使用T-SNE進行降維來找出一組聚類詞的含義,但這有時會產生誤導,因為它們過於簡單並且具備大量信息。因此,這是一個很好的開始方式(如數據科學中的邏輯或線性迴歸)。

我們還可以將單詞的一部分視為代表其含義的向量。想象一下"不受歡迎(undesirability)"這個詞。使用"形態學方法",它涉及一個單詞所具有的不同部分,我們會認為它是由以下語素(單詞部分)構成的:"Un + desire + able + ity"。每個語素都有自己的向量。這允許我們構建一個神經網絡,它可以構成一個更大的單位,而更大的單位又由所有這些語素組成。

深度學習還可以通過創建可以識別句子結構的語法分析器來理解句子的結構。谷歌使用這樣的解析技術在他們的"McParseface"和"SyntaxNet"中。

瞭解句子的結構後,我們可以開始嘗試理解句子的意義。就像我們已經討論過的那樣,我們從單詞作為向量的含義開始,但我們也可以用整個短語和句子來做,其中它們的含義也表示為向量。如果我們想知道句子之間的關係,我們可以考慮訓練一個神經網絡。

深度學習也擅長情緒分析。看看下面的電影評論:這部電影並不關心技巧,也不關心其他任何形式的智慧幽默的傳統方法,這會會令人陷入思考。這是一個積極的評論的陷阱,因為技巧或任何其他一種智慧幽默聽起來像一個積極的評論,但神經網絡會認識到它的真正潛在含義。其他應用程序像是Chatbots、機器翻譯、Siri、谷歌收件箱的建議回覆等。

通過迴歸神經網絡的興起,機器翻譯也取得了巨大的進步,我也寫了一篇博文。(https://towardsdatascience.com/recurrent-neural-networks-and-lstm-4b601dd822a5)

在由深度學習算法完成的機器翻譯中,語言的翻譯是從句子開始,然後生成表示它的向量。然後它開始用另一種語言生成包含相同信息的單詞。

總而言之,NLP與深度學習相結合的是所有關於表示單詞、短語等的向量,以及在某種程度上代表它們的含義。

六 總結

在這篇文章中,你已經學到了很多關於自然語言處理的知識。現在你知道為什麼NLP是如此困難的事情。我們已經討論了語法和語義分析之間的區別,並瞭解了一些使我們能夠分析和生成語言的NLP技術。總而言之,我們討論的技術包括解析、詞幹分析、文本分割、命名實體識別、關係提取和情緒分析。最重要的是,我們通過將單詞,短語,句子等表示為數字向量的概念,討論了深度學習如何加速NLP。

參考

·https://machinelearningmastery.com/natural-language-processing/

·https://www.youtube.com/watch V = 8S3qHHUKqYk

·https://en.wikipedia.org/wiki/Natural_language_processing

·https://www.youtube.com/watch V = TbrlRei_0h8

·https://www.youtube.com/watch V = OQQ-W_63UgQ&名單= PL3FW7Lu3i5Jsnh1rnUwq_TcylNr7EkRe6?

·https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-864-advanced-natural-language-processing-fall-2005/lecture-notes/lec2.pdf

NLP入門級指南,這幾點一定要搞懂!


分享到:


相關文章: