作者:許凱平 / 臺灣大學計算機及資訊網路中心作業管理組副組長
如何讓網站訪客快速得到想要的資訊,又不用派人緊盯著留言板等著回答問題?除了整理FAQ之外,最常見的就是利用Google自訂搜尋引擎(CSE)了[1]。雖然CSE可以限制搜尋範圍,但是Google對於關鍵字的挑選卻不一定符合需求。本篇將介紹如何利用中研院所開發的文字探勘技術[2],對臺大的網頁建立關鍵字庫。然後在使用者撰寫問題的同時析出關鍵字以列出相關文章,建構自助式的解答服務。
前言
相較於常問詢答(FAQ)與搜尋引擎,留言板提供給使用者一個以自然語言直接陳述問題的管道,缺點是使用者需要等待留言板管理員的回覆。FAQ是服務提供單位,彙整一個期間的問題後所作的整理。相較於討論區,FAQ通常會較有條理,缺點是即時性較差。FAQ如其名,除了真的很常見的問題外,罕見的問題通常不會收納。如果使用者的問題符合長尾理論[3]的話,FAQ恐怕解決不到20%的使用者問題,紓解網站管理者工作量的能力有限。
將資訊分類呈現的方式可以讓使用者容易找到解答。例如臺大首頁的FAQ又分為語言學習、國內學生相關、生活資訊、國際學位生相關、網路相關與其他資訊六類。如果問題可以容易歸類,就可以按圖索驥找到答案。不過要耐著性子對問題或解答挑選一個適當的分類並不容易,所以一般人通常就直接請搜尋引擎幫忙了!
使用搜尋引擎
面對網際網路上海量的資料,如何找到有用的資訊以解答自己的問題?目前常用的方式就是使用搜尋引擎。舉例來說,臺大首頁信箱曾收到這樣的來函:「您好,昨天在聯合報上看到一則新聞,報導臺大計中有在網路上開設程式設計的解題技巧課程,不知網址為何?」先不思考關鍵字,直接將這封來函直接貼到Google搜尋列,會得到以下的結果:
圖一 整篇文章做搜尋
看起來Google會從留言中取出關鍵字,然後從他的資料庫中找出含這些關鍵字的網頁或文件,再依照關聯性加以排序呈現。我們不知道Google從這封留言中取出哪些關鍵字,但是從搜尋結果的標示(紅色字)可以反推出Google取出了「新聞、新問報導、聯合報、課程開設、程式、設計」等關鍵字。假設我們自己挑,可能就不會挑出一樣的關鍵字。手工挑選更有可能切中問題要旨,例如新聞、聯合報並不是重點,不會挑來做關鍵字,但很有可能會加入臺大這個關鍵字。
其次,我們看到搜尋結果除了臺大的網頁外還有其它臺大以外的網頁,我們可以加入site關鍵字限制結果只顯示位於臺大網域的網頁。搜尋結果如下,只有一個,與Google自動取出的關鍵字並沒什麼顯著差異。
圖二 以site參數指引Google 做限制搜尋
不以整篇貼文搜尋,改以「聯合報 新聞 臺大計中 網路 程式設計 解題技巧課程 網址」等句子內的詞彙進行查詢得到結果如下。可能因為過多的詞彙,結果並不十分令人滿意。
圖三 以詞彙查詢
如前所述,如果再將詞彙加以手工挑選,以「臺大計中 程式設計 解題技巧課程」查詢,結果似乎就比較有用。
圖四 以挑選過的詞彙查詢
關鍵字字庫的建立
如何讓一個程式自動回答使用者的問題?正攻的話要先從FAQ建立知識庫,然後對貼文進行剖析建立語意樹,再從知識庫建構回答,顯然這是人工智慧的問題。使用統計的方法就相對簡單,與問句出現一樣字彙的網頁就是可能是解答:我們只要解決如何從貼文中取出可以找到答案的關鍵字即可。
關鍵字字庫的建立除了「常識」之外,還可以從使用者的搜尋記錄與網頁內容產生。Google CSE 可以提供每個統計週期前二十個關鍵字的使用次數。以過去一年(2013年11月13日 - 2014年11月13日)內使用臺大首頁上Google自訂搜尋引擎的進行582,065查詢中,前二十的關鍵字如下所示。值得注意的是,前二十合計34,370次查詢,只佔總查詢量不到6%,頗有「長尾」的分布特徵。
圖五 熱門關鍵字
接下來我們來探討如何從網頁內容取出關鍵字。如果以整篇文章放入Google進行搜尋,如上所述,Google會以自己的資料庫從中取出關鍵字,然後以這些關鍵字進行搜尋。因為Google並沒有提供從文章抽取關鍵字的服務,我們要自己找辦法。建立關鍵字庫,首先要從文章中的句子斷出詞彙,再進行挑選。網路上免費的斷詞系統不少,但是支援繁體中文的似乎只有中研院中文斷詞系統。這個系統是由數位典藏國家型科技計畫所開發的服務,可以將一篇文將中的詞彙與未知詞(辭典中沒有的詞)取出。
圖六 中研院斷詞服務
以第三百九十六期臺大校園焦點「臺大躍昇之契機:向西方取經──晚秋的MIT論壇」的內文當作輸入資料,送到斷詞系統剖析,結果如下:
圖七 中研院斷詞結果
與已知詞比較,似乎未知詞更有意義(值得再討論),所以我們就將臺大的網頁取出內文一一送至斷詞系統,以得到每個網頁的未知詞,最後統計出前五十個未知詞如下:
圖八 網頁常見未知詞
留言即時建議功能之製作
自動建議系統的功能包含兩個部分,關鍵字的管理與留言板加入建議的功能。如何加入建議的功能,舉例來說,可以將原來的輸入區左移,在右側留空間表列建議網頁。當使用者輸入他的問題時,系統就同時以關鍵字庫的詞彙,比對使用者輸入的內容,再將符合的詞彙送到Google CSE進行搜尋。
圖九 具有自助式服務的留言板
結語
本文介紹如何運用文字探勘與即時搜尋的概念與技術,為留言板增加自助式服務的功能。至於使用者體驗到的效果如何,尚待進一步的驗證。驗證方法可以考慮在使用者點選建議連結的時候加以記錄,如果使用者最後沒將問題送出的話,應該可以視為已經解決了他的問題。
後記
本文是根據本中心程式組張文瀞小姐在進行「臺大首頁-網頁問題意見信箱」改版時,找我討論的一些記錄所整理出來的。很可惜還沒看到新版上線,張小姐就已經去世了,撰此文以為記。
參考資料
[1]Google自訂搜尋引擎
https://www.google.com/cse/
[2]中研院斷詞系統
http://ckipsvr.iis.sinica.edu.tw/
[3]長尾理論
http://en.wikipedia.org/wiki/Long_tail