本文首發(fā)自 easyAI - 人工智能知識庫
原文地址:《一文看懂自然語言生成 - NLG(6個實現(xiàn)步驟+3個典型應用)》

自然語言生成 - NLG 是 NLP 的重要組成部分,他的主要目的是降低人類和機器之間的溝通鴻溝,將非語言格式的數(shù)據(jù)轉換成人類可以理解的語言格式。
本文除了介紹 NLG 的基本概念,還會介紹 NLG 的3個 Level、6個步驟和3個典型的應用。
什么是 NLG?
NLG 是 NLP 的一部分

NLP = NLU + NLG
自然語言生成 - NLG 是 NLP 的重要組成部分。NLU 負責理解內容,NLG 負責生成內容。
以智能音箱為例,當用戶說“幾點了?”,首先需要利用 NLU 技術判斷用戶意圖,理解用戶想要什么,然后利用 NLG 技術說出“現(xiàn)在是6點50分”。
自然語言生成 - NLG 是什么?

NLG 是為了跨越人類和機器之間的溝通鴻溝,將非語言格式的數(shù)據(jù)轉換成人類可以理解的語言格式,如文章、報告等。
自然語言生成 - NLG 有2種方式:
- text - to - text:文本到語言的生成
- data - to - text :數(shù)據(jù)到語言的生成

NLG 的3個 Level

簡單的數(shù)據(jù)合并:自然語言處理的簡化形式,這將允許將數(shù)據(jù)轉換為文本(通過類似Excel的函數(shù))。為了關聯(lián),以郵件合并(MS Word mailmerge)為例,其中間隙填充了一些數(shù)據(jù),這些數(shù)據(jù)是從另一個源(例如MS Excel中的表格)中檢索的。

模板化的 NLG :這種形式的NLG使用模板驅動模式來顯示輸出。以足球比賽得分板為例。數(shù)據(jù)動態(tài)地保持更改,并由預定義的業(yè)務規(guī)則集(如if / else循環(huán)語句)生成。

高級 NLG :這種形式的自然語言生成就像人類一樣。它理解意圖,添加智能,考慮上下文,并將結果呈現(xiàn)在用戶可以輕松閱讀和理解的富有洞察力的敘述中。
NLG 的6個步驟

第一步:內容確定 - Content Determination
作為第一步,NLG 系統(tǒng)需要決定哪些信息應該包含在正在構建的文本中,哪些不應該包含。通常數(shù)據(jù)中包含的信息比最終傳達的信息要多。
第二步:文本結構 - Text Structuring
確定需要傳達哪些信息后,NLG 系統(tǒng)需要合理的組織文本的順序。例如在報道一場籃球比賽時,會優(yōu)先表達「什么時間」「什么地點」「哪2支球隊」,然后再表達「比賽的概況」,最后表達「比賽的結局」。
第三步:句子聚合 - Sentence Aggregation
不是每一條信息都需要一個獨立的句子來表達,將多個信息合并到一個句子里表達可能會更加流暢,也更易于閱讀。
第四步:語法化 - Lexicalisation
當每一句的內容確定下來后,就可以將這些信息組織成自然語言了。這個步驟會在各種信息之間加一些連接詞,看起來更像是一個完整的句子。
第五步:參考表達式生成 - Referring Expression Generation|REG
這個步驟跟語法化很相似,都是選擇一些單詞和短語來構成一個完整的句子。不過他跟語法化的本質區(qū)別在于“REG需要識別出內容的領域,然后使用該領域(而不是其他領域)的詞匯”。
第六步:語言實現(xiàn) - Linguistic Realisation
最后,當所有相關的單詞和短語都已經確定時,需要將它們組合起來形成一個結構良好的完整句子。
NLG 的3種典型應用
NLG 的不管如何應用,大部分都是下面的3種目的:
- 能夠大規(guī)模的產生個性化內容
- 幫助人類洞察數(shù)據(jù),讓數(shù)據(jù)更容易理解
- 加速內容生產
下面給大家列一些比較典型的應用:

自動寫新聞
某些領域的新聞是有比較明顯的規(guī)則的,比如體育新聞。目前很多新聞已經借助 NLG 來完成了。
聊天機器人
大家了解聊天機器人都是從 Siri 開始的,最近幾年又出現(xiàn)了智能音箱的熱潮。
除了大家日常生活中很熟悉的領域,客服工作也正在被機器人替代,甚至一些電話客服也是機器人。

BI 的解讀和報告生成
幾乎各行各業(yè)都有自己的數(shù)據(jù)統(tǒng)計和分析工具。這些工具可以產生各式各樣的圖表,但是輸出結論和觀點還是需要依賴人。NLG 的一個很重要的應用就是解讀這些數(shù)據(jù),自動的輸出結論和觀點。(如下圖所示)

總結
自然語言生成 - NLG 是 NLP 的重要組成部分,他的主要目的是降低人類和機器之間的溝通鴻溝,將非語言格式的數(shù)據(jù)轉換成人類可以理解的語言格式。
NLG 的3個level:
- 簡單的數(shù)據(jù)合并
- 模塊化的 NLG
- 高級 NLG
NLG 的6個步驟:
- 內容確定 - Content Determination
- 文本結構 - Text Structuring
- 句子聚合 - Sentence Aggregation
- 語法化 - Lexicalisation
- 參考表達式生成 - Referring Expression Generation|REG
- 語言實現(xiàn) - Linguistic Realisation
NLG 應用的3個目的:
- 能夠大規(guī)模的產生個性化內容
- 幫助人類洞察數(shù)據(jù),讓數(shù)據(jù)更容易理解
- 加速內容生產
NLG 的3個典型應用:
- 自動寫新聞
- 聊天機器人
- BI 的解讀和報告生成