網路上有海量的文字資訊,想要處理這些非結構化的資料就需要利用 NLP 技術。
本文將介紹 NLP 的基本概念,2大任務,4個典型應用和6個實踐步驟。
NLP 為什麼重要?
“語言理解是人工智慧領域 皇 冠 上的明珠”
比爾·蓋茨
在人工智慧出現之前,機器智慧處理結構化的資料(例如 Excel 裡的資料)。但是網路中大部分的資料都是非結構化的,例如:文章、圖片、音訊、影片…
在非結構資料中,文字的數量是最多的,他雖然沒有圖片和影片佔用的空間大,但是他的資訊量是最大的。
為了能夠分析和利用這些文字資訊,我們就需要利用 NLP 技術,讓機器理解這些文字資訊,並加以利用。
什麼是自然語言處理 – NLP
每種動物都有自己的語言,機器也是!
自然語言處理(NLP)就是在機器語言和人類語言之間溝通的橋樑,以實現人機交流的目的。
人類透過語言來交流,狗透過汪汪叫來交流。機器也有自己的交流方式,那就是數字資訊。
不同的語言之間是無法溝通的,比如說人類就無法聽懂狗叫,甚至不同語言的人類之間都無法直接交流,需要翻譯才能交流。
而計算機更是如此,為了讓計算機之間互相交流,人們讓所有計算機都遵守一些規則,計算機的這些規則就是計算機之間的語言。
既然不同人類語言之間可以有翻譯,那麼人類和機器之間是否可以透過“翻譯”的方式來直接交流呢?
NLP 就是人類和機器之間溝通的橋樑!
為什麼是“自然語言”處理?
自然語言就是大家平時在生活中常用的表達方式,大家平時說的「講人話」就是這個意思。
自然語言:我背有點駝(非自然語言:我的背部呈彎曲狀)
自然語言:寶寶的經紀人睡了寶寶的寶寶(微博上這種段子一大把)
NLP 的2大核心任務
NLP 有2個核心的任務:
- 自然語言理解 – NLU | NLI
- 自然語言生成 – NLG
自然語言理解 – 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 個步驟
- 中文分詞 – Chinese Word Segmentation
- 詞性標註 – Parts of Speech
- 命名實體識別 – NER
- 去除停用詞
總結
自然語言處理(NLP)就是在機器語言和人類語言之間溝通的橋樑,以實現人機交流的目的。
NLP的2個核心任務:
- 自然語言理解 – NLU
- 自然語言生成 – NLG
NLP 的5個難點:
- 語言是沒有規律的,或者說規律是錯綜複雜的。
- 語言是可以自由組合的,可以組合複雜的語言表達。
- 語言是一個開放集合,我們可以任意的發明創造一些新的表達方式。
- 語言需要聯絡到實踐知識,有一定的知識依賴。
- 語言的使用要基於環境和上下文。
NLP 的4個典型應用:
- 情感分析
- 聊天機器人
- 語音識別
- 機器翻譯
NLP 的6個實現步驟:
- 分詞-tokenization
- 次幹提取-stemming
- 詞形還原-lemmatization
- 詞性標註-pos tags
- 命名實體識別-ner
- 分塊-chunking