劉震,肖文顯
(河南科技學(xué)院,河南新鄉(xiāng)453003)
中文問答系統(tǒng)是信息檢索技術(shù)的一個(gè)重要分支,采用全新的檢索理論,對(duì)現(xiàn)有的基于關(guān)鍵字技術(shù)的信息檢索的不足之處進(jìn)行了有效的補(bǔ)充,是新一代信息檢索的研究方向[1].
國(guó)外在問答系統(tǒng)的研究與應(yīng)用方面發(fā)展較為迅速,這是因?yàn)榛谟⑽牡木浞ǚ治龊驮~法分析都比較成熟,基于英文的語料庫和測(cè)試語料庫也非常多,而且大部分都開源[2],所以國(guó)外的問答系統(tǒng)的發(fā)展比較領(lǐng)先.相對(duì)而言,國(guó)內(nèi)在自動(dòng)問答系統(tǒng)方面的研究存在著很大的差距.本文在深入研究了大量國(guó)內(nèi)外問答系統(tǒng)的基礎(chǔ)上,結(jié)合中文信息處理所具有的特點(diǎn),提出了一個(gè)基于語句相似度計(jì)算的中文問答系統(tǒng)模型,在些基礎(chǔ)上,構(gòu)建了基于常見問題集的中文問答系統(tǒng).
在中文問答系統(tǒng)中,用戶提出問題后,需要從數(shù)據(jù)庫的問題庫中查找與用戶問題最相似的問句.常規(guī)的做法是計(jì)算用戶問題和候選問題庫中同類問句之間的相似度,當(dāng)相似度超過某個(gè)指定的閥值時(shí),相似度最大的就是用戶要找的句子;如果用戶問題和所有候選問題庫中的同類問句之間的相似度都小于閥值,則需要從語料庫或網(wǎng)絡(luò)中檢索和摘取相應(yīng)的答案[3].因此,語句相似度的定義及計(jì)算對(duì)于中文問答系統(tǒng)來說非常關(guān)鍵.
知網(wǎng)中有兩個(gè)主要概念:“概念”和“義原”,分別介紹如下[4]:
(1)概念:描述詞匯語義用的,是由詞表示的概念標(biāo)識(shí)符.
(2)義原:描述概念中用到的最基本的、不能再分割的最小意義單位.
1.2.1 領(lǐng)域分類 中文問答系統(tǒng)按照主題內(nèi)容所涉及的領(lǐng)域可分為專業(yè)領(lǐng)域的問答系統(tǒng)和面向開放領(lǐng)域的問答系統(tǒng).
1.2.2 特性分類 中文問答系統(tǒng)依據(jù)問題類型的特性,參考TREC會(huì)議評(píng)測(cè)的標(biāo)準(zhǔn),可以將問答系統(tǒng)分為:a.事實(shí)性問題問答系統(tǒng);b.羅列性問題問答系統(tǒng);c.定義性問答系統(tǒng)[5].
中文問答系統(tǒng)相對(duì)于西文自動(dòng)問答系統(tǒng)有以下幾個(gè)方面的特點(diǎn)[6]:
(1)中文詞語之間連續(xù)書寫,中文分詞是中文信息處理的基礎(chǔ),中文問答系統(tǒng)要分析問句和答案,首先要對(duì)句子進(jìn)行分詞處理;
(2)中文沒有像英語一樣的形態(tài)變化;
(3)中文句子的語法十分靈活,句子的類型沒有辦法枚舉,句子各成分之間的關(guān)系比較復(fù)雜,很難發(fā)現(xiàn)句子的規(guī)律;
(4)缺乏必要的語料庫的支持.
問句特征向量的提取,是指在中文分詞和詞性標(biāo)注的基礎(chǔ)上,去掉連詞、介詞、擬聲詞等虛詞,以及對(duì)于區(qū)分意義不大的高頻詞(比如“這一”)和低頻詞之后形成的關(guān)鍵詞序列[7].
中文問答系統(tǒng)是信息檢索的高級(jí)形式,其目的是希望用戶使用更為貼切自然語言的方式進(jìn)行提問,得到的也是一個(gè)比較接近自然語言的答案.中文問答系統(tǒng)就是在對(duì)用自然語言表達(dá)的問句作一定的分析處理,在理解其語義內(nèi)容的基礎(chǔ)上,根據(jù)一定的算法或采取一定的策略進(jìn)行檢索,最后把答案從網(wǎng)頁或文檔中提取出來,呈現(xiàn)給用戶.
圖1 中文問答系統(tǒng)的整體框架Fig.1 Overall frame-chart of Chinese Q&A system
由圖1可知,基于語句相似度的中文問答系統(tǒng)由3部分組成,分別是問句預(yù)處理、語句相似度計(jì)算和答案抽取.
(1)問句預(yù)處理模塊主要包括:中文分詞和詞性標(biāo)注、問句類型分析、關(guān)鍵詞提取和關(guān)鍵詞擴(kuò)展.
(2)語句相似度計(jì)算模塊主要包括詞語相似度計(jì)算、詞形相似度計(jì)算、詞序相似度計(jì)算、結(jié)構(gòu)相似度計(jì)算、句長(zhǎng)相似度計(jì)算、語義相似度計(jì)算和語句相似度計(jì)算.
(3)答案抽取模塊主要包括相似度排序、強(qiáng)制性關(guān)鍵詞篩選、答案輸出和用戶結(jié)果顯示.
中文分詞是中文信息處理的基礎(chǔ),由于漢語是分詞連寫的,要對(duì)問句進(jìn)行理解,還要對(duì)分詞之后的詞語進(jìn)行詞性標(biāo)注.問句類別確定的目的是確定答案的語義類別以及對(duì)問句采用何種策略.在確定問句類別和要搜索的答案類別之后,才可以運(yùn)用一些特殊的策略和技術(shù)去分析問句和進(jìn)行問句相似度的計(jì)算,最終生成問題的答案.經(jīng)過分詞和詞性標(biāo)注之后,進(jìn)行信息檢索的輸入部分就是問句的關(guān)鍵詞,它直接影響到后面的檢索結(jié)果.
中文問答系統(tǒng)評(píng)價(jià)的標(biāo)準(zhǔn)是使用該系統(tǒng)進(jìn)行信息檢索的精度和召回率,定義如下:
(1)詞語相似度以知網(wǎng)作為系統(tǒng)的語義知識(shí)庫,主要包括詞語相似度計(jì)算、義原相似度計(jì)算、虛詞概念相似度計(jì)算和實(shí)詞概念相似度計(jì)算.
(2)詞形相似度反映兩個(gè)句子中詞語在形態(tài)上的相似程度,以兩個(gè)句子中所含有相同詞的個(gè)數(shù)來衡量.
(3)詞序相似度就是句子A和B的詞序相似度.
(4)結(jié)構(gòu)相似度漢語句子結(jié)構(gòu)相似度主要反映兩個(gè)句子在結(jié)構(gòu)上的相似性,該方法的主要思想是:根據(jù)兩個(gè)漢語句子分詞和詞性標(biāo)注之后,所得到的詞類序列,結(jié)合不同詞類的權(quán)重,進(jìn)行詞類序列匹配,得到最優(yōu)的匹配結(jié)果.
(5)句長(zhǎng)相似度反映兩個(gè)句子在長(zhǎng)度形態(tài)上的相似程度.
(6)語義相似度是設(shè)兩個(gè)句子S1和S2,S1包含的詞為w11、w12、…、w1m,S2包含的詞為w21、w22、…、w2n,則詞語 w1i(1≤i≤m)和 w2j(1≤j≤n)之間的相似度表示為 Sim5(w1i,w2j).
(7)語句相似度反映兩個(gè)句子之間的相似程度.通常表示為0~1之間的一個(gè)數(shù)值,0表示不相似,1表示完全相似,數(shù)值越大表示兩個(gè)句子越相似.
系統(tǒng)的關(guān)鍵在于問題句子和數(shù)據(jù)庫中標(biāo)準(zhǔn)問句之間相似度的計(jì)算,顯示用戶結(jié)果的時(shí)候,需要根據(jù)相似度進(jìn)行排序,另外,系統(tǒng)也需要設(shè)置一個(gè)閥值threshold,只有語句相似度大于threshold的時(shí)候,才輸出檢索結(jié)果.通過強(qiáng)制性關(guān)鍵詞表對(duì)檢索的結(jié)果進(jìn)行過濾,去掉和用戶檢索結(jié)果無關(guān)的結(jié)果,以用戶較為熟悉的論壇風(fēng)格輸出用戶檢索的結(jié)果.為了滿足不同用戶的瀏覽習(xí)慣,用戶可以自己訂制檢索結(jié)果的顯示風(fēng)格,包括:每頁顯示的記錄的條數(shù)、頁面的CSS風(fēng)格等.
利用語句相似度計(jì)算來實(shí)現(xiàn)的中文問答系統(tǒng),與一些知識(shí)庫的相關(guān)信息都有非常緊密的聯(lián)系,需要一個(gè)數(shù)據(jù)庫來存放,從便于操作和方便的角度出發(fā),我們采用Access 2003作為后臺(tái)數(shù)據(jù)庫管理系統(tǒng).3.1.1問題庫的分析與表示 對(duì)于構(gòu)建一個(gè)基于常見問題集的中文問答系統(tǒng),首先需要一個(gè)常見問題庫作為系統(tǒng)的基礎(chǔ)支撐,考慮到常見問題可能存在一問多答的現(xiàn)象,所以設(shè)計(jì)了表1和表2來存儲(chǔ)常見問題及其答案.
表1 Questions的存儲(chǔ)結(jié)構(gòu)Tab.1 Storage structure of Questions
表2 Answers的存儲(chǔ)結(jié)構(gòu)Tab.2 Storage structure of answers Answers
從表1和表2可以看出,兩個(gè)表之間是通過問題編號(hào)這個(gè)字段進(jìn)行關(guān)聯(lián)的,字段Question_Id在表Questions中作為主鍵,在表Answers中作為外鍵.
3.1.2 知網(wǎng)的分析與表示 知網(wǎng)是用知識(shí)描述語言描述的,給出了義原關(guān)系的樹狀結(jié)構(gòu)表示.中文問答系統(tǒng)采用Java語言實(shí)現(xiàn),為了提高系統(tǒng)的運(yùn)行效率,需要在程序運(yùn)行的開始,讀入所有的詞典內(nèi)容到內(nèi)存中.
基于常見問題集(FAQ)的中文問答系統(tǒng)是在已經(jīng)存在的問題數(shù)據(jù)庫中找到與用戶所提問句相匹配的問題,再在答案庫中找出與該問題相對(duì)應(yīng)的答案返回給用戶.系統(tǒng)分為建立候選問題集、計(jì)算語句相似度、FAQ庫的更新3個(gè)過程來處理.
3.2.1 候選問題集的建立 為了提高檢索效率,減小查找的范圍和語句相似度計(jì)算等這樣復(fù)雜的處理過程的效率,我們建立了一個(gè)候選問題庫,使得像計(jì)算相度這樣繁瑣的過程能夠在一個(gè)相對(duì)較小的范圍內(nèi)進(jìn)行,有利于提高檢索的效率.系統(tǒng)選出FAQ庫的20%的問句作為候選問題集.針對(duì)目標(biāo)問句中包含的某個(gè)詞語,想盡快地統(tǒng)計(jì)出常見問題庫中究竟有多少個(gè)問句包含有這個(gè)詞,我們使用下面的數(shù)據(jù)結(jié)構(gòu)來實(shí)現(xiàn).
圖2 常見問題集的中文問答系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)Fig.2 Data structures of Chinese question answering system in FAQ
在圖2中的FAQ庫中記錄了所有的Question-Answer對(duì),Pos表則記錄了FAQ庫中的每個(gè)Question在文件中的具體物理位置,反映到關(guān)系數(shù)據(jù)庫中記錄每個(gè)問句的ID號(hào)即可,Index表中的Word1,Word2,……是FAQ庫中的所有問句包含的詞語經(jīng)過排序后形成的鏈表.每個(gè)Wordi指向一個(gè)S鏈表,這個(gè)S鏈表中的每個(gè)節(jié)點(diǎn)記錄的是FAQ庫中含有Wordi的一個(gè)問句的句子ID號(hào).
3.2.2 語句相似度的計(jì)算 所用的方法是計(jì)算候選問題集合中的每個(gè)問句和目標(biāo)問句之間的相似度,然后對(duì)計(jì)算出來的各種相似度的結(jié)果進(jìn)行加權(quán)計(jì)算,對(duì)應(yīng)的相似度最大的問句就是我們要找的句子.
信息檢索系統(tǒng)總是假定存在一個(gè)文檔集與用戶的查詢是相關(guān)的,而基于常見問題集的中文問答系統(tǒng)則假定常見問題集中存在一個(gè)正確的“答案”.
3.3.1 測(cè)試集和評(píng)測(cè)標(biāo)準(zhǔn) 實(shí)驗(yàn)采用的測(cè)試集是從某大學(xué)校長(zhǎng)信箱的“問題-答案”對(duì)中經(jīng)過人工收集整理來的,從而形成常見問題庫,共有304個(gè)問句.
為了評(píng)價(jià)基于語句相似度的中文問答系統(tǒng)的性能,構(gòu)造了兩組測(cè)試集.第一組是從常見問題庫隨機(jī)抽取了問句124條;第二組是直接從FAQ庫中人工選擇有代表性的問句60條.評(píng)測(cè)時(shí)為了便于程序自動(dòng)統(tǒng)計(jì)和人工核對(duì),采用類似TREC的S@n(Success at n)方法,即正確答案在前n個(gè)結(jié)果中的比例.
對(duì)錯(cuò)判的評(píng)價(jià)主要考慮匹配到問句是否為正確答案,系統(tǒng)返回認(rèn)為正確而實(shí)際錯(cuò)誤,則認(rèn)為是發(fā)生錯(cuò)誤;對(duì)于系統(tǒng)沒有發(fā)現(xiàn)正確的匹配問句不在考察范圍內(nèi),取S@1.
3.3.2 實(shí)驗(yàn)結(jié)果及分析 實(shí)驗(yàn)采用傳統(tǒng)的VSM(向量空間模型)和基于語句相似度計(jì)算的問句匹配方法進(jìn)行測(cè)試,評(píng)測(cè)結(jié)果如表3所示.
表3 測(cè)試結(jié)果Tab.3 Test results
由表3可知,按照兩組數(shù)據(jù)的比較,第一組數(shù)據(jù)(從常見問題庫隨機(jī)抽取的問句)的S@1值偏低,經(jīng)仔細(xì)分析,發(fā)現(xiàn)錯(cuò)誤的原因是:一些問題比較隨意,包含有用的信息過少,比如:“不公平”這樣的問句包含的信息比較隨意;另一些問題沒有答案,比如:“校長(zhǎng)是哪個(gè)專業(yè)畢業(yè)的?”.第二組數(shù)據(jù)(從候選問題庫中選取的問句)的S@1值比較理想,但還是有近30%的問題答案出錯(cuò).經(jīng)仔細(xì)分析發(fā)現(xiàn),錯(cuò)誤的原因一方面是由于問句的類別識(shí)別不正確,另一方面是由于問句或答案中含有否定詞語,從而導(dǎo)致問句匹配不正確.按照兩種相似度方法比較,兩組測(cè)試集在相似度計(jì)算方法有很大的差別:VSM方法主要是從語句表面進(jìn)行分析,統(tǒng)計(jì)詞頻等信息;而本文基于語句相似度的問句匹配方法,利用了語義知識(shí)庫,是對(duì)語句的深層分析,提高了問句匹配的精度,對(duì)于傳統(tǒng)的VSM方法有一定的提高和改進(jìn).
計(jì)算機(jī)能否實(shí)現(xiàn)智能化,最直接的體現(xiàn)就是能否回答人類自然語言的問題.本文通過深入研究中文句子相似度的計(jì)算方法,對(duì)幾種相似度算法進(jìn)行分析、比較,提出了一個(gè)多特征加權(quán)的語句相似度算法,并將這種算法應(yīng)用到中文問答系統(tǒng),提出了一個(gè)中文問答系統(tǒng)模型,實(shí)現(xiàn)了簡(jiǎn)單的中文問答系統(tǒng).經(jīng)過實(shí)驗(yàn)證明,其問句匹配的準(zhǔn)確率明顯提高.如果能進(jìn)一步優(yōu)化計(jì)算效率,將語句的感情色彩考慮進(jìn)去,那么得到的答案將會(huì)達(dá)到最優(yōu),這些有待于以后加以研究.
[1]張亮,黃河燕,胡春玲.中文問答系統(tǒng)模型研究[J].情報(bào)學(xué)報(bào),2006,25(2):197-201.
[2]王宇,戰(zhàn)學(xué)剛,蔡建山.基于網(wǎng)絡(luò)的中文問答系統(tǒng)的研究[J].計(jì)算機(jī)工程與應(yīng)用,2006(7):162-165.
[3]張亮,馮沖,陳肇雄,等.基于語句相似度計(jì)算的FAQ自動(dòng)回復(fù)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].小型微型計(jì)算機(jī)系統(tǒng),2006,27(4):720-723.
[4]周法國(guó),楊炳儒.句子相似度計(jì)算新方法及在問答系統(tǒng)中的應(yīng)用[J].計(jì)算機(jī)工程與應(yīng)用,2008,44(1):165-167.
[5]王榮波,池哲儒.基于詞類串的漢語句子結(jié)構(gòu)相似度計(jì)算方法[J].中文信息學(xué)報(bào),2004,19(1):21-29.
[6]呂學(xué)強(qiáng),任飛亮,黃志丹,等.句子相似模型和最相似句子查找算法[J].東北大學(xué)學(xué)報(bào):自然科學(xué)版,2003,24(6):531-534.
[7]江敏,肖詩斌,王弘蔚,等.一種改進(jìn)的基于《知網(wǎng)》的詞語語義相似度計(jì)算[J].中文信息學(xué)報(bào),2008,22(5):84-89.