# 基於檢索方法的中文幽默對話系統之建置應用與評估
:::info
曾元顯(Yuen-Hsien T, 許瑋倫(Wei-Lun H, 吳玟萱(Wun-Syuan W, 古怡巧(Yi-Ciao G, & 陳學志(Hsueh-Chih C (2020). Implementation and evaluation of a retrieval-based chinese humor chatbot. 圖書資訊學刊, 18(2), 73-101. https://doi.org/10.6182/jlis.202012_18(2).073
:::
## OUTLINE
[TOC]
## 一、前言
  廣大的使用者透過對話介面(conversational user interface, CUI)提供各種主動、被動的客戶服務,如:報名、 通知、查詢、客服等。由於透過社交通訊平台的互動,可識別個別使用者,且新增 服務不需使用者安裝軟體,再加上行動載 具上語音識別與合成技術的進步與易用特性,使得CUI被視為是繼網頁(Web) 與應用程式(App)介面之後,==第三種重要的人機互動使用介面。==
  雖然人機對話系統的發展,已達商業應用階段,但多數以關鍵語句比對知識庫方式 回應使用者,使用起來仍有生硬、呆板、低 於預期之憾。要讓對話系統進步到更智慧、 更人性的階段,需要更多語言處理、人機互 動甚至幽默機制的相關研究。
  為了實作這樣的破冰機器人,我們運用圖書資訊領域的==採、編、典、藏、用==概念,先評估各種笑話來源約40幾種,再廣泛的取樣各來源的笑話約5,000則,使此 語料具備多樣性,繼而編製詮釋資料,如笑話來源、笑話主題、好笑程度等,以便於後續的典藏、持續的更新。
## 二、文獻探討
### 文字對話系統
* 規則法
  可運用Artificial Intelligence Markup Language(AIML)人工智慧標註語言,針對某特定領域,人工撰寫對話語料庫,或是從客服實際對話紀錄中,將問題與回應轉成AIML知識庫,讓 AIML比對引擎,自動比對使用者問題,並做適當回應。
* 優點:初期系統建置快速、系統的回應可預期並容易解釋
* 缺點:當要回應的領域範圍越來越大時,建構並維持知識庫的成本(人力、時間、經 驗)會越來越高。
* 檢索法:
  在給定大量對話語料的情況下 (如電話客戶服務對話),透過先進的資訊檢索方法,將使用者詢問的問題,去檢索對話語料庫中的問題,將最相似問題的回應,傳回給使用者,當作系統的對話回應。
* 優點:可運用現今相 當成熟的資訊檢索技術與工具,進行人機對話。
* 缺點:需要大量且清理乾淨的對話語料庫,才有可接受之成效。
* 序列對應生成法:
  運用近年來進展快速的深度神經網路針對大量的人類對話語料,訓練出從文字序列產生另一種文字序列(seq2seq) 的人工神經網路,用來回應使用者詢問的問題。
* 優點:可產生出對話語料中沒有出現過的回應,擴增人工撰 寫的回應,降低成本
* 缺點:訓練資料不足時容易產生不一致的回應或是無意義的文句。
### 計算幽默、笑話語料庫
  由於幽默機制的深度理解非常困難,計算幽默的研究,大略分為幽默的辨識(humor recognition)與幽默的生成 (humor generation)。不論是幽默辨識或幽默生成,都需要事先建構幽默或笑話語料,以探索幽默特徵,便於後續的辨識與生成。
  若沒有人工標記幽默程度,並多人進行確認,恐怕並非每則笑話對所有的人都有幽默的效果。
### 幽默生成技術
* 規則式幽默生成法
* 以資訊檢索為主的幽默生成法
* 以機器翻譯、序列生成技術為主的幽默生成法
### 幽默對話系統
  語料的蒐集、語言處理所需的外部資源,是極為重要的項目。根據認知理論發展出來的幽默特徵,在語料不夠大的時候,對自動化幽默偵測與生成會有幫助。而深度神經網路的方法,則是 具有潛力的技術與方向。
## 三、研究方法
1. 建構概念框架

2. 發展系統架構
3. 分析設計系統
## 四、笑話語料庫之建置
  從43個來源收集了5,615則笑話,其中包括27個公開網站(共2,777則笑話)、11本笑話書籍(共895則)、3個免費App(共156則)、一位個人的蒐藏(1,427則)、以及一位專門蒐集改寫笑話的臉書朋友貼過的笑話(360則)。
參考**都柏林核心集**(Dublin Core)對此笑話語料進行編目,共有16個欄位。

使用相似度判斷再由人工辨識相似度高的笑話,最後留下4,696則笑話。


  標記每則笑話的幽默等級或好笑程度從1到5,1為最不好笑,5為非常好笑。多數的笑話由2人評定(來自網站、書籍、App者),再取得共識決;而個人蒐集者則已有好笑程度的標記;臉書下載者則都一律給予程度4(好笑)之標記。表二顯示好笑程度及其則數,其中好笑程度3至5的比例佔72.2%。

## 五、檢索比對生成模組
  負責將使用者輸入的查詢語句,比對笑話語料,依照相關或相似程度,回應 一則笑話給使用者。搭配對話紀錄檔的運用,回應下一則相關的笑話,直到沒有相關的笑話為止。
採用向量空間模型(VSM)資訊檢索技術,並於後續採用Word2Vec詞向量進行查詢擴展(query expansion),以提升檢索的成效。
## 六、建置雛型系統
  在LINE平台上,建立一個機器人帳號,後台介接一套基於資訊檢索的笑話查 詢互動系統,並記錄使用者的查詢語句以及回饋資訊
可讓使用者以查詢語句觸發不同的笑話,而能與使用者的使用情境結合;會記錄使用者查過什麼詞彙、看過哪些笑話,而對同一使用者、相同查詢提供不重複的笑話。
## 七、觀察與評估系統


:::success
有使用者以「雞排」找不到笑話,透過 Word2Vec找出「雞排」的前10個近似詞為: 「臭豆腐、小籠包、黑輪、滷肉飯、關東煮、滷味、火鍋、酒論、排骨、雞腿」,依此再查詢笑話語料庫,即可找出相關的笑話。
:::

## 八、結論
有多種原因影響破冰機器人的成效:
1. 笑話語料的品質:越多好笑的笑話,越能達到效果
1. 好笑話的可及性:越容易找出 好的笑話(除查詢外,加上各種提示),越能達到效果。
1. 講笑話的場景:若聽眾中有人笑點低、容易發笑,也會影響其他聽眾。
  本研究以資訊系統開發研究法的循環步驟,實作出基於檢索技術的對話系統,並評估其運用的成效。經過紀錄檔分析、使用者回饋的改進後,加入Word2Vec的查詢擴展、關鍵詞查詢提示,以及好笑話(好笑程度3至5分)的隨機推薦,讓使用者找不到笑話的比例從25.4%降低到16.7%(降低了8.7%),而系統達到的破冰效果從27.9%提升到39.9%(提升了12%)。隨機笑話的功能,讓使用者連檢索的動作都不需要,其使用率(82.7%)比查詢(17.3%)高出許多。這與目前各種資訊平台,根據使用者的使用紀錄,自動推薦而降低使用者自己檢索內容的功能類似(如YouTube、Facebook),印證了在某些應用上推薦功能已凌駕檢索功能的趨勢。後續的各類對話系統,建議應運用類似的推薦功能,以符合現今使用者的習慣與期待。
  綜合而言,本研究的重要性,不僅編製了正體中文幽默語料庫,也建置中文幽默對話應用系統。
  此外,在研究過程與結果中,提供了實證經驗與意涵:亦即笑話語料的豐富程度與品質(蒐集更多笑話且自動標記好笑程度),以及相對於被動檢索的自動推薦功能,是提升此類服務成效的重要研發工作。後續的研究,期望能以生成式方法產生幽默機制,平順自然的整合到圖書館虛擬參考服務或常見問答中,達到消解使用者抱怨程度、贏得信任等功用,以進一步提升圖書館服務的品質。