當前位置:
首頁 > 科技 > Natural 自然語言處理—NLP全解析

Natural 自然語言處理—NLP全解析

GIF/1.7M

圖:pixabay

原文來源:machinelearningmastery

作者:Jason Brownlee

「機器人圈」編譯:嗯~阿童木呀、多啦A亮

提起AI,你可能會不假思索的想到自然語言處理、人臉識別、無人駕駛等。那麼,你對這些真的了解嗎?接下來,我們就以自然語言處理為例,來仔細說一說。

自然語言處理(Natural Language Processing),簡稱NLP,廣義上定義為通過軟體對諸如語音和文本這樣的自然語言進行自動操作。

在自然語言處理方面的研究已經延續了五十多年,而隨著計算機的興起,它的發展也早已超出了語言學的範疇。

而當你讀完本篇文章之後,你就會明白什麼是自然語言處理,以及它為什麼那麼重要:

?什麼是自然語言?它與其他類型的數據有什麼不同?

?什麼使得處理自然語言的工作變得如此具有挑戰性?

?NLP的領域來自哪裡?現代從業者是如何對其進行界定的?

現在我們就來深入探索一下!

自然語言

自然語言是指我們作為人類來說,人與人之間相互溝通的方式,即語音和文本。而我們無時不刻地處在文本的包圍之中。

想像一下你每天將會看到多少文本:

?符號

?菜單

?電子郵件

?簡訊

?網頁

?還有更多……

甚至可以說,這個名單是無休無止的。

現在我們先來考慮一下語音。

人類作為一個物種,我們可以相互交流,而這要遠遠超過我們所需要進行的寫作。我們不得不承認,相對寫作來說,學會說話要簡單得多。

語音和文字是我們進行相互交流的方式。

鑒於這種類型的數據的重要性,我們必須有方法來了解和理解自然語言,就像我們對其他類型的數據一樣。

自然語言的挑戰

使用自然語言數據所存在的問題還沒有得到解決。

該領域的專家已經對其進行了半個多世紀的研究,但必須要承認,它真的很難。

對於那些必須花費好多年來學習獲得一門語言的孩子來說,這是很難的;對於一個學習語言的成年人來說,這是很難的;對於那些嘗試建模的科學家來說,這是很難的;同樣,對於那些嘗試構建處理自然語言輸入或輸出系統的工程師來說,這也是很難的。這些任務是如此的困難,以至於圖靈將可以用自然語言進行流暢的交流作為他對智能測試的核心。

——2010年《數學語言學》,第248頁

自然語言之所以難主要是因為它很混亂,幾乎沒有規則可循。

不過大部分的時間裡我們而已很容易地彼此相互理解。

人類語言是非常模糊的……它也在不斷變化和演變。從古至今,人類在創造語言、理解語言方面是非常擅長的,並且能夠表達,感知和解讀非常精細和細微的含義。同時,雖然我們人類是語言使用的極大群體者,但我們在形式理解和描述用以管理語言的規則方面還存在一定的欠缺。

——2017年《自然語言處理中的神經網路方法》,第1頁

從語言學到自然語言處理

語言學

語言學是對語言進行的科學研究,包括語法、語義學和語音學。

古典語言學涉及到語言規則的設計和評估,在語法和語義學的形式方法上取得了很大的進步,但在大多數情況下,自然語言理解中存在的很多有趣的問題遏制了清晰的數學形式。

廣義上來說,語言學家可以是學習語言的任何人,但更通俗地說,一個以語言學家自居的人可能更側重於此領域之外的領域。

數學是科學的工具。從事自然語言工作的數學家可能將他們的研究稱為數學語言學,僅專註於離散數學形式學的使用和自然語言理論(例如形式語言和自動機理論)。

計算語言學

計算語言學是使用計算機科學工具對語言學進行的現代研究。昨天的語言學可能是今天的計算語言學家,因為計算工具的使用和思考方式的改變已然跨越了研究的大多數領域。

計算語言學是對理解和產生自然語言的計算機系統的研究。計算語言學的一個本質上的功能將是對理論語言學家提出的語法進行測試。

——1986年《計算語言學》導言,第4-5頁

大數據和計算機的發展意味著,通過編寫和運行軟體,可以從大量文本數據集中發現新的、不同的事物。

在20世紀90年代,統計方法和統計機器學習開始盛行,並最終取代了經典的自上而下的基於規則的語言方法,而這主要得益於它們結果的優良性、速度的快捷性、以及魯棒性。現在研究自然語言的統計方法主導了這一領域,它可以定義這個領域。

現如今,數據驅動的自然語言處理方法受到了廣泛的歡迎,以至於被認定是計算語言學的主流方法。導致這一發展的一個強有力的因素無疑是可用的電子存儲數據的增加量,從而為這些處理方法的應用提供了充足的數據量。由於其觀察到的脆性,另一個因素可能是在看到現存方法的脆弱性之後對過分依賴手工制動規則的覺醒。

——2005年《牛津計算語言學手冊》,第358頁

自然語言的統計方法不僅限於統計本身,而且還包括用於應用機器學習中的高級推理方法。

理解自然語言並不是一件簡單的事情,這需要大量的關於形態學、語法、語義和語用學知識,以及對世界的普遍認識。獲取和對所有這些知識進行編碼是開發具有良好有效性和魯棒性的語言系統的根本障礙之一。就像統計方法一樣,機器學習方法並沒有做到這一點,即從帶有注釋或未注釋的語言語料庫中自動獲取這種知識。

——2005年《牛津計算語言學手冊》,第377頁

統計自然語言處理

計算語言學也被稱為自然語言處理或NLP,以反映統計方法的更為基於工程師或經驗的方法性一面。

該領域的統計優勢還常常導致NLP被描述為統計自然語言處理,也許是為了將其與經典計算語言學方法區別開來。

我認為計算語言學既具有科學的一面又具有工程學的一面。稱為工程學的這一面,通常稱為自然語言處理(NLP),主要涉及構建計算工具,以便使用語言做有用的事情,例如機器翻譯、總結、問答等。與任何工程學科一樣,自然語言處理也涵蓋了各種不同的科學學科。

——2009年《統計變革是如何改變(計算)語言學的》

語言學是一個很大的研究課題,雖然NLP的統計學方法在某些領域取得了巨大的成功,但從傳統的自上而下的方法來看,仍然有很大的空間和巨大的收益。

粗略地說,統計NLP將概率與在分析話語或文本過程中遇到的替代方案相關聯,並將最可能的結果接受為正確的結果。 ......毫不奇怪的是,詞語的名稱現象在世界上都是密切相關的,或者我們對它的認知,在關於世界的事實反映在文本的一些模糊事實上,經常彼此接近。這個觀點有很大的爭論空間。

——2005年《牛津計算語言學手冊》,第19頁

自然語言處理

作為對處理文本數據感興趣的機器學習從業者,我們關注自然語言處理領域中的工具和方法。

在前面的內容中,我們已經看到了從語言學到NLP的路徑。現在,我們來看看現代研究人員和從業人員如何定義NLP的所有內容。

在這一領域最頂尖研究人員撰寫的教科書中,他們將這個學科稱為「語言科學」,允許討論古典語言學和現代統計學方法。

語言科學的目的是能夠描述和解釋圍繞在我們周圍的大量語言觀察,在對話、寫作和其他媒體中。其中一部分與人類獲取、產生和理解語言的認知範圍有關,一部分與理解語言話語與世界的關係有關,一部分與了解用哪種語言溝通的語言結構有關。

——1999年《統計自然語言處理基礎》,第3頁

他們通過在自然語言處理中使用統計方法繼續關注推理過程。

統計NLP旨在對自然語言領域進行統計推理。統計推理通常包括採取一些數據(根據一些未知概率分布生成),然後對該分布進行一些推斷。

—— 1999年《統計自然語言處理基礎》,第191頁

在應用自然語言處理的文本中,作者、NLP的知名NLPK Python庫的貢獻者將其廣泛描述為使用計算機來處理自然語言數據。

我們將採用自然語言處理(簡稱NLP),涵蓋了對自然語言任何類型的計算機操作。一方面,它可以簡單地計算單詞頻率來比較不同的寫作風格。另一方面,NLP涉及「理解」完整的人類言語,至少在能夠給予有效回應的程度上。

——2009《用Python進行自然語言處理》,第9頁

統計NLP已經轉向另一個角度,現在強調使用深度學習神經網路來對特定任務進行推理,並開發強大的端對端系統。

在第一本專門針對這一新興主題的教科書中,Yoav Goldberg簡潔地將NLP定義為將自然語言作為輸入或生成自然語言作為輸出的自動方法。

自然語言處理(NLP)是指人類語言的自動計算處理的總稱。這包括將人類生成的文本作為輸入的演算法,以及生成自然文本作為輸出的演算法。

——2017年《自然語言處理中的神經網路方法》,第17頁

進一步閱讀

如果你想更深入了解,本部分將提供有關該主題的更多資源。

圖書:

《數學語言學》,2010,http://amzn.to/2tO1cOO

《自然語言處理中的神經網路方法》,2017,http://amzn.to/2u0JtPl

《計算語言學:導論》,1986,http://amzn.to/2h6U4qY

《牛津計算語言學手冊》,2005年,http://amzn.to/2uHeERE

《統計自然語言處理基礎》,1999,http://amzn.to/2uzwxDE

《用Python進行自然語言處理》,2009,http://amzn.to/2uZMF27

維基百科:

維基百科上的語言學,https://en.wikipedia.org/wiki/Linguistics

維基百科上的計算語言學,https://en.wikipedia.org/wiki/Computational_linguistics

維基百科上的自然語言處理https://en.wikipedia.org/wiki/Natural_language_processing

維基百科上的自然語言處理史https://en.wikipedia.org/wiki/History_of_natural_language_processing

維基百科上的自然語言處理概要https://en.wikipedia.org/wiki/Outline_of_natural_language_processing

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 機器人圈 的精彩文章:

波士頓諮詢聯手MIT發布萬字人工智慧報告,詳解企業如何跨越「AI應用鴻溝」
「好的AI公司,是讓合作夥伴滿意」 ——AI先行者說
「反向傳播」演算法不行還有什麼行?網友已對Hinton的觀點「炸鍋」
Hinton大神對反向傳播「深表懷疑」,BP演算法難道要慘遭「摒棄」嗎?
手勢識別如何搞定?我們需要基於大型視頻資料庫的端到端的學習

TAG:機器人圈 |