自然語言處理-Natural language processing | NLP
- 2019 年 12 月 18 日
- 筆記
文章目錄

網路上有海量的文本資訊,想要處理這些非結構化的數據就需要利用 NLP 技術。 本文將介紹 NLP 的基本概念,2大任務,4個典型應用和6個實踐步驟。
NLP 為什麼重要?
「語言理解是人工智慧領域皇冠上的明珠」 比爾·蓋茨
在人工智慧出現之前,機器智慧處理結構化的數據(例如 Excel 里的數據)。但是網路中大部分的數據都是非結構化的,例如:文章、圖片、音頻、影片…

在非結構數據中,文本的數量是最多的,他雖然沒有圖片和影片佔用的空間大,但是他的資訊量是最大的。
為了能夠分析和利用這些文本資訊,我們就需要利用 NLP 技術,讓機器理解這些文本資訊,並加以利用。
什麼是自然語言處理 – NLP
每種動物都有自己的語言,機器也是!
自然語言處理(NLP)就是在機器語言和人類語言之間溝通的橋樑,以實現人機交流的目的。
人類通過語言來交流,狗通過汪汪叫來交流。機器也有自己的交流方式,那就是數字資訊。

不同的語言之間是無法溝通的,比如說人類就無法聽懂狗叫,甚至不同語言的人類之間都無法直接交流,需要翻譯才能交流。
而電腦更是如此,為了讓電腦之間互相交流,人們讓所有電腦都遵守一些規則,電腦的這些規則就是電腦之間的語言。
既然不同人類語言之間可以有翻譯,那麼人類和機器之間是否可以通過「翻譯」的方式來直接交流呢?
NLP 就是人類和機器之間溝通的橋樑!

為什麼是「自然語言」處理?
自然語言就是大家平時在生活中常用的表達方式,大家平時說的「講人話」就是這個意思。
自然語言:我背有點駝(非自然語言:我的背部呈彎曲狀) 自然語言:寶寶的經紀人睡了寶寶的寶寶(微博上這種段子一大把)
NLP 的2大核心任務

NLP 有2個核心的任務:
自然語言理解 – NLU|NLI
自然語言理解就是希望機器像人一樣,具備正常人的語言理解能力,由於自然語言在理解上有很多難點(下面詳細說明),所以 NLU 是至今還遠不如人類的表現。

自然語言理解的5個難點:
- 語言的多樣性
- 語言的歧義性
- 語言的魯棒性
- 語言的知識依賴
- 語言的上下文
想要深入了解NLU,可以看看這篇文章《一文看懂自然語言理解-NLU(基本概念+實際應用+3種實現方式)》
自然語言生成 – NLG

NLG 是為了跨越人類和機器之間的溝通鴻溝,將非語言格式的數據轉換成人類可以理解的語言格式,如文章、報告等。
NLG 的6個步驟:
- 內容確定 – Content Determination
- 文本結構 – Text Structuring
- 句子聚合 – Sentence Aggregation
- 語法化 – Lexicalisation
- 參考表達式生成 – Referring Expression Generation|REG
- 語言實現 – Linguistic Realisation
想要深入了解NLG,可以看看這篇文章《一文看懂自然語言生成 – NLG(6個實現步驟+3個典型應用)》
NLP 的5個難點

- 語言是沒有規律的,或者說規律是錯綜複雜的。
- 語言是可以自由組合的,可以組合複雜的語言表達。
- 語言是一個開放集合,我們可以任意的發明創造一些新的表達方式。
- 語言需要聯繫到實踐知識,有一定的知識依賴。
- 語言的使用要基於環境和上下文。
NLP 的4個典型應用

情感分析
互聯網上有大量的文本資訊,這些資訊想要表達的內容是五花八門的,但是他們抒發的情感是一致的:正面/積極的 – 負面/消極的。
通過情感分析,可以快速了解用戶的輿情情況。
聊天機器人
過去只有 Siri、小冰這些機器人,大家使用的動力並不強,只是當做一個娛樂的方式。但是最近幾年智慧音箱的快速發展讓大家感受到了聊天機器人的價值。
而且未來隨著智慧家居,智慧汽車的發展,聊天機器人會有更大的使用價值。
語音識別
語音識別已經成為了全民級的引用,微信里可以語音轉文字,汽車中使用導航可以直接說目的地,老年人使用輸入法也可以直接語音而不用學習拼音…
機器翻譯
目前的機器翻譯準確率已經很高了,大家使用 Google 翻譯完全可以看懂文章的大意。傳統的人肉翻譯未來很可能會失業。
NLP 的 2 種途徑、3 個核心步驟
NLP 可以使用傳統的機器學習方法來處理,也可以使用深度學習的方法來處理。2 種不同的途徑也對應著不同的處理步驟。詳情如下:
方式 1:傳統機器學習的 NLP 流程

- 語料預處理
- 中文語料預處理 4 個步驟(下文詳解)
- 英文語料預處理的 6 個步驟(下文詳解)
- 特徵工程
- 特徵提取
- 特徵選擇
- 選擇分類器
方式 2:深度學習的 NLP 流程

- 語料預處理
- 中文語料預處理 4 個步驟(下文詳解)
- 英文語料預處理的 6 個步驟(下文詳解)
- 設計模型
- 模型訓練
英文 NLP 語料預處理的 6 個步驟

- 分詞 – Tokenization
- 詞幹提取 – Stemming
- 詞形還原 – Lemmatization
- 詞性標註 – Parts of Speech
- 命名實體識別 – NER
- 分塊 – Chunking
中文 NLP 語料預處理的 4 個步驟

總結
自然語言處理(NLP)就是在機器語言和人類語言之間溝通的橋樑,以實現人機交流的目的。
NLP的2個核心任務:
- 自然語言理解 – NLU
- 自然語言生成 – NLG
NLP 的5個難點:
- 語言是沒有規律的,或者說規律是錯綜複雜的。
- 語言是可以自由組合的,可以組合複雜的語言表達。
- 語言是一個開放集合,我們可以任意的發明創造一些新的表達方式。
- 語言需要聯繫到實踐知識,有一定的知識依賴。
- 語言的使用要基於環境和上下文。
NLP 的4個典型應用:
- 情感分析
- 聊天機器人
- 語音識別
- 機器翻譯
NLP 的6個實現步驟:
- 分詞-tokenization
- 次干提取-stemming
- 詞形還原-lemmatization
- 詞性標註-pos tags
- 命名實體識別-ner
- 分塊-chunking
百度百科版本+維基百科
百度百科版本
自然語言處理是電腦科學領域與人工智慧領域中的一個重要方向。它研究能實現人與電腦之間用自然語言進行有效通訊的各種理論和方法。自然語言處理是一門融語言學、電腦科學、數學於一體的科學。因此,這一領域的研究將涉及自然語言,即人們日常使用的語言,所以它與語言學的研究有著密切的聯繫,但又有重要的區別。自然語言處理並不是一般地研究自然語言,而在於研製能有效地實現自然語言通訊的電腦系統,特別是其中的軟體系統。因而它是電腦科學的一部分。
自然語言處理(NLP)是電腦科學,人工智慧,語言學關注電腦和人類(自然)語言之間的相互作用的領域。
維基百科版本
自然語言處理(NLP)是電腦科學,資訊工程和人工智慧的子領域,涉及電腦與人類(自然)語言之間的交互,特別是如何對電腦進行編程以處理和分析大量自然語言數據。自然語言處理中的挑戰通常涉及語音識別,自然語言理解和自然語言生成。