高蕾娜,史延楓,李艷丹
(1.成都大學 機械工程學院,四川 成都 610106;2.華中科技大學 機械學院,湖北 武漢 430074)
自動問答系統(tǒng)的主要功能是讓計算機能用自然語言來回答人們所提的問題.近年來,隨著網(wǎng)絡(luò)和信息技術(shù)的快速發(fā)展,結(jié)合人們快速獲取信息的愿望更進一步促進了自動問答技術(shù)的發(fā)展[1].自動問答系統(tǒng)一般包括3 個主要部分:問題分析、信息檢索和答案抽取.通過問題分析而得到的關(guān)鍵詞集需要提交給信息檢索模塊來查找相關(guān)的文檔,檢索系統(tǒng)的任務就是在已有的文檔庫中搜索和關(guān)鍵詞集相關(guān)的文檔.為了保證對任何問題都能找到相關(guān)的文檔,文檔庫必須足夠大.文檔庫也可從互聯(lián)網(wǎng)上下載,此時檢索模塊返回的是一堆相關(guān)的網(wǎng)頁.自動問答系統(tǒng)中的信息檢索模塊所用方法通常是計算候選問題集中每個問句和目標問句之間的相似度,對應的相似度最大的問句就是要找的句子.目前常用的句子相似度計算方法分為2 種[2-4]:一種是基于向量空間模型的詞頻—逆向文件頻率(Term Frequency-Inverse Document Frequency,TF-IDF)方法,一種是基于語義相似度的方法.第一種算法基于詞頻,沒有考慮語義,適用于大規(guī)模語料庫;第二種算法反映了語義間差異,但通常沒有考慮到詞語的權(quán)重信息.基于此,本研究將兩者結(jié)合,提出一種基于特定領(lǐng)域的加權(quán)語義相似度算法.由于該算法不僅考慮詞語語義,還考慮FAQ 庫詞語在句子中的權(quán)重信息,因而由此方法計算得到的相似度更具有合理性,并使查準率有所提高.
基于特定領(lǐng)域的加權(quán)語義相似度計算方法建立在2 個詞匯具有一定的語義相似性當且僅當它們在概念間的結(jié)構(gòu)層次網(wǎng)絡(luò)圖中存在一條通路(主要是上下位關(guān)系)這一假設(shè)的基礎(chǔ)上[5-6].分屬于不同概念領(lǐng)域的2 個詞匯之間不存在交集,因此它們之間的語義距離應為無窮大,其相似度為0.對于位于同一語義樹的2 個義原,綜合考慮義原樹的深度和密度因素的影響,可計算出2 個義原的相似度[7].用戶問句中不同詞語對于整個問句的貢獻是不同的,通常給主要詞語賦予較高權(quán)重,次要詞語賦予較低權(quán)重[8].一般而言,一個詞在一篇文檔中出現(xiàn)的頻率越高,其權(quán)重越大;文檔集中出現(xiàn)該詞的文檔越多,其權(quán)重越小.詞語權(quán)重的計算公式為,
式中,w(df,tg)為文檔df中詞語tg的權(quán)重,TF(df,tg)為文檔df中詞語tg的詞頻,N 為文檔集的文檔數(shù),n 為含有詞語tg的文檔數(shù),分母為規(guī)一化因子,目的是將值限定在[0,1]中.
設(shè)用戶問句,Q = {q1,q2,…,qm},qi為句子Q含的詞語,1 ≤i ≤m;設(shè)FAQ 庫中任一問句,Q' ={q'1,q'2,…,q'n},q'j為句子Q'的詞語,1 ≤j ≤n.根據(jù)相關(guān)的詞語權(quán)重計算方法可以得到序列,w ={w'1,w'2,…,w'n},其中w'j為q'j對應的權(quán)重.利用基于語義相似度方法,計算Q 和Q'中詞qi(1 ≤i ≤m)和q'j(1 ≤j ≤n)之間的相似度用s(qi,q'j)來表示,從而得到一個m × n 的矩陣,
則句子Q 中所有詞語與句子Q' 之間的相似度S(Q,Q')為,
同樣,以用戶問句Q 為參照,計算Q'和Q 中詞q'j(1≤j ≤n)和qi(1 ≤i ≤m)之間的相似度用s(q'j,qi)來表示,從而得到一個n ×m 的矩陣,
矩陣M(Q',Q)是M(Q,Q')的轉(zhuǎn)置陣,且s(qi,q'j)= s(q'j,qi).句子Q'中所有詞語與句子Q 之間的相似度S(Q',Q)為,
最后將兩值求平均就可以得到2 個句子最終的相似度Similarity(Q,Q'),
假設(shè)高血壓領(lǐng)域FAQ 庫中有3 個句子:
d1,高血壓每一期的眼底動脈癥狀有哪些?
d2,高血壓導致腦血管破裂造成眼底動脈硬化該怎么辦?
d3,高血壓對眼底動脈有影響嗎?
用戶問句Q:高血壓分為3 種危險程度,眼底動脈在不同階段有什么表現(xiàn)?
d1 包含的詞有:{高血壓,每一,期,眼底動脈,癥狀,有,哪些};
d2 包含的詞有:{高血壓,導致,腦血管,破裂,造成,眼底動脈,硬化,該,怎么辦};
d3 包含的詞有:{高血壓,眼底動脈,有,影響};
Q 包含的詞有:{高血壓,3 種,危險,程度,眼底動脈,不同,階段,有,什么,表現(xiàn)}.
FAQ 庫所有問句包含的所有詞有:{高血壓,每一,期,眼底動脈,癥狀,有,哪些,導致,腦血管,破裂,造成,硬化,該,怎么辦,影響}.
TF-IDF 和語義相似度計算的詳細過程可參考文獻[9],對于本研究提出的基于特定領(lǐng)域的加權(quán)語義相似度計算方法的具體步驟為:
d1 可表示為向量,
d2 可表示為向量,
d3 可表示為向量,
根據(jù)式(1)計算得到詞語權(quán)重,
易知,Q 與d1 的語義相似度為,
d1 與Q 構(gòu)成相似度矩陣為,
d1 與Q 的語義相似度為,
2 個句子最終的相似度為,
同理,Q 與d2 的語義相似度為,
d2 與Q 構(gòu)成相似度矩陣,
d2 與Q 的語義相似度為,
2 個句子最終的相似度為,
同理,Q 與d3 的語義相似度為,
d3 與Q 構(gòu)成相似度矩陣,
d3 與Q 的語義相似度為,
2 個句子最終的相似度為,
3 種相似度計算方法的結(jié)果如表1 所示.
由表1 可以看出,與用戶問句Q 最為接近的FAQ 文件應為d1,而在表1 中TF-IDF 方法這一列,Q 與d3 計算的相似度大于與d1 計算得到的結(jié)果,顯然與實際情況矛盾.對于語義相似度與加權(quán)語義相似度方法計算得到的結(jié)果符合實際情況,而加權(quán)語義相似度相對于前者,提高了與d1 的相似度,而對于不太相關(guān)的問題d2,反而減少了其相似度結(jié)果.通過上述分析可知,加權(quán)語義相似度可獲得較為正確的匹配結(jié)果.
表1 3 種相似度計算方法結(jié)果比較
自動問答系統(tǒng)充分利用網(wǎng)絡(luò)技術(shù)和人工智能的優(yōu)勢,使得用戶疑問既能夠得到及時有效的解答,又能節(jié)省時間、提高效率,而相似度匹配算法是信息檢索模塊的核心.本研究提出的基于特定領(lǐng)域的加權(quán)語義相似度計算方法由于考慮了詞語語義和權(quán)重2方面的信息,因此可獲得較好的匹配結(jié)果.
[1]鄭實福,劉挺,秦兵,等.自動問答綜述[J].中文信息學報,2002,16(6):46-52.
[2]王洋,秦兵,鄭實福.句子相似度計算在FAQ 中的應用[EB/OL].[2014-03-16].http://ir.hit.edu.cn/phpwebsite/index.php?module = documents&JAS-Document-Manager-op=downloadFile&JAS-File-id=17.
[3]Voorhees E.The TREC-8 question answering track report[C]//Proceedings of the 8th Text Retrieval Conference.Gaithersburg,MD:NIST,2002.
[4]王品,黃廣君.信息檢索中的句子相似度計算[J].計算機工程,2011,37(12):38-40.
[5]Rada R,Mili H,Bicknell E.Development and application of a metric on semantic nets[J].IEEE Trans Syst Man Cybern,1989,19(1):17-30.
[6]李文清,孫新,張常有,等.一種本體概念的語義相似度計算方法[J].自動化學報,2012,38(2):229-235.
[7]葛斌,李芳芳,郭絲路,等.基于知網(wǎng)的詞匯語義相似度計算方法研究[J].計算機應用研究,2010,27(9):2808-2810.
[8]張桂林.中文文本自動分類系統(tǒng)的研究與實現(xiàn)[D].吉林:吉林大學,2007.
[9]高蕾娜.老年慢性病無線監(jiān)控遠程關(guān)懷系統(tǒng)關(guān)鍵技術(shù)研究[D].武漢:華中科技大學,2009.