---
# System prepended metadata

title: 基於檢索方法的中文幽默對話系統之建置應用與評估

---

# 基於檢索方法的中文幽默對話系統之建置應用與評估
:::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]
## 一、前言
&emsp;&emsp;廣大的使用者透過對話介面(conversational user interface, CUI)提供各種主動、被動的客戶服務，如:報名、 通知、查詢、客服等。由於透過社交通訊平台的互動，可識別個別使用者，且新增 服務不需使用者安裝軟體，再加上行動載 具上語音識別與合成技術的進步與易用特性，使得CUI被視為是繼網頁(Web) 與應用程式(App)介面之後，==第三種重要的人機互動使用介面。==  
&emsp;&emsp;雖然人機對話系統的發展，已達商業應用階段，但多數以關鍵語句比對知識庫方式 回應使用者，使用起來仍有生硬、呆板、低 於預期之憾。要讓對話系統進步到更智慧、 更人性的階段，需要更多語言處理、人機互 動甚至幽默機制的相關研究。  
&emsp;&emsp;為了實作這樣的破冰機器人，我們運用圖書資訊領域的==採、編、典、藏、用==概念，先評估各種笑話來源約40幾種，再廣泛的取樣各來源的笑話約5,000則，使此 語料具備多樣性，繼而編製詮釋資料，如笑話來源、笑話主題、好笑程度等，以便於後續的典藏、持續的更新。  
## 二、文獻探討
### 文字對話系統

* 規則法
    &emsp;&emsp;可運用Artificial Intelligence Markup Language(AIML)人工智慧標註語言，針對某特定領域，人工撰寫對話語料庫，或是從客服實際對話紀錄中，將問題與回應轉成AIML知識庫，讓 AIML比對引擎，自動比對使用者問題，並做適當回應。
    * 優點：初期系統建置快速、系統的回應可預期並容易解釋  
    * 缺點：當要回應的領域範圍越來越大時，建構並維持知識庫的成本(人力、時間、經 驗)會越來越高。  
* 檢索法：

    &emsp;&emsp;在給定大量對話語料的情況下 (如電話客戶服務對話)，透過先進的資訊檢索方法，將使用者詢問的問題，去檢索對話語料庫中的問題，將最相似問題的回應，傳回給使用者，當作系統的對話回應。
    * 優點：可運用現今相 當成熟的資訊檢索技術與工具，進行人機對話。
    * 缺點：需要大量且清理乾淨的對話語料庫，才有可接受之成效。
* 序列對應生成法：

    &emsp;&emsp;運用近年來進展快速的深度神經網路針對大量的人類對話語料，訓練出從文字序列產生另一種文字序列(seq2seq) 的人工神經網路，用來回應使用者詢問的問題。
    * 優點：可產生出對話語料中沒有出現過的回應，擴增人工撰 寫的回應，降低成本
    * 缺點：訓練資料不足時容易產生不一致的回應或是無意義的文句。
### 計算幽默、笑話語料庫
&emsp;&emsp;由於幽默機制的深度理解非常困難，計算幽默的研究，大略分為幽默的辨識(humor recognition)與幽默的生成 (humor generation)。不論是幽默辨識或幽默生成，都需要事先建構幽默或笑話語料，以探索幽默特徵，便於後續的辨識與生成。
&emsp;&emsp;若沒有人工標記幽默程度，並多人進行確認，恐怕並非每則笑話對所有的人都有幽默的效果。
### 幽默生成技術
* 規則式幽默生成法
* 以資訊檢索為主的幽默生成法
* 以機器翻譯、序列生成技術為主的幽默生成法
### 幽默對話系統
&emsp;&emsp;語料的蒐集、語言處理所需的外部資源，是極為重要的項目。根據認知理論發展出來的幽默特徵，在語料不夠大的時候，對自動化幽默偵測與生成會有幫助。而深度神經網路的方法，則是 具有潛力的技術與方向。
## 三、研究方法
1. 建構概念框架
![](https://i.imgur.com/KmbnmbW.png)
2. 發展系統架構
3. 分析設計系統
## 四、笑話語料庫之建置
&emsp;&emsp;從43個來源收集了5,615則笑話，其中包括27個公開網站(共2,777則笑話)、11本笑話書籍(共895則)、3個免費App(共156則)、一位個人的蒐藏(1,427則)、以及一位專門蒐集改寫笑話的臉書朋友貼過的笑話(360則)。
參考**都柏林核心集**(Dublin Core)對此笑話語料進行編目，共有16個欄位。
![](https://i.imgur.com/IpfJe9H.png)
使用相似度判斷再由人工辨識相似度高的笑話，最後留下4,696則笑話。
![](https://i.imgur.com/cD3rJNo.png)
![](https://i.imgur.com/wMUItR7.png)
&emsp;&emsp;標記每則笑話的幽默等級或好笑程度從1到5，1為最不好笑，5為非常好笑。多數的笑話由2人評定(來自網站、書籍、App者)，再取得共識決;而個人蒐集者則已有好笑程度的標記;臉書下載者則都一律給予程度4(好笑)之標記。表二顯示好笑程度及其則數，其中好笑程度3至5的比例佔72.2%。
![](https://i.imgur.com/fkMjGVT.png)

## 五、檢索比對生成模組
&emsp;&emsp;負責將使用者輸入的查詢語句，比對笑話語料，依照相關或相似程度，回應 一則笑話給使用者。搭配對話紀錄檔的運用，回應下一則相關的笑話，直到沒有相關的笑話為止。

採用向量空間模型(VSM)資訊檢索技術，並於後續採用Word2Vec詞向量進行查詢擴展(query expansion)，以提升檢索的成效。
## 六、建置雛型系統
&emsp;&emsp;在LINE平台上，建立一個機器人帳號，後台介接一套基於資訊檢索的笑話查 詢互動系統，並記錄使用者的查詢語句以及回饋資訊
可讓使用者以查詢語句觸發不同的笑話，而能與使用者的使用情境結合;會記錄使用者查過什麼詞彙、看過哪些笑話，而對同一使用者、相同查詢提供不重複的笑話。
## 七、觀察與評估系統
![](https://i.imgur.com/iwUKsR6.png)
![](https://i.imgur.com/DNLF946.png)
:::success
有使用者以「雞排」找不到笑話，透過 Word2Vec找出「雞排」的前10個近似詞為: 「臭豆腐、小籠包、黑輪、滷肉飯、關東煮、滷味、火鍋、酒論、排骨、雞腿」，依此再查詢笑話語料庫，即可找出相關的笑話。
:::
![](https://i.imgur.com/8AebPNs.png)


## 八、結論
有多種原因影響破冰機器人的成效: 
1. 笑話語料的品質：越多好笑的笑話，越能達到效果
1. 好笑話的可及性：越容易找出 好的笑話(除查詢外，加上各種提示)，越能達到效果。
1. 講笑話的場景：若聽眾中有人笑點低、容易發笑，也會影響其他聽眾。

&emsp;&emsp;本研究以資訊系統開發研究法的循環步驟，實作出基於檢索技術的對話系統，並評估其運用的成效。經過紀錄檔分析、使用者回饋的改進後，加入Word2Vec的查詢擴展、關鍵詞查詢提示，以及好笑話(好笑程度3至5分)的隨機推薦，讓使用者找不到笑話的比例從25.4%降低到16.7%(降低了8.7%)，而系統達到的破冰效果從27.9%提升到39.9%(提升了12%)。隨機笑話的功能，讓使用者連檢索的動作都不需要，其使用率(82.7%)比查詢(17.3%)高出許多。這與目前各種資訊平台，根據使用者的使用紀錄，自動推薦而降低使用者自己檢索內容的功能類似(如YouTube、Facebook)，印證了在某些應用上推薦功能已凌駕檢索功能的趨勢。後續的各類對話系統，建議應運用類似的推薦功能，以符合現今使用者的習慣與期待。  

&emsp;&emsp;綜合而言，本研究的重要性，不僅編製了正體中文幽默語料庫，也建置中文幽默對話應用系統。  
&emsp;&emsp;此外，在研究過程與結果中，提供了實證經驗與意涵:亦即笑話語料的豐富程度與品質(蒐集更多笑話且自動標記好笑程度)，以及相對於被動檢索的自動推薦功能，是提升此類服務成效的重要研發工作。後續的研究，期望能以生成式方法產生幽默機制，平順自然的整合到圖書館虛擬參考服務或常見問答中，達到消解使用者抱怨程度、贏得信任等功用，以進一步提升圖書館服務的品質。  
