NLG在自然語言處理領域中是否還有需要?
在回答你的問題之前,我先來梳理一下什麼是自然語言處理(NLP)尤其是與自然語言生成(NLG)成對比的自然語言理解(NLU)。
自然語言處理(NLP)是指機器理解並解釋人類寫作、說話方式的能力。NLP 的目標是讓計算機/機器在理解語言上像人類一樣智能。最終目標是彌補人類交流(自然語言)和計算機理解(機器語言)之間的差距。有了 NLP,有可能完成自動語音、自動文本編寫這樣的任務。由於大型數據(文本)的存在,我們可以使用計算機的能力,不知疲倦地運行演算法來完成這樣的任務,花費的時間也更少。這些任務包括 NLP 的其他應用,比如自動摘要(生成給定文本的總結)和機器翻譯。
NLP 的機制涉及兩個流程:自然語言理解(NLU)和自然語言生成(NLG)。
自然語言理解(NLU)
NLU 是要理解給定文本的含義。文本內每個單詞的特性與結構需要被理解。在理解結構上,NLU 要理解自然語言中的以下幾個歧義性:
- 詞法歧義性:單詞有多重含義
- 句法歧義性:語句有多重解析樹
- 語義歧義性:句子有多重含義
- 回指歧義性(Anaphoric Ambiguity):之前提到的短語或單詞在後面句子中有不同的含義。
接下來,通過使用辭彙和語法規則,理解每個單詞的含義。然而,有些詞有類似的含義(同義詞),有些詞有多重含義(多義詞)。
自然語言理解(NLU)的具體應用有:文本分類、自動摘要、機器翻譯、對話系統、自動回答、閱讀理解等。
自然語言生成(NLG)
NLG 是從結構化數據中以可讀地方式自動生成文本的過程。它可被分為三個階段:
1. 文本規劃:完成結構化數據中基礎內容的規劃。
2. 語句規劃:從結構化數據中組合語句,來表達信息流。
3. 實現:產生語法通順的語句來表達文本。
自然語言生成(NLG)的主要應用有:自動寫詩、論文寫作、報告生成、新聞寫作、專利寫作、百科寫作等。
以上。你認為相比於NLU,NLG顯得不那麼重要的原因可能是出於如下一個對比,也是如今NLP領域的一個現狀:即如火如荼突飛猛進的機器翻譯(NLP)的風頭壓過了似乎止步不前的NLG,比如NLU最近又取得重大進展,Facebook提出全新CNN機器翻譯:準確度超越谷歌而且還快九倍;在此之前,谷歌在機器翻譯方面也不斷取得新突破: 谷歌翻譯整合神經網路:機器翻譯實現顛覆性突破和谷歌神經機器翻譯再突破:實現高質量多語言翻譯和 zero-shot 翻譯。而於此同時,NLG卻進展甚微,這一方面是由於目前的NLG多使用模版,靈活性較差,缺少泛化能力;另一方面NLG雖然也使用神經網路,但目前技術較不成熟,雖然有一定的泛化能力,但是魯棒性欠佳。
我想,NLU與NLG的關係恰如有監督學習和無監督學習。雖然目前有監督學習進展大,成果豐碩,但是依然沒有放棄收效不大的無監督學習,因為我們知道無監督學習才是人工智慧的未來。同樣,NLG雖然難,但是我們依然不能放棄,NLU與NLG恰如NLP的兩條腿,要走路,少了那個都不行。
存在即合理,NLG如何脫離模板生成,如何創造新內容,都值得研究。
推薦閱讀: