1. 程式人生 > >自然語言處理(NLP)基礎理解

自然語言處理(NLP)基礎理解

人工智慧的目標

-    推理
-    自動學習&排程
-    機器學習
-    自然語言處理
-    計算機視覺
-    機器人
-    通用智慧

人工智慧三大階段

 階段 1——機器學習:智慧系統使用一系列演算法從經驗中進行學習。

 階段 2——機器智慧:機器使用的一系列從經驗中進行學習的高階演算法,例如深度神經網路。人工智慧目前處於此階段。

 階段 3——機器意識:不需要外部資料就能從經驗中自學習。
image.png

人工智慧的型別

ANI(狹義人工智慧):它包含基礎的、角色型任務,比如由 Siri、Alexa 這樣的聊天機器人、個人助手完成的任務。

AGI(通用人工智慧):通用人工智慧包含人類水平的任務,它涉及到機器的持續學習。

ASI(強人工智慧):強人工智慧指代比人類更聰明的機器。

什麼使得系統智慧化?

image.png
自然語言處理 | 知識表示 | 自動推理 | 機器學習

什麼是自然語言處理?

自然語言處理(NLP)是指機器理解並解釋人類paralyzes寫作、說話方式的能力。

NLP 的目標是讓計算機/機器在理解語言上像人類一樣智慧。最終目標是彌補人類交流(自然語言)和計算機理解(機器語言)之間的差距。

image.png

下面是三個不同等級的語言學分析:

  • 句法學:給定文字的哪部分是語法正確的。
  • 語義學:給定文字的含義是什麼?
  • 語用學:文字的目的是什麼?

NLP 處理語言的不同方面,例如:

  • 音韻學:指代語言中發音的系統化組織。
  • 詞態學:研究單詞構成以及相互之間的關係。

NLP 中理解語義分析的方法:

分散式:它利用機器學習和深度學習的大規模統計策略。

框架式:句法不同,但語義相同的句子在資料結構(幀)中被表示為程式化情景。

理論式:這種方法基於的思路是,句子指代的真正的詞結合句子的部分內容可表達全部含義。

互動式(學習):它涉及到語用方法,在互動式學習環境中使用者教計算機一步一步學習語言。

為什麼需要 NLP ?

有了 NLP,有可能完成自動語音、自動文字編寫這樣的任務。

由於大型資料(文字)的存在,我們為什麼不使用計算機的能力,不知疲倦地執行演算法來完成這樣的任務,花費的時間也更少。

這些任務包括 NLP 的其他應用,比如自動摘要(生成給定文字的總結)和機器翻譯。

NLP流程

如果要用語音產生文字,需要完成ASR任務。

NLP 的機制涉及兩個流程:

  • 自然語言理解
  • 自然語言生成

自然語言理解(NLU)

NLU 是要理解給定文字的含義。本內每個單詞的特性與結構需要被理解。在理解結構上,NLU 要理解自然語言中的以下幾個歧義性:

詞法歧義性:單詞有多重含義

句法歧義性:語句有多重解析樹

語義歧義性:句子有多重含義

回指歧義性(Anaphoric Ambiguity):之前提到的短語或單詞在後面句子中有不同的含義。

接下來,通過使用詞彙和語法規則,理解每個單詞的含義。
然而,有些詞有類似的含義(同義詞),有些詞有多重含義(多義詞)。

自然語言生成(NLG)

NLG 是從結構化資料中以可讀地方式自動生成文字的過程。難以處理是自然語言生成的主要問題。

自然語言生成可被分為三個階段:

  1. 文字規劃:完成結構化資料中基礎內容的規劃。

  2. 語句規劃:從結構化資料中組合語句,來表達資訊流。

  3. 實現:產生語法通順的語句來表達文字。

NLP 與文字挖掘(或文字分析)之間的不同

自然語言處理是理解給定文字的含義與結構的流程。

文字挖掘或文字分析是通過模式識別提起文字資料中隱藏的資訊的流程。

自然語言處理被用來理解給定文字資料的含義(語義),而文字挖掘被用來理解給定文字資料的結構(句法)。

image.png

例如,在 "I found my wallet near the bank "一句中,NLP 的任務是理解句尾「bank」一詞指代的是銀行還是河邊。

大資料中的 NLP:The next Big Thing

如今所有資料中的 80% 都可被用到,大資料來自於大公司、企業所儲存的資訊。例如,職員資訊、公司採購、銷售記錄、經濟業務以及公司、社交媒體的歷史記錄等。

儘管人類使用的語言對計算機而言是模糊的、非結構化的,但有了 NLP 的幫助,我們可以解析這些大型的非結構化資料中的模式,從而更好地理解裡面包含的資訊。

NLP 可使用大資料解決商業中的難題,比如零售、醫療、金融領域中的業務。

聊天機器人

聊天機器人或自動智慧代理指代你能通過聊天 app、聊天視窗或語音喚醒 app 進行交流的計算機程式。
也有被用來解決客戶問題的智慧數字化助手,成本低、高效且持續工作。

聊天機器人的重要性

    聊天機器人對理解數字化客服和頻繁諮詢的常規問答領域中的變化至關重要。

    聊天機器人在一些領域中的特定場景中非常有幫助,特別是會被頻繁問到高度可預測的的問題時。

聊天機器人的工作機制

image.png
基於知識:包含資訊庫,根據客戶的問題迴應資訊。

資料儲存:包含與使用者交流的歷史資訊。

NLP 層:它將使用者的問題(任何形式)轉譯為資訊,從而作為合適的迴應。

應用層:指用來與使用者互動的應用介面。

聊天機器人每次與使用者交流時都能進行學習,使用機器學習迴應資訊庫中的資訊。

NLP 中為什麼需要深度學習

它使用基於規則的方法將單詞表示為「one-hot」編碼向量。

傳統的方法注重句法表徵,而非語義表徵。

詞袋:分類模型不能夠分別特定語境。
image.png

深度學習的三項能力

可表達性:這一能力描述了機器如何能近似通用函式。

可訓練性:深度學習系統學習問題的速度與能力。

可泛化性:在未訓練過的資料上,機器做預測的能力。

在深度學習中,當然也要考慮其他的能力,比如可解釋性、模組性、可遷移性、延遲、對抗穩定性、安全等。但以上是主要的幾項能力。

NLP 中深度學習的常見任務

image.png

傳統 NLP 和深度學習 NLP 的區別

image.png

日誌分析與日誌挖掘中的 NLP

什麼是日誌?

不同網路裝置或硬體的時序資訊集合表示日誌。日誌可直接儲存在硬碟文件中,也可作為資訊流傳送到日誌收集器。

日誌提供維持、追蹤硬體表現、引數調整、緊急事件、系統修復、應用和架構優化的過程。

什麼是日誌分析?

日誌分析是從日誌中提取資訊的過程,分析資訊中的句法和語義,解析應用環境,從而比較分析不同源的日誌文件,進行異常檢測、發現關聯性。

什麼是日誌挖掘?

日誌挖掘或日誌知識發現是提取日誌中模式和關聯性的過程,從而挖掘知識,預測日誌中的異常檢測。

日誌分析和日誌挖掘中使用到的技術,下面介紹了完成日誌分析的不同技術:

模式識別:將日誌資訊與模式薄中的資訊進行對比,從而過濾資訊的技術。

標準化:日誌資訊的標準化是將不同的資訊轉換為同樣的格式。當來自不同源的日誌資訊有不同的術語,但含義相同時,需要進行標準化。

分類 & 標籤:不同日誌資訊的分類 & 標籤涉及到對資訊的排序,並用不同的關鍵詞進行標註。

Artificial Ignorance:使用機器學習演算法拋棄無用日誌資訊的技術。它也可被用來檢測系統異常。

日誌分析 & 日誌挖掘中的 NLP

自然語言處理技術被普遍用於日誌分析和日誌挖掘。

詞語切分、詞幹提取(stemming)、詞形還原(lemmatization)、解析等不同技術被用來將日誌資訊轉換成結構化的形式。

一旦日誌以很好的形式組織起來,日誌分析和日誌挖掘就能提取資訊中有用的資訊和知識。

深度自然語言處理

自然語言處理是一個複雜的領域,處於人工智慧、計算語言學和電腦科學的交叉領域。

從 NLP 開始

使用者需要輸入一個包含已寫文字的檔案;接著應該執行以下 NLP 步驟:

image.pngimage.png
語句分割 - 在給定文字中辨識語句邊界,即一個語句的結束和另一個語句的開始。語句通常以標點符號「.」結束。

標記化 - 辨識不同的詞、數字及其他標點符號。

詞幹提取 - 將一個詞還原為詞幹。

詞性標註 - 標出語句中每一個詞的詞性,比如名詞或副詞。

語法分析 - 將給定文字的部分按類劃分。

命名實體識別 - 找出給定文字中的人物、地點、時間等。

指代消解 - 根據一個語句的前句和後句界定該句中給定詞之間的關係。

NLP 的其他關鍵應用領域

除了在大資料、日誌挖掘及分析中的應用,NLP 還有一些其他主要應用領域。

儘管 NLP 不如大資料、機器學習聽起來那麼火,但我們每天都在使用它:

自動摘要 - 在給定輸入文字的情況下,擯棄次要資訊完成文字摘要。

情感分析 - 在給定文字中預測其主題,比如,文字中是否包含判斷、觀點或評論等。

文字分類 - 按照其領域分類不同的期刊、新聞報道。多文件分類也是可能的。文字分類的一個流行示例是垃圾電子郵件檢測。基於寫作風格,可檢測作者姓名。

資訊提取 - 建議電子郵件程式自動新增事件到日曆。
image.png
參考:
https://www.jiqizhixin.com/articles/2017-05-07-3
https://www.xenonstack.com/blog/overview-of-artificial-intelligence-and-role-of-natural-language-processing-in-big-data