摘要:提高答疑的智能性是目前答疑系統研究的重點,為此提出一種語義消歧算法SDA(Semantic Disambiguation Algorithm),它可以更好的解決一詞多義的問題。在此基礎上提出一種基于語義的問題相似度算法SQS用于提高答疑系統中問題與答案的匹配準確度,實驗表明,這種算法提高了答疑的準確性和智能性。
關鍵詞:智能答疑系統;語義分析;SDA;SQS
中圖分類號:TP311文獻標識碼:A文章編號:1009-3044(2008)25-1506-02
Research on Semantic-based Intelligent Question and Answering Technology and Its System Implementation
GUO Xiao-yan
(Zhuhai College, Jilin University, Zhuhai 519071, China)
Abstract: How to improve the intelligence is the emphases of question analysis, SDA (Semantic Disambiguating Algoritthm)brought out for it. Using SDA could resolve the problem that a word maybe has many conception. Based on SDA bring out IQAS-SA (Intelligent Question and Answering System Based on Semantic Anasysis) with Hownet and special repository. It can help accurately finding answers and explantion about related question in corresponding repository. The practice indicates that the IQAS-SA can improves the accuracy and intelligence of the system.
Key words: IQAS; semantic analysis; SDA; SQS
1 引言
答疑的作用在于及時準確的解答學生疑問,幫助學生完成學習,在網絡教育中由答疑系統來承擔。人工智能的技術發展為智能化答疑創造了有利的條件,網絡教育的興起使得研究智能化答疑顯得更為重要,同時學生的大量性參與學習也要求答疑系統能夠具有良好的智能性。
智能答疑是一個結合了人工智能、自然語言理解和自動搜索等技術的系統,它具有良好的人機交互方式,學生不需要抽取關鍵詞,直接采用自然語言的方式提問,系統自動分析學生的提問并在知識庫中搜索相關性最強的問題答案呈現給學生。
語義分析是自然語言理解研究的熱點,目的是要將生活中使用的自然語言轉化為一種合式定義的帶有簡單語義的形式語言[1]。語義分析包括很多方面的內容,本文研究的語義是指詞或短語的含義。
現階段的智能答疑系統受漢語語言特點的制約其智能性不強,主要表現在對自然語言式的問題理解容易產生歧義,問題的匹配不夠準確。因此針對智能答疑系統出現問題,提出一種語義消歧算法和問題相似度算法,對問題進行語義分析,消除歧義,提高答疑系統的智能性。
2 關鍵技術的研究
要提高智能答疑的智能性,關鍵在于準確理解學生的提問并匹配出真正相關的問題。受到漢語語言因素的影響這兩部分的準確性都不強,結合語義的方法對此可以加以改善,對問題中涉及的詞語進行語義分析理解整個問題再延至問題的匹配。這其中的關鍵技術包括知識庫的構建、自動分詞和問題匹配。
2.1 知識庫的構建
智能答疑系統要達到理想的結果,后臺要有結構性能良好的知識庫支撐。根據系統的實際需要和對所用材料的分析抽取實現知識庫的數據結構。
知識庫中包括問題庫、答案庫和關鍵詞庫,其中關鍵詞庫分為常用關鍵詞庫和專業關鍵詞庫兩個。問題庫、答案庫根據系統所設課程的類別組織,既便于問題搜尋又能方便教師管理知識庫、回答學生問題。
常用關鍵詞庫系統采用Hownet。Hownet又稱知網,是中科院的董振東教授在多年研究語義和自然語言理解的基礎上提出并負責開發的。它是一個以漢語和英語的詞語所代表的概念為描述對象,以揭示概念與概念之間以及概念所具有的屬性之間的關系為基本內容的常識知識庫[3]。要了解Hownet必須先弄清兩個定義,“概念”和“義原”。
“概念”是對詞匯語義的一種描述,每一個詞可以表達為多個概念。
“義原”是用于描述一個“概念”的最小意義單位,是“概念”的知識表示語言方式。所有的概念都可分解成各種各樣的義原。。
Hownet整個系統包括管理系統和中英文雙語知識詞典。知識詞典是整個系統的基礎,也是關鍵,在詞典中每個概念都是通過一個記錄實現的。如下所示:
NO=061553,W_C=男人,G_C=N,E_C=,W_E=husband,DEF=human|人,family|家,male|男
其中NO為概念編號,W_C、G_C、E_C分別表示漢語的詞語、詞性和例子,W_E、G_E、E_E分別是英語的詞語、詞性和例子,DEF是對概念的定義稱為語義表達式,由若干個義原組成,是Hownet的核心也是智能答疑研究的重點,必須通過它來計算問題相似度。
專業詞庫的建立。每類課程都有屬于自己的專業詞匯,而具有專業性很強的詞語很少有相應的電子詞典,即使有收錄部分詞匯也不是從語義的角度出發來解釋和組織的,所以系統參照Hownet詞典的基本結構建立屬于自己的專業詞庫。詞庫中記錄的形式與Hownet大致相同,除此之外,組織詞語要考慮詞語間的專業關系,比如說“數據挖掘”一詞,是“課程 | 計算機 | 數據庫技術”這樣一個關系。
搜集整理專業詞匯的方法采用自動和人工相結合的方式。自動的方式是從網上或者其他渠道收集關于某門專業課程的許多資料,資料經過一定的篩選整理出比較有代表性的文章。最后從眾多材料中通過自動分詞統計出這門課程的專業詞匯,在添加進詞庫之前還必須通過一個人工確認的過程。
2.2 語義消歧算法(SDA)
自動分詞作為理解學生提問即問題分析和構建專業詞庫的基礎,其重要性不言而喻。漢語自動分詞的方法大體上分為三類:基于字符串匹配(或稱為詞典)的分詞方法,基于統計的分詞方法和基于理解的分詞方法[4]。問題分析的問題分詞根據常用詞典庫和專業詞典庫進行字符串的逆向最大匹配,但采用基于字符串匹配進行自動分詞容易出現歧義,因為中文有一詞多義,如詞語“表”就是個多義詞。下面從Hownet詞典中摘取幾記錄:
NO=006160,W_C=表,G_C=V,E_C=把風寒~出來,把火~出來,W_E=administer medicine to bring out the cold,G_E=V,E_E=,DEF=cure|醫治
NO.=006161,W_C=表,G_C=N,E_C=一張~,~格,報,~統計~,報名~,時間~,登記~,申請~,填~,W_E=form,G_E=N,E_E=,DEF=document|文書,@record|記錄
NO.=006172,W_C=表,G_C=N,E_C=電~,水~,溫度~,煤氣~,W_E=dial,G_E=N,E_E=,DEF=tool|用具,*measure|測量
只有準確確定詞語的語義,才能在問題匹配中真正找到相關度強的問題序列。如問句“EXCEL的表分為幾類,是如何操作的?”和“數據內容如何在EXCEL中用表格的形式顯示?”,其中“表”和“表格”是兩個意義十分相近的詞語,僅自動分詞而不消歧兩個詞語最終的意義可能相差很遠,無法在問題匹配中被匹配出來。
如何消除自動分詞產生的歧義呢?采用計算詞語相關性的方法判斷詞語語義分類達到消歧的目的。詞語相關性是指兩個詞語之間互相關聯的程度,它和語義相似度雖是兩個不同的概念,卻有著密切的關系,詞語相關性可以通過詞語的語義相似度來計算,最終消除歧義歸結到如何計算語義相似度。如何對詞語進行消歧,具體步驟如下:
1)調用分詞模塊,將初始問題分為若干個詞語。目前的分詞內容都是基于課程學習的,出現的任何詞語可以把它歸結為是知識中的一部分,這是初始的模糊分類。
2)通過專業關鍵庫匹配出的詞語,對它的分類是{知識|課程名|專業名詞},當然不存在歧義的問題。
3)不存在歧義的詞語如提問詞“如何”、“為什么”等等及其他詞之類的詞語根據語義詞典匹配好它們的語義分類。
4)存在有歧義的詞語。將所有分出的詞語和在HowNet中其可能代表的語義構成一個二維矩陣 ,共有m個詞語,Wi表示第i個詞語,(Wi1Wi2…Win)則是Wi中所代表的n個語義,n為所有詞語所代表語義最大數。如果Wi的實際語義數沒有達到n個,則余下全部表示為0,Sim(a,0)=0。兩兩計算語義相似度,其和最大的語義相似度就為各個詞語所代表的具體語義(如公式(1)所示),同時保存它的語義序號、詞性、詞頻的信息。
(1)
5)不斷循環,直到所有詞語的語義分類全部完成。
SDA算法如下所示:
圖1 SDA算法
計算詞語相似度要對兩個語義表達式做相似度計算,其算法參考中科院劉群等提出的方法,基本原理見參考文獻[2]。
2.3 問題基于語義的問題相似度算法SQS
如何在詞語相似度的基礎上計算問題相似度呢,SDA算法確定好問題中每個關鍵詞的義項即詞語具體概念,基于語義的問題相似度算法SQS(Semantic Question Similarity)即兩個問題間的相似度就通過計算詞語相互間的義項相似度,得到問題相似度。其具體算法如下:
對問題進行自動分詞,確定兩個問題Q和Qi的關鍵詞集合C和Ci。C是初始問題關鍵詞信息集合(K1…Kj…Kn),Ci是與之匹配的問題關鍵詞信息集合(W1…Wi…Wm)。
根據詞語相似度分別確定C和Ci中每個關鍵詞的義項,詳見2.2SDA算法。
計算問題Q和Qi的相似度轉換為計算兩個關鍵詞集合C和Ci的相似度,計算公式如下所示:
(2)
其中,C是初始問題關鍵詞信息集合(K1…Kj…Kn),Ci是與之匹配的問題關鍵詞信息集合(W1…Wi…Wm),Max (Kj,Wi)是集合C中第j個關鍵詞Kj與集合Ci任意一個關鍵詞Wi中匹配最大的義項相似度,△βj是Kj在初始問題中所占的比重。
問題匹配的任務是根據問題分析后抽取的關鍵詞信息在問題庫中進行搜尋,經過計算獲得與學生的提問相關性最強的若干問題序列(Q1,Q2……Qn)。為提高搜索和運行速度,先利用自動分詞及消除歧義的方法對整個問題庫中的問題做一個預處理,將問題庫中所有問題相關的關鍵詞信息存放在一個臨時庫中。問題匹配時就將學生提問中的關鍵詞與問題庫中的問題關鍵詞進行比較,計算詞語間的相似度后再計算兩個問題之間的相關度,最后將相關性最強的n個問題信息返回給系統。
由于事先利用語義相似度原理對基于詞典匹配的自動分詞的結果進行消歧,而問題相關度的計算最終也落在詞語的相似度計算上了,在語義基礎上借鑒Hownet特有的計算方法通過分詞、語義分析、問題匹配等一系列的方法保證最終問題答疑結果較好的準確性,提高系統的智能性,這也是對智能答疑系統進行研究改進的主旨所在。
3 結束語
智能答疑的研究國內外都做過很多工作,但國內這方面結合語義的研究還不很多,語義在人工智能的應用也是日益受到重視,相信將會使用到更廣的領域。因此研究從語義的角度結合Hownet語義知識庫和專業詞庫,結合詞語語義相似度提出一種語義消歧算法并應用于智能答疑系統的問題相似度算法。改進后的系統在E-Learning系統中得到部分應用,并取得了較好的結果。系統還有很多方面需要進一步研究,如計算語義相似度時考慮義原的其它關系,專業詞庫資料的自動分類,提高語義分析的效率等等。
參考文獻:
[1] 姚天順,朱靖波. 自然語言理解—一種讓機器懂得人類語言的研究[M].北京:清華大學出版社,2002.
[2] 劉群,李素建. 基于《知網》的詞匯語義相似度計算[J].中文計算語言學,2002,7(2):59-76.
[3] 董振東,董強. 知網[EB\\OL].http://www.keenage.com.
[4] Deborah L, Guinnerss M.Question Answering on the Semantic Web[J].IEEE intelligent Systems,2004.
[5] ELWORTHY D. Question Answering using a Large NLP System Proceeding of night Text Retrieval Conference[J].Text Retrieval Conference(TREC-9), 2000:156-165.