iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 4
9
AI & Data

深入淺出搜尋引擎和自然語言處理系列 第 4

Day 4: AI也會寫文章?關於自然語言生成

今天介紹NLP常見任務的第三項:自然語言生成(Natural Language Generation)

自然語言處理的一大目標是要讓電腦讀懂人類在說什麼,就如同我們前兩天的內容:讓電腦辨識聲音以及知道句型架構。今天介紹的第一個任務稱為自然語言生成,這任務的目標和昨天恰恰相反,要讓電腦寫出人類讀得懂的語言。

人類之間之所以能明白彼此所說出來的語言,有個重要因素,就是我們的語言就類似於一個模型。在模型之內的,即使其中一些字轉換了,我們依然能理解;然而若這句話不曾出現在我們的認知中,我們可能就難以理解這話的涵義了,這或許是為什麼我們需要讀那麼多文言文、唐詩、宋詞那些不會出現在現代的語法結構和用詞了。

舉個語言模型的例子:「今天我要去跑步。」我們可以把跑步替換成任何動詞,「今天我要去爬山」或「今天我要去喝咖啡」,這些替換都不成問題,但若是切換成形容詞:「今天我要去溫暖的」,身為人類的我們就會知道,這句話很怪,好像缺了什麼。

另一種常出現的問題就是語法結構分析(parsing),雖然這不在我三十天的內容之中,但還是舉個例子:「今天我要去跑步」若被改成「跑步我今天要去」,這句話還是能理解,只是作為中文母語人士會覺得這句話超怪。而若是直接變成「跑步我要去今天」,這任何一個聽得懂中文的人應該都會很崩潰。因此,說出讓人能夠聽懂同時不覺得怪的一句話就是語言模型在做的事情。關於語言模型的應用,我會在之後的內容中更詳細地說。

寫出讓人理解的句子固然重要,還需要言之有理,那就是自然語言生成的奧妙之處了!首先,電腦需要決定這句話的內容,像是前面例子的關鍵內容是「時間」(今天)和「運動」(跑步);接著電腦會根據語法結構架構這句話,同時也會在字詞當中做選擇,像是「今天」的同義字就有「今朝」、「今日」,「跑步」也有些同義字如「小跑」、「飛跑」、「飛奔」。但如果今天電腦真的生成:「今朝我要去飛奔。」那這台電腦還是砍掉重練吧。

https://ithelp.ithome.com.tw/upload/images/20190905/20118683yRC3XXFluq.jpg


上一篇
Day 3: 親手讓電腦幫你標動詞和名詞吧!
下一篇
Day 5: AI連自動幫文集歸類主題都做得到?關於主題模型
系列文
深入淺出搜尋引擎和自然語言處理30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 則留言

0
floro615
iT邦新手 5 級 ‧ 2019-09-05 06:02:42

今朝我要去飛奔是什麼XD
不過例子舉得不錯,很貼近生活~

希望每一篇都能夠深入淺出,讓所有人都看得懂囉!

0
chifuh99
iT邦新手 5 級 ‧ 2019-09-07 07:11:49

前陣子許多人對於電腦會寫論文感到驚恐,但事實上這個技術已經發展了很長一段時間了。
最近有人在用自然語言生成寫詩呢哈哈

在墨爾本大學也有認識的中國同學他在用自然語言生成寫唐詩耶,該不會同一位?

我要留言

立即登入留言