iT邦幫忙

第 11 屆 iT 邦幫忙鐵人賽

DAY 21
3
AI & Data

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

Day 21: 讓電腦讀懂人類的提問!關於問答系統

問答系統是一個自動為一自然語言問題找出答案(組)的任務。

https://ithelp.ithome.com.tw/upload/images/20190922/20118683BJA5oKxr7t.png

https://ithelp.ithome.com.tw/upload/images/20190922/20118683S11JPyYNLg.png

這是Google的問答系統(我也不知道為什麼Google會幫歐巴馬放上這張圖XD)。

我們能夠用資訊檢索的方式來開發問答系統,流程如下:

https://ithelp.ithome.com.tw/upload/images/20190922/20118683K02lKyndsC.png

  1. 將使用者的自然語言問題轉換為資訊檢索的查詢(Question Processing)
  2. 進行資訊檢索,首先找到相關文件,再從相關文件中找出能夠回答自然語言問題的關鍵段落。
  3. 將答案從關鍵段落中抽取出來,盡可能找出精華(可能是一句話或一個詞)。

在問題轉換為查詢的過程中,我們會去掉停止詞以找出關鍵字(用於tf-idf),並且試著從問題中找提示。像是在Google搜尋「誰是上一任美國總統」這個問題當中,它將「上一任」轉換為他們的資料儲存型態「前任」;也可能在「誰」這個字中發現一個提示→會是一個人物(我們沒辦法確定在這個問題中有沒有幫助Google找到答案,但這個詞的確能夠幫助我們的系統更精確地找到答案);最後是「美國總統」這個詞,我們看到系統能夠索引到歐巴馬是循著「唐納·川普 / 前任」這個思路去找的,資料也極有可能是根據維基百科的「唐納·川普 → 美國總統 → 前任」這條路去尋找答案。

這樣的問答系統仍存在些小問題,例如:

https://ithelp.ithome.com.tw/upload/images/20190922/20118683ytB8GgbV5N.png

正確答案應該是:

https://ithelp.ithome.com.tw/upload/images/20190922/20118683uITXSe4IWq.png

然而系統卻去找到「麥克·彭斯」在做美國印第安納州州長時的前任。

https://ithelp.ithome.com.tw/upload/images/20190922/20118683F6Hs05fAdb.png

在Question Processing的步驟中,第二項為Answer Type Detection。在使用者的問題當中,我們若能夠找到問題中試圖尋找的答案類型,能夠增加我們答題的準確性。

https://ithelp.ithome.com.tw/upload/images/20190922/20118683SoJkUzGCP1.png

這些是常見的答案類型。

除此之外仍有一些如SQUAD(Rajpurkar et al., 2016)、DrQA(Chen et al., 2017)、Sempre(Berant et al., 2013)、IBM Watson(Ferrucci et al., 2010)等方法可以讓大家開發問答系統。


上一篇
Day 20: 從文章中獲取有用的資訊!關於資訊抽取
下一篇
Day 22: 原來語言翻譯有四種程度?關於機器翻譯
系列文
深入淺出搜尋引擎和自然語言處理30

尚未有邦友留言

立即登入留言