在上一篇文章中,我們介紹了 “什麼是知識圖譜”,正如部落格中所說,NLP(Natural Language Processing,自然語言處理)是知識圖譜的技術上的難點之一。實際上,作為當前人工智慧主要的兩個研究領域之一,NLP 的難度比 CV (Computer Vision,計算機視覺)大很多。

今天,我們仍然只關注一個問題:

自然語言處理能做什麼?

推薦一個網站:

https://

nlpprogress。com/

。網站收錄了幾乎所有的 NLP 研究分支,並且跟蹤 NLP 在這些任務上的進展(SOTA,state-of-the-art)。網站更新比較及時,至少,當前我們能在部分榜單上看到 XLNET。(北京時間:20190724)

自然語言處理能做什麼

自然語言處理是當前人工智慧領域最重要(也是最難的)的研究方向之一,是計算機如何處理和分析自然語言的科學。實際上,自然語言處理不是一個單獨的研究領域,它擁有眾多研究分支,從文字輸入到影象、音訊輸入,從詞法到語法,再到語義,不同分支之間的差異,可能比 NLP 和其他深度學習方法的差異還大。

簡言之,自然語言處理,就是讓計算機 ”理解“ 自然語言的研究。關於自然語言處理的研究分支的劃分,在閱讀大量材料之後,仍然沒有找到一個標準和完美的分類方式。這是因為許多 NLP 研究分支,會使用到其他研究分支的技術和方法,層層巢狀,互有重疊。本文儘可能從應用的角度切入,介紹自然語言處理的重要研究分支(我們更多叫自然語言處理任務,NLP Tasks)。

語言模型(Language Model)

語言模型根據前文預測下一個字詞(word)是什麼。下圖就是 N-gram 語言模型的示意圖,模型根據前幾個詞的輸入,預測下一個詞。

自然語言處理能做什麼

語言模型無疑是自然語言處理中最重要的研究分支。語言模型是一項基準任務,可幫助我們衡量我們理解自然語言的進度。並且,語言模型是很多其他自然語言任務的組成部分,尤其是涉及生成文字或估計文字機率的任務。

實際上我們每天都在使用語言模型。例如,輸入法工具會根據你之前輸入的內容,自動生成下一個字詞或者短語,方便我們的輸入。又如,我們使用搜索引擎時,搜尋引擎會自動生成常用搜索項。

自然語言處理能做什麼

此外,語言模型可以在手寫字元識別,語音識別,語法糾錯,甚至自動摘要等多個自然語言處理任務中。我們會在後文涉及部分任務的介紹~

語音識別( Speech Recognition)

以我們天天使用的 IPhone 為例,不論是打字時候的語音輸入功能,還是強大的智慧助理 SIRI,當我們使用語音和機器進行互動時,背後就有語音識別演算法的支援。從語音輸入,到手機上識別出來的文字,語音識別完成了從語音資料到文字資料的轉換。

自然語言處理能做什麼

語音作為人類最為重要的交流方式,是很多 AI 產品重要的一環,極大關乎使用者體驗。例如,開車需要導航的時候,我會更傾向於使用百度地圖而不是高德地圖(百度看到此條請點讚賞,支援點廣告費~),因為駕駛員可以僅用語言與導航進行互動,從而完全解放雙手,保證行車安全。高德地圖則需要點選一下語音輸入的按鍵(2019年04月 9。02。0 版本已加入 “你好小德” 語音助手功能)。(圓回來了,高德也可以點讚賞~)

機器翻譯(Machine Translation)

機器翻譯我們這些英語沒學好的人的福音【笑臉】。我們將一段特定語言(例如英語)的文字輸入,輸出我們期望的語言(例如中文),輸入輸出在語義上保持一致。

自然語言處理能做什麼

很久很久以前,機器翻譯是一整套演算法的集合。例如1954年,第一個機器翻譯系統 “Brain”,將俄語翻譯為英語。歷史好的同學可能已經發現了,那時正值冷戰時期,是冷戰促成了機器翻譯系統的發展【笑臉】。翻譯系統首先儲存了一份俄語到英語的字典,然後語言模型將翻譯好的字詞梳理成更合理的語句。

如今,機器翻譯基本使用端到端的訓練模型,採用 Encoder 和 Decoder 的組合,直接訓練整個神經網路模型。我們甚至可以很輕鬆的識別多種語言(Multi-Language)的輸入。

自動問答/對話(Question Answering/ Dialogue)

雖然這裡將兩個任務放在了一起,自動問答與對話在技術要求上差別很大。一般來說,自動問答有明確的答案,自動對話更多需要人工評估。

閱讀理解就是典型的自動問答問題,計算機在閱讀一段文字之後,回答一些與文字相關的問題。下圖是 BERT 模型在 SQuAD 2。0 資料集上的一個問題視覺化結果。SQuAD 是自動問答領域重要的評估資料集。

自然語言處理能做什麼

自動對話則相對複雜,需要計算機能夠在對話中表現出人的反應。在這個研究領域,又有很多細分支,有人在研究如何讓計算機對說話人的行為進行分類(Dialogue act classification),有人嘗試跟蹤對話的狀態(Dialogue state tracking),也有人在做生成式的對話機器人(Generative-based Chatbot),能夠根據對話生成引人入勝的迴應。

情緒分析/文字分類/自然語言推理(Sentiment analysis/ Text Classification/ NLI)

情緒分析是當前應用較廣的自然語言處理技術。通常,我們將情緒分析當做一個文字分類問題,對文字的情緒進行定性判斷。IMDB 評論(IMDB Reviews)是比較常用的資料集之一,擁有 5w 條使用者評論及評分,任務需要根據使用者評論判斷使用者情緒是正向的還是負面的,資料集已事先根據使用者評分將評論分為正向(Positive)和負面(Negtive)兩類。

自然語言處理能做什麼

文字分類問題的範圍更大一些,將句子或者文件分配到特定的類別,通常我們將文字劃分到特定的主題類別。AG‘s news 是比較常用的文字分類資料集,要求根據新聞標題和簡介判斷新聞的類別。

自然語言推理(Natural Language Inference,簡稱 NLI)是自然語言理解一個重要組成,是檢驗語義理解的重要評價方式,且研究成果具有高遷移性。自然語言推理判斷兩個句子(前提句 Premise 和假設句 Hypothesis)在語義上是否存在推理蘊含關係。這也是一個分類任務,任務需要最終給出三分類(Entailment,Contradiction,Neutral)中的一個。Entailment 表示句子存在推理蘊含關係,Contradiction 表示句子存在推理矛盾關係,Neutral 表示兩者皆否。

資訊檢索(Information Retrieval)

搜尋引擎就是資訊檢索很好的例子。資訊檢索任務需要根據輸入的資訊,返回與之相關的資源,例如網頁、論文、圖片等等。我們在圖演算法中介紹的 TF-IDF 演算法,就是一個典型的資訊檢索評分演算法。

關於資訊檢索,推薦一本書《Introduction to Information Retrieval》

https://

nlp。stanford。edu/IR-boo

k/information-retrieval-book。html

,作者 Chris Manning。你也可以在這裡找到線上課程。

https://

web。stanford。edu/class/

cs276/

資訊抽取(Information Extraction)

我們在前面的博文中介紹過知識圖譜(Knowledge Graph),可以說,是資訊抽取技術催生了基於網際網路資訊的大型知識圖譜。

自然語言處理能做什麼

資訊抽取任務從大量的網頁資訊中識別出實體(Entities)和它們之間的關係(Relations),獲得這些 fact 之後,還要進行實體和關係的消歧與合併。所以,資訊抽取是一系列的任務的集合,包括命名實體識別(Named Entity Recognition),詞性標註(Part-Of-Speech tagging),指代消解(Coreference Resolution),關係抽取(Relationship Extraction),時間抽取(Event Extraction)等等。

生成類任務(Generation)

這個名字你可能會很陌生,然而生成類演算法離我們並不遙遠。自動摘要(Automatic Summarization)是一個典型的任務,根據輸入的一段文字,生成一段相對簡短的摘要。

自然語言處理能做什麼

此外,其他文字生成類任務例如生成歌曲、詩歌,例如根據圖片自動生成描述文字(image caption),例如對輸入文字進行風格改寫等等。對了,語言模型也是生成類任務的一部分。

句法規則相關(Tagging/ Chunking/ Syntax/ Parsing)

句法規則是語言學較為關注的任務,也是很多其他任務的組成部分。句法規則關注如何把字詞和短語組合成句子的規則。上小節提到的詞性標註(POS tagging)就是典型的例子。

自然語言處理能做什麼

文字分塊(chunking,一般也叫淺語法,Shallow syntax)關注文字的句法結構。

Constituency parsing,從句子中抽取分析樹:

自然語言處理能做什麼

Dependency parsing 分析句子中的依賴關係:

自然語言處理能做什麼

總結

今天的總結,沒有 Reference 了,推薦一些材料或課程作為 NLP 入門吧~

《數學之美》,吳軍,2012。本書鮮有公式,更多地從數學趣味的角度講解計算機技術,篇幅中不少涉及了自然語言處理的內容,對小白是一個很好的入門

CS224n: Natural Language Processing with Deep Learning,Stanford Winter 2019,

http://

web。stanford。edu/class/

cs224n/

。斯坦福在自然語言處理的地位是不言而喻的,斯坦福的公開課是一個非常好的系統化的課程

《Speech and Language Processing》,Dan Jurafsky & James H。 Martin,

https://

web。stanford。edu/~juraf

sky/slp3/

。最經典的自然語言處理課本,截止2019年7月25日,本書第三版還在草稿中,你可以從這個連結找到最新的章節

歡迎掃碼關注資料科學公眾號

自然語言處理能做什麼

掃碼關注:資料科學一線