王 寧,張正霞,羅 勇
(1.山西省地震局,山西 太原 030021;2.太原大陸裂谷動(dòng)力學(xué)國(guó)家野外科學(xué)觀測(cè)研究站,山西 太原 030025)
隨著互聯(lián)網(wǎng)的發(fā)展,電子媒介已超越傳統(tǒng)媒介,成為當(dāng)今信息傳播的主流方式。地震科普也隨之轉(zhuǎn)型,通過(guò)微信公眾號(hào)、微博等多種方式向公眾傳遞科普知識(shí)[1-3]。公眾通過(guò)搜索、自動(dòng)問(wèn)答的方式主動(dòng)獲取科普知識(shí),成為學(xué)習(xí)、了解的重要途徑,但根據(jù)公眾提出的問(wèn)題,如何在科普問(wèn)答庫(kù)中找出相似的問(wèn)答對(duì),給出理想的答案,是其中的關(guān)鍵。
問(wèn)答系統(tǒng)的基本技術(shù)路線都是文本比較,包括用戶(hù)問(wèn)題與庫(kù)中問(wèn)題的比較,用戶(hù)問(wèn)題與庫(kù)中答案文本的比較等,在技術(shù)實(shí)現(xiàn)上主要是句子與句子的比較,實(shí)質(zhì)就是計(jì)算句子的相似度。因此,句子相似度計(jì)算是自動(dòng)問(wèn)答系統(tǒng)的關(guān)鍵技術(shù),直接影響自動(dòng)問(wèn)答系統(tǒng)的性能[4]。由于其在自然語(yǔ)言處理領(lǐng)域具有非常廣泛的應(yīng)用,對(duì)其相關(guān)研究也一直在進(jìn)行。根據(jù)其特點(diǎn),將句子相似度計(jì)算方法分為字面匹配相似度、語(yǔ)義相似度和結(jié)構(gòu)相似度三種類(lèi)型[5]。字面相似度一般采用最小編輯距離、Jaccard距離等方法;語(yǔ)義相似度包括詞頻-逆向文檔頻率(Term Frequency-inverse Document Frequency,TF-IDF)向量方法、余弦相似度等;結(jié)構(gòu)相似度計(jì)算的關(guān)鍵在于分析句子的句法結(jié)構(gòu)。
在一般應(yīng)用中,只計(jì)算句子的語(yǔ)義相似度就能夠達(dá)到要求。該文在地震科普問(wèn)答庫(kù)的基礎(chǔ)上,分別研究TF-IDF向量方法、余弦相似度、改進(jìn)的編輯距離等方法在地震科普問(wèn)答中的應(yīng)用結(jié)果,并根據(jù)防震減災(zāi)術(shù)語(yǔ)制作自定義詞典,研究該詞典在算法中的有效性。
問(wèn)答系統(tǒng)根據(jù)用戶(hù)輸入的問(wèn)題對(duì)問(wèn)答庫(kù)進(jìn)行檢索并返回檢索結(jié)果,其核心技術(shù)在于檢索與輸入問(wèn)題相似的句子,檢索過(guò)程分為三步,如圖1所示。首先,對(duì)輸入句進(jìn)行分詞,分詞結(jié)果的準(zhǔn)確性對(duì)后續(xù)過(guò)程有一定的影響;其次,提取相似句子候選集,即從句子庫(kù)中找出與輸入句相似的句子組成集合,可以提高相似句檢索的效率;最后,將輸入句與候選集中的句子進(jìn)行相似度計(jì)算,選擇相似度最大的句子作為最終結(jié)果。
圖1 相似句檢索過(guò)程Fig.1 The process of similar sentence retrieval
如果一個(gè)句子中與輸入句相同或者同義的詞越多,兩個(gè)句子相似的可能性就越大,即該句的權(quán)重越大。因此,采用倒排文檔索引[6]的方法對(duì)問(wèn)題庫(kù)進(jìn)行檢索,按照句子權(quán)重由大到小的順序選擇候選集。
由于只計(jì)算句子的語(yǔ)義相似度就能滿(mǎn)足研究所需,選取TF-IDF向量方法、余弦相似度、改進(jìn)的編輯距離等相似度計(jì)算方法,研究其在地震科普問(wèn)答中的應(yīng)用。
(1) 詞頻-逆向文檔頻率(Term Frequency-inverse Document Frequency,TF-IDF)向量方法。
TF-IDF是一種用于信息檢索(information retrieval)與文本挖掘(text mining)的常用加權(quán)技術(shù)。其主要思想是:若某個(gè)詞或者短語(yǔ)在某個(gè)句子中出現(xiàn)的頻率高,并且在其他句子中很少出現(xiàn),則認(rèn)為該詞或者短語(yǔ)可以作為區(qū)別該句與其他句子的特征[7]。
TF-IDF = TF * IDF,
(1)
式中:TF表示詞條(關(guān)鍵字)在文本中出現(xiàn)的頻率;IDF是一個(gè)詞語(yǔ)普遍重要性的度量。
(2)
式中:nij表示詞i在該文本j中出現(xiàn)的次數(shù);分母表示文本j中的總詞數(shù)。
(3)
式中:分子表示問(wèn)題庫(kù)中的句子總數(shù);分母表示包含詞語(yǔ)i的句子數(shù),如果該詞語(yǔ)不在問(wèn)題庫(kù)中,就會(huì)導(dǎo)致分母為0,因此一般情況下分母加1。
(2) 余弦相似度算法。
余弦相似度[8]是用向量空間中兩個(gè)向量夾角的余弦值作為衡量?jī)蓚€(gè)個(gè)體間差異大小的度量。余弦值越接近1,表明夾角越接近0度,表示兩個(gè)向量越相似。計(jì)算過(guò)程如下:
句子A:斷層是什么意思?
句子B:什么是斷層?
第一步:分詞。
句子A: 斷層 是 什么 意思?
句子B: 什么 是 斷層?
第二步:列出所有詞。
斷層 是 什么 意思
第三步:計(jì)算詞頻。
句子A: 斷層1,是1,什么1,意思1。
句子B: 斷層1,是1,什么1,意思0。
第四步:得出詞頻向量。
句子A:[1,1,1,1]
句子B:[1,1,1,0]
第五步:計(jì)算兩個(gè)句子的向量余弦值。
(4)
根據(jù)式(4)得到句子A與句子B的向量余弦值為0.85。
(3) 基于編輯距離的算法。
編輯距離是量化不同的字符串如何通過(guò)最小數(shù)目的操作進(jìn)行轉(zhuǎn)換[9],編輯操作有“插入”“刪除”“替換”三種。例如:
按照傳統(tǒng)的以字為單位計(jì)算編輯距離的方法,可以看出這例句中兩個(gè)句子的編輯距離為7。但是,在漢字中,單個(gè)的字往往是不具備意義的,詞語(yǔ)之間的替換代價(jià)不僅局限于字面上,如“喜歡”和“愛(ài)”在字面上替換代價(jià)大,但在語(yǔ)義層面替換代價(jià)很小。因此,車(chē)萬(wàn)翔等人[10]提出了改進(jìn)的編輯距離算法,以詞語(yǔ)代替字作為單位來(lái)計(jì)算編輯距離。
按照改進(jìn)的編輯距離算法,計(jì)算出這兩句話(huà)的編輯距離為4。因此,該文選用改進(jìn)的編輯距離算法進(jìn)行實(shí)驗(yàn)。
以上三種方法中,若候選集中多條句子的權(quán)重或者編輯距離相同,則選擇句子長(zhǎng)度與輸入句最相近的句子作為最終結(jié)果。
趙臻等人[11]曾采用初始數(shù)據(jù)集結(jié)合百度知識(shí)庫(kù)的方法構(gòu)建問(wèn)題庫(kù),筆者借鑒此方法,選用《地震與防震減災(zāi)知識(shí)200問(wèn)答》[12]中的問(wèn)題與百度知道地震專(zhuān)題中的問(wèn)題作為初始數(shù)據(jù)集T。依次選取T中的問(wèn)句作為百度知道的查詢(xún)條件,選擇查詢(xún)結(jié)果中的前5個(gè)標(biāo)題,篩除相同結(jié)果或者無(wú)查詢(xún)結(jié)果的句子,最終共采集340條句子作為數(shù)據(jù)集TS。對(duì)TS中的問(wèn)句與數(shù)據(jù)集T中的問(wèn)句依次進(jìn)行相似度計(jì)算。
為了客觀評(píng)價(jià)算法的整體性能,采用準(zhǔn)確率(precision)、召回率(recall)、F值來(lái)對(duì)算法進(jìn)行評(píng)價(jià)。其中,F(xiàn)值是綜合評(píng)價(jià)指標(biāo),為準(zhǔn)確率和召回率的調(diào)和平均值。當(dāng)F值較高時(shí),表明實(shí)驗(yàn)方法比較有效。
在實(shí)驗(yàn)語(yǔ)料的基礎(chǔ)上,對(duì)TF-IDF算法、余弦相似度算法、改進(jìn)的編輯距離算法進(jìn)行對(duì)比實(shí)驗(yàn),結(jié)果如表1所示。
表1 3種相似度算法的性能比較Table 1 Performance comparison of three similarity algorithms
表1的實(shí)驗(yàn)結(jié)果表明,在地震科普問(wèn)答的語(yǔ)義相似度檢索中,TF-IDF算法比其他兩種算法取得的效果好,準(zhǔn)確率、召回率和F值均高于其他兩種算法。
句子相似度算法都是以詞為基礎(chǔ)進(jìn)行計(jì)算,分詞結(jié)果準(zhǔn)確與否直接影響相似度計(jì)算的結(jié)果。在地震科普問(wèn)答中,涉及大量的專(zhuān)有名詞,若分詞工具的詞庫(kù)中無(wú)該專(zhuān)有名詞,就會(huì)導(dǎo)致在分詞時(shí)被分開(kāi),改變?cè)瓉?lái)的詞義。如:
“地震動(dòng)的衰減關(guān)系有哪些?”—>“地 震動(dòng) 的 衰減 關(guān)系 有 哪些 ?”
若分詞工具的詞庫(kù)中包含專(zhuān)有名詞A,不包含專(zhuān)有名詞B,且A和B之間存在包含關(guān)系,也可能會(huì)導(dǎo)致分詞結(jié)果不恰當(dāng)。如:
“震中距指什么”—>“震中 距指 什么”
鑒于以上情況,在分詞工具中加入自定義詞典,保證較高的準(zhǔn)確率。該研究收錄中華人民共和國(guó)國(guó)家標(biāo)準(zhǔn)《防震減災(zāi)術(shù)語(yǔ)第一部分:基本術(shù)語(yǔ)》和《防震減災(zāi)術(shù)語(yǔ)第二部分:專(zhuān)業(yè)術(shù)語(yǔ)》及一部分特殊詞語(yǔ),構(gòu)成防震減災(zāi)術(shù)語(yǔ)詞典,共490個(gè)詞。將該詞典運(yùn)用到分詞工具中,分詞結(jié)果如下所示:
“地震動(dòng)的衰減關(guān)系有哪些?”—>“地震動(dòng) 的 衰減 關(guān)系 有 哪些 ?”
“震中距指什么”—>“震中距 指 什么”
在加入自定義詞典的分詞基礎(chǔ)上,運(yùn)用TF-IDF算法在相同的語(yǔ)料中進(jìn)行相似度計(jì)算,研究自定義詞典對(duì)算法的影響,結(jié)果如表2所示。
表2 自定義詞典加入前后TF-IDF算法的性能比較Table 2 Performance comparison of TF-IDF algorithms to add custom dictionaries or not
由表2看出,加入防震減災(zāi)術(shù)語(yǔ)詞典后,準(zhǔn)確率提高了1.18%,說(shuō)明自定義詞典對(duì)算法有一定的影響。
上述研究結(jié)果表明,在地震科普問(wèn)答中,TF-IDF算法的F值比余弦相似度算法高2.41%,比編輯距離算法高19.61%,在分詞工具中加入防震減災(zāi)術(shù)語(yǔ)詞典,TF-IDF算法的F值提高了1.21%。
對(duì)匹配不正確的句子進(jìn)行分析可知,有部分句子的候選集中已獲取正確結(jié)果,但是最終結(jié)果未取到,是由于該研究選取了候選集中權(quán)重最大且句長(zhǎng)與輸入句最接近的句子作為最終結(jié)果,因此會(huì)導(dǎo)致選擇錯(cuò)誤。另外,由于候選集選擇時(shí)依賴(lài)詞的精確匹配,可能也會(huì)導(dǎo)致正確結(jié)果的流失,出現(xiàn)匹配錯(cuò)誤。
研究時(shí)選取三種句子相似度計(jì)算的方法,對(duì)比其在地震科普問(wèn)答語(yǔ)料中的性能,選取具有最優(yōu)性能的算法,加入防震減災(zāi)術(shù)語(yǔ)詞典,研究其對(duì)算法性能的影響。實(shí)驗(yàn)結(jié)果表明,TF-IDF算法在地震科普問(wèn)答中獲得較好的結(jié)果,加入防震減災(zāi)術(shù)語(yǔ)詞典可以有效提升算法的性能。
越是相似的句子,就擁有越多相同的詞,因此,為了提高算法的性能,今后可以在候選詞選擇模塊和相似度計(jì)算模塊中加入同義詞詞林,以Wordnet或者Hownet作為語(yǔ)義資源,計(jì)算句子的語(yǔ)義相似度,以再提高算法的準(zhǔn)確率和召回率。