- 自然語言工具包教程
- 自然語言工具包 - 首頁
- 自然語言工具包 - 簡介
- 自然語言工具包 - 入門指南
- 自然語言工具包 - 文字分詞
- 訓練分詞器和過濾停用詞
- 在Wordnet中查詢單詞
- 詞幹提取和詞形還原
- 自然語言工具包 - 單詞替換
- 同義詞和反義詞替換
- 語料庫讀取器和自定義語料庫
- 詞性標註基礎
- 自然語言工具包 - 單詞標註器
- 自然語言工具包 - 組合標註器
- 自然語言工具包 - 更多NLTK標註器
- 自然語言工具包 - 語法分析
- 組塊和資訊提取
- 自然語言工具包 - 變換組塊
- 自然語言工具包 - 變換樹結構
- 自然語言工具包 - 文字分類
- 自然語言工具包資源
- 自然語言工具包 - 快速指南
- 自然語言工具包 - 有用資源
- 自然語言工具包 - 討論
自然語言工具包 - 簡介
什麼是自然語言處理 (NLP)?
人類藉助語言進行交流,包括說、讀、寫。換句話說,我們人類可以用自然語言思考、計劃、做出決定。那麼,在人工智慧、機器學習和深度學習時代,人類能否用自然語言與計算機/機器進行交流呢?開發NLP應用程式對我們來說是一個巨大的挑戰,因為計算機需要結構化資料,而另一方面,人類語言是非結構化的,往往具有模糊性。
自然語言處理是計算機科學的一個子領域,更具體地說,是人工智慧的一個子領域,它使計算機/機器能夠理解、處理和操縱人類語言。簡單來說,NLP是機器分析、理解和從人類自然語言(如漢語、英語、法語、荷蘭語等)中提取意義的一種方法。
它是如何工作的?
在深入研究NLP的工作原理之前,我們必須瞭解人類如何使用語言。每天,我們人類使用數百或數千個單詞,其他人會理解這些單詞並做出相應的回應。對人類來說,這是一種簡單的交流方式,不是嗎?但我們知道,語言的意義遠不止於此,我們總是從我們所說的話以及我們說的話的方式中推匯出上下文。這就是為什麼我們可以說,NLP並非專注於語音調製,而是依賴於上下文模式。
讓我們用一個例子來理解:
Man is to woman as king is to what? We can interpret it easily and answer as follows: Man relates to king, so woman can relate to queen. Hence the answer is Queen.
人類如何知道哪個詞是什麼意思?這個問題的答案是,我們透過經驗學習。但是,機器/計算機如何學習相同的知識呢?
讓我們透過以下簡單的步驟來理解:
首先,我們需要向機器輸入足夠的資料,以便機器可以從經驗中學習。
然後,機器將使用深度學習演算法,從我們之前輸入的資料以及其周圍的資料中建立詞向量。
然後,透過對這些詞向量進行簡單的代數運算,機器將能夠像人類一樣提供答案。
NLP的組成部分
下圖顯示了自然語言處理(NLP)的組成部分:
形態學處理
形態學處理是NLP的第一個組成部分。它包括將語言輸入塊分解成對應於段落、句子和單詞的標記集。例如,像“everyday”這樣的單詞可以分解成兩個子詞標記,如“every-day”。
句法分析
句法分析是第二個組成部分,也是NLP最重要的組成部分之一。這個元件的目的如下:
檢查句子是否格式正確。
將其分解成一個結構,顯示不同單詞之間的句法關係。
例如,“學校去學生那裡”這樣的句子會被句法分析器拒絕。
語義分析
語義分析是NLP的第三個組成部分,用於檢查文字是否有意義。它包括從文字中提取確切的含義,或者我們可以說詞典意義。例如,“這是一個熱的冰淇淋”這樣的句子會被語義分析器丟棄。
語用分析
語用分析是NLP的第四個組成部分。它包括將之前元件(即語義分析)獲得的物件引用與每個上下文中存在的實際物件或事件相匹配。例如,“把水果放在桌子上的籃子裡”這句話可能有兩種語義解釋,因此語用分析器將在這兩種可能性之間進行選擇。
NLP應用示例
NLP作為一項新興技術,衍生出各種形式的人工智慧,我們如今經常看到這些人工智慧。對於當今和未來日益增長的認知應用,在人類和機器之間建立無縫且互動式介面的NLP應用將繼續成為重中之重。以下是NLP的一些非常有用的應用。
機器翻譯
機器翻譯(MT)是自然語言處理最重要的應用之一。MT基本上是一個將一種源語言或文字翻譯成另一種語言的過程。機器翻譯系統可以是雙語的或多語的。
反垃圾郵件
由於不需要的電子郵件數量大幅增加,垃圾郵件過濾器變得非常重要,因為它是在對抗此問題的第一道防線。透過將誤報和漏報問題作為主要問題,NLP的功能可用於開發垃圾郵件過濾系統。
N-gram建模、詞幹提取和貝葉斯分類是可用於垃圾郵件過濾的一些現有NLP模型。
資訊檢索和網路搜尋
大多數搜尋引擎(如谷歌、雅虎、必應、WolframAlpha等)都基於NLP深度學習模型的機器翻譯(MT)技術。這種深度學習模型允許演算法讀取網頁上的文字,解釋其含義並將其翻譯成另一種語言。
自動文字摘要
自動文字摘要是一種技術,可以建立較長文字文件的簡短、準確的摘要。因此,它可以幫助我們在更短的時間內獲取相關資訊。在這個數字時代,我們迫切需要自動文字摘要,因為網際網路上的資訊氾濫,而且這種趨勢不會停止。NLP及其功能在開發自動文字摘要中發揮著重要作用。
語法校正
拼寫檢查和語法校正功能是Microsoft Word等文字處理軟體的非常有用的功能。自然語言處理(NLP)被廣泛用於此目的。
問答
問答是自然語言處理(NLP)的另一個主要應用,它專注於構建能夠自動回答使用者以自然語言提出的問題的系統。
情感分析
情感分析是自然語言處理(NLP)的另一個重要應用。顧名思義,情感分析用於:
識別多個帖子中的情感,以及
識別未明確表達情感的地方。
亞馬遜、eBay等線上電子商務公司正在使用情感分析來識別其客戶的線上觀點和情感。這將幫助他們瞭解客戶對他們的產品和服務的看法。
語音引擎
Siri、Google Voice、Alexa等語音引擎都是基於NLP構建的,因此我們可以用自然語言與它們進行交流。
NLP的實現
為了構建上述應用程式,我們需要擁有特定的技能組合,以及對語言和高效處理語言的工具的深刻理解。為此,我們有各種可用的開源工具。其中一些是開源的,而另一些則由組織開發以構建他們自己的NLP應用程式。以下是某些NLP工具的列表:
自然語言工具包 (NLTK)
Mallet
GATE
OpenNLP
UIMA
Gensim
斯坦福工具包
這些工具大多是用Java編寫的。
自然語言工具包 (NLTK)
在上述NLP工具中,NLTK在易用性和概念解釋方面得分很高。Python的學習曲線非常快,而NLTK是用Python編寫的,因此NLTK也有非常好的學習工具包。NLTK集成了大多數任務,如分詞、詞幹提取、詞形還原、標點符號、字元計數和單詞計數。它非常優雅且易於使用。