# 基於檢索方法的中文幽默對話系統之建置應用與評估 :::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. 建構概念框架 ![](https://i.imgur.com/KmbnmbW.png) 2. 發展系統架構 3. 分析設計系統 ## 四、笑話語料庫之建置   從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)   標記每則笑話的幽默等級或好笑程度從1到5,1為最不好笑,5為非常好笑。多數的笑話由2人評定(來自網站、書籍、App者),再取得共識決;而個人蒐集者則已有好笑程度的標記;臉書下載者則都一律給予程度4(好笑)之標記。表二顯示好笑程度及其則數,其中好笑程度3至5的比例佔72.2%。 ![](https://i.imgur.com/fkMjGVT.png) ## 五、檢索比對生成模組   負責將使用者輸入的查詢語句,比對笑話語料,依照相關或相似程度,回應 一則笑話給使用者。搭配對話紀錄檔的運用,回應下一則相關的笑話,直到沒有相關的笑話為止。 採用向量空間模型(VSM)資訊檢索技術,並於後續採用Word2Vec詞向量進行查詢擴展(query expansion),以提升檢索的成效。 ## 六、建置雛型系統   在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. 講笑話的場景:若聽眾中有人笑點低、容易發笑,也會影響其他聽眾。   本研究以資訊系統開發研究法的循環步驟,實作出基於檢索技術的對話系統,並評估其運用的成效。經過紀錄檔分析、使用者回饋的改進後,加入Word2Vec的查詢擴展、關鍵詞查詢提示,以及好笑話(好笑程度3至5分)的隨機推薦,讓使用者找不到笑話的比例從25.4%降低到16.7%(降低了8.7%),而系統達到的破冰效果從27.9%提升到39.9%(提升了12%)。隨機笑話的功能,讓使用者連檢索的動作都不需要,其使用率(82.7%)比查詢(17.3%)高出許多。這與目前各種資訊平台,根據使用者的使用紀錄,自動推薦而降低使用者自己檢索內容的功能類似(如YouTube、Facebook),印證了在某些應用上推薦功能已凌駕檢索功能的趨勢。後續的各類對話系統,建議應運用類似的推薦功能,以符合現今使用者的習慣與期待。   綜合而言,本研究的重要性,不僅編製了正體中文幽默語料庫,也建置中文幽默對話應用系統。   此外,在研究過程與結果中,提供了實證經驗與意涵:亦即笑話語料的豐富程度與品質(蒐集更多笑話且自動標記好笑程度),以及相對於被動檢索的自動推薦功能,是提升此類服務成效的重要研發工作。後續的研究,期望能以生成式方法產生幽默機制,平順自然的整合到圖書館虛擬參考服務或常見問答中,達到消解使用者抱怨程度、贏得信任等功用,以進一步提升圖書館服務的品質。