張振梅 劉 明 畢 利 高玉琢*
1(銀川市第二中學(xué)信息技術(shù)中心 寧夏 銀川 750004) 2(北京航空航天大學(xué)計(jì)算機(jī)學(xué)院 北京 100191) 3(寧夏大學(xué)信息工程學(xué)院 寧夏 銀川 750021)
信息檢索技術(shù)是現(xiàn)代社會(huì)學(xué)習(xí)、生產(chǎn)中的一項(xiàng)關(guān)鍵技術(shù),而信息檢索的過程既需要高效組織信息又要能理解用戶意圖[1-2]。經(jīng)典的信息檢索方法[3]將用戶的查詢和文檔轉(zhuǎn)化成向量空間中的向量,用向量之間的余弦相似度度量文本之間的相似度。這種方法基于詞條表層形態(tài)和詞頻統(tǒng)計(jì)對(duì)文本相似性進(jìn)行度量[3],被稱為向量空間模型VSM(Vector Space Model)。其認(rèn)為文本中含有相同形態(tài)的詞條越多則越相似,但是在VSM中,詞條被視為沒有語義涵義的字符,無法真正理解詞條的語義涵義,因此這種方法對(duì)于歧義詞等語義問題無法有效處理。查詢擴(kuò)展技術(shù)一定程度上解決了檢索系統(tǒng)對(duì)詞條語義的理解問題。查詢擴(kuò)展技術(shù)先利用本體等知識(shí)資源獲取與檢索詞最相關(guān)的幾個(gè)詞條,擴(kuò)展原始檢索詞;然后利用擴(kuò)展后的檢索詞進(jìn)行信息檢索,明顯提升了檢索結(jié)果的覆蓋范圍和命中用戶意圖的幾率。擴(kuò)展詞的相關(guān)程度決定了信息檢索的質(zhì)量,查詢擴(kuò)展的相關(guān)研究大多集中在檢索詞的擴(kuò)展上,查詢擴(kuò)展一般利用本體、關(guān)聯(lián)規(guī)則[5]或者語料統(tǒng)計(jì)方法[6-7]獲取相似的詞條作為擴(kuò)展詞。例如,徐博等提出了一種基于語料的查詢擴(kuò)展方法,其首先檢索獲取可信文本,然后從可信文本中選取詞語作為查詢擴(kuò)展詞進(jìn)行二次檢索獲取檢索結(jié)果[8]。馬斌等針對(duì)以上問題,利用外部本體中承載的詞條語義關(guān)系對(duì)基于關(guān)鍵詞的信息檢索方法進(jìn)行了擴(kuò)展[9]。Rekha利用偽相關(guān)反饋技術(shù)量化文檔中的詞語權(quán)重并擴(kuò)展查詢?cè)~[10]。黃承慧等基于外部知識(shí)詞典度量詞語之間的語義相關(guān)性進(jìn)行查詢擴(kuò)展;結(jié)合詞語相似度以及文本語義相似度計(jì)算文檔之間的相似度[11]。然而上述方法都基于詞袋模型假設(shè)。詞袋模型將文檔視為是詞條的無序集合,其獨(dú)立性假設(shè)忽略了文檔詞條的次序關(guān)系和文檔的篇章結(jié)構(gòu),而語序在文本語義表示中有著重要作用。例如:“老師借給我一本書”和“我借給老師一本書”有著相同的詞條,在傳統(tǒng)的詞袋模型中這兩個(gè)本文是等價(jià)的,然而其實(shí)際表達(dá)的語義是截然相反的。據(jù)我們所知,目前幾乎沒有研究工作在查詢擴(kuò)展中考慮到詞語的重要性和詞語分布因素。
針對(duì)信息檢索中詞語詞序分布和詞語語義建模的難題,本文基于查詢擴(kuò)展檢索技術(shù),利用中文詞義知識(shí)庫HowNet對(duì)檢索詞進(jìn)行了語義概念擴(kuò)展。在文本檢索過程中考慮了詞序、詞條分布和詞語語義關(guān)系等因素,設(shè)計(jì)了文本詞條順序和分布表達(dá)方式,同時(shí)區(qū)分表達(dá)了不同重要程度的詞語。實(shí)驗(yàn)表明,我們的方法既考慮了詞條語義,又考慮了詞條順序,取得了良好的檢索效果。
向量空間模型中,每一篇文檔和用戶查詢的信息都被看作空間中的向量,文本被定義為:
V(dj)=((t1,w1j),…,(ti,wij),…,(tn,wnj))i=1,2,…,n
(1)
式中:ti代表文本中的特征詞,wij是ti在文本dj中的權(quán)重。兩個(gè)文本的相似性可以利用向量之間的余弦相似性獲得,如圖1所示。
圖1 向量空間模型
目前信息檢索方法是Lucene[13]在VSM基礎(chǔ)上形成的相似度計(jì)算方法。特征量化方法如公式:
lengthNorm(t)}
(2)
式中:tf因子不再是傳統(tǒng)的特征詞頻率,而是特征詞真實(shí)頻率的平方根值;Idf因子取傳統(tǒng)反文檔頻率的對(duì)數(shù);t.getBoost是針對(duì)每個(gè)索引域的激勵(lì)因子;lengthNorm是長度因子,與字段內(nèi)的特征詞個(gè)數(shù)有關(guān),一個(gè)字段內(nèi)的特征詞個(gè)數(shù)越多,其長度因子越小。
在信息檢索時(shí),Lucene計(jì)算用戶查詢q與文檔d的相似度,并按照相似程度將將文檔呈現(xiàn)給用戶,如公式:
Score(q,d)=Coord(q,d)×queryNorm(q)×
W(t,d)
(3)
利用式(2)代入即得:
Score(q,d)=Coord(q,d)×queryNorm(q)×
t.getBoost()×lengthNorm(t,d)}
(4)
式中:q代表query,d代表document,t代表term。Coord(q,d)的值表示文檔d中包含q的數(shù)目。t.getBoost()是針對(duì)每個(gè)索引域的激勵(lì)因子。tf(tind)所搜項(xiàng)t在文檔d中出現(xiàn)的頻率,queryNorm(q)是q的歸一化因子,保證不同檢索結(jié)果評(píng)分是有可比性的。
本體承載了概念的語義關(guān)系,可用于對(duì)的檢索詞進(jìn)行擴(kuò)展。例如,當(dāng)用戶輸入的檢索詞“計(jì)算機(jī)”,可以被擴(kuò)展為“PC,電腦,筆記本電腦”;利用語義本體獲得與查詢?cè)~最相關(guān)的詞語作為擴(kuò)展詞,利用擴(kuò)展詞對(duì)搜索引擎進(jìn)行檢索會(huì)返回包含更多信息的頁面,命中用戶意圖的概率也會(huì)更高。而概念之間的相似度可由圖2所示的義原層次樹獲得。對(duì)于不同的義原,義原節(jié)點(diǎn)在樹中的最短距離越長,其相似度越低[14]。可以使用式(5)獲取與檢索詞最相近的一組概念。
(5)
式中:dis(Oi,Oj)是義原Oi和Oj在義原層次樹中的最短路徑長度,a是可調(diào)參數(shù),通常取1。我們對(duì)檢索展詞的選取采用排序與閾值結(jié)合的方式,將用戶輸入的每個(gè)檢索詞輸入HowNet,獲取跟輸入檢索詞語義相似度排序前3,并且語義相識(shí)度大于0.5的詞語作為該檢索詞的擴(kuò)展詞,完成語義相似度的擴(kuò)展。圖3展示了查詢擴(kuò)展檢索與傳統(tǒng)檢索的區(qū)別。
圖2 義原層次樹
圖3 查詢擴(kuò)展檢索原理圖
目前的查詢擴(kuò)展研究都集中在利用知識(shí)庫、用戶日志或者統(tǒng)計(jì)方法獲取檢索擴(kuò)展詞,再將擴(kuò)展詞輸入到搜索引擎獲取的檢索結(jié)果,目前檢索方法存在以下問題:
(1) 無法反映檢索詞語的重要程度,原始輸入詞語和查詢擴(kuò)展詞語在重要程度和語義上存在一定的差別,傳統(tǒng)的方法無法體現(xiàn)這種差別。
(2) 沒有考慮檢索詞的分布情況,不同信息在文檔中占據(jù)的比例不同,而用戶感興趣的內(nèi)容應(yīng)該是文檔的主要內(nèi)容。如果用戶檢索詞分布在文檔中僅僅占據(jù)很少比例,這樣的文檔不應(yīng)該是首選的文檔。
(3) 沒有考慮詞序、詞距等因素。當(dāng)用戶輸入的查詢?cè)~包含多個(gè)詞條時(shí),不同的詞語序列會(huì)導(dǎo)致完全不同的文檔含義,傳統(tǒng)方法忽略了詞語的序列信息。
通常情況下,擴(kuò)展詞對(duì)文檔的相似性貢獻(xiàn)往往低于用戶輸入的原始檢索詞對(duì)文檔的相似性貢獻(xiàn),因此擴(kuò)展詞的權(quán)重也應(yīng)該較初始檢索詞的權(quán)重低?;谶@樣的直覺,本文在計(jì)算相似性過程中引入了擴(kuò)展詞權(quán)重衰減因子來解決這個(gè)問題。我們初始檢索詞權(quán)重保持不變,針對(duì)擴(kuò)展詞進(jìn)行了權(quán)重衰減,具體計(jì)算方式如公式:
distance(q)×decrease×lengthNorm(t,d)}
(6)
式中:TF-IDF因子是通過式(2)計(jì)算出的結(jié)果,保留了TF-IDF權(quán)重對(duì)特征詞分布、特征詞權(quán)重以及特征詞數(shù)量比重的依賴。decrease是我們引入的擴(kuò)展詞的權(quán)重衰減因子,衰減因子的大小是初始檢索詞與擴(kuò)展詞在WordNet中的語義相似度。如果是t用戶輸入的初始檢索詞,則權(quán)重為1;如果是擴(kuò)展檢索詞,則設(shè)定為0.5。LengthNorm是我們引入的詞語分布因子度量因子。
詞袋模型無法衡量文本的詞語順序,詞語順序的不同也會(huì)導(dǎo)致文本語義的不同。用戶輸入檢索詞的順序反映了用戶的檢索意圖,當(dāng)用戶輸入多個(gè)檢索詞時(shí),多個(gè)檢索詞的順序也可以作為一項(xiàng)重要檢索特征。檢索詞在文檔中出現(xiàn)的次序與用戶輸入的檢索次序越一致,則文檔越契合用戶意圖。因此我們?cè)O(shè)計(jì)了檢索序列向量表示用戶查詢序列,構(gòu)造了最長檢索一致向量表示文檔的詞語序列的一致性,兩者共同構(gòu)成詞語序列因子來衡量文檔和檢索的序列相關(guān)性:
(7)
式中:Nq是用戶輸入的查詢?cè)~的個(gè)數(shù),V(Qterms)是用戶輸入的查詢?cè)~向量,該向量里面每一維代表一個(gè)檢索詞,其順序按照用戶輸入的順序,數(shù)值均為1。V(Dterms)表示文檔中出現(xiàn)的檢索詞的最大查詢一致序列,其每一維度代表的含義與V(Qterms)相同。考慮到查詢?cè)~在文檔中可以多次出現(xiàn),我們利用查詢?cè)~在文檔中首次出現(xiàn)位置來標(biāo)定文檔中的檢索詞序列。文檔中出現(xiàn)的檢索詞會(huì)形成許多與檢索序列一致的候選檢索詞序列,V(Dterms)則是用來表示文檔中出現(xiàn)的候選檢索詞序列中最長的一致檢索詞序列。對(duì)于V(Dterms)中的每一維度,若文檔的最長一致檢索詞序列包含該詞條,則該維度特征值為1;反之,不包含的檢索詞條對(duì)應(yīng)維度特征值為0。
例如,初始檢索Q為四個(gè)檢索詞“計(jì)算機(jī)”、“輔助”、“設(shè)計(jì)”、“圖片”,用戶輸入順序?yàn)椋?/p>
“計(jì)算機(jī)—輔助—設(shè)計(jì)—圖片”
V(Qterms)={1,1,1,1},V(Qterms)中的四個(gè)維度依次代表“計(jì)算機(jī)”、“輔助”、“設(shè)計(jì)”、“圖片”四個(gè)檢索詞。文檔A中順序出現(xiàn)了“輔助”、“設(shè)計(jì)”兩個(gè)檢索詞,則V(Dterms)={0,1,1,0}。文檔B中順序出現(xiàn)了“設(shè)計(jì)”、“輔助”兩個(gè)檢索詞。則其V(Dterms)={0,0,1,0}。文檔C中順序出現(xiàn)了“設(shè)計(jì)”、“計(jì)算機(jī)”、“輔助”、“圖片”四個(gè)檢索詞,則文檔C中產(chǎn)生了如下三個(gè)的檢索一致序列:
“設(shè)計(jì)—圖片”
“計(jì)算機(jī)—輔助—圖片”
“輔助—圖片”
我們?nèi)∑渥铋L的序列組合“計(jì)算機(jī)—輔助—圖片”構(gòu)建V(Bterms)={1,1,0,1}。通過order(q,d)因子我們可以計(jì)算得出用戶檢索Q與文檔A的序列因子為1/2,用戶檢索Q與文檔B的序列因子為1/4,用戶檢索Q與文檔C的序列因子為3/4,可以保證檢索詞語序列與文檔中分布的詞語序列越一致,詞序因子越大。
用戶輸入或者查詢擴(kuò)展的多個(gè)檢索詞是緊密相關(guān)的。我們假定多個(gè)檢索詞在文章中分布的篇幅越廣,文檔將用戶檢索相關(guān)的信息作為主要內(nèi)容的概率越大,從而越契合用戶的檢索意圖。檢索詞占據(jù)整篇文章的篇幅比例可以作為衡量檢索詞分布的一個(gè)標(biāo)準(zhǔn),因此我們定義如下詞語距離因子來衡量:
(8)
式中:Qterm.last表示檢索詞在文檔最后出現(xiàn)的位置,Qterm.first表示檢索詞首次出現(xiàn)的位置。
綜上所述,基于Lucene中用戶查詢與文檔相似度的改進(jìn)計(jì)算方式改進(jìn)后計(jì)算方式如下:
Score(q,d)=Coord(q,d)×queryNorm(q)×
order(q,d)×w(t,d)
(9)
展開即:
Score(q,d)=Coord(q,d)×queryNorm(q)×
idf2(t)×t.getBoost×distance(q)×
decrease×lengthNorm(t,d)}
(10)
本文方法用Java語言實(shí)現(xiàn),實(shí)驗(yàn)采用DELL Optiplex 990型號(hào)的機(jī)器,內(nèi)存8 GB,操作系統(tǒng)是Windows7專業(yè)版,JDK1.7版本。本實(shí)驗(yàn)中共50類科技文獻(xiàn),其核心元數(shù)據(jù)總數(shù)目達(dá)593 425條。為了能夠全面、準(zhǔn)確、有效地反映系統(tǒng)的性能??紤]到用戶最關(guān)心的往往是前5頁的內(nèi)容,因此,本實(shí)驗(yàn)統(tǒng)計(jì)了每次檢索的前50條返回結(jié)果。
實(shí)驗(yàn)由兩部分組成,第一部分比較了我們的方法在檢索詞擴(kuò)展與不進(jìn)行檢索詞擴(kuò)展的檢索結(jié)果;第二部分比較我們的方法與傳統(tǒng)檢索方法查詢擴(kuò)展的比較。
從表1和圖4中,我們可以看出,通過對(duì)檢索詞進(jìn)行擴(kuò)展查詢,系統(tǒng)的查全率顯著提高,查準(zhǔn)率也略有提高。為了確定衰減因子decrease的最優(yōu)值,我們?cè)O(shè)置其值由0.1逐步增加至1.0,隨著decrease值的增加,檢索系統(tǒng)的性能也逐步提高,當(dāng)decrease=0.5時(shí),系統(tǒng)性能達(dá)到最高。隨后系統(tǒng)的性能逐步降低,我們確定0.5作為擴(kuò)展詞權(quán)重因子。
表1 擴(kuò)展查詢和不擴(kuò)展查詢比較
圖4 擴(kuò)展查詢和不擴(kuò)展查詢結(jié)果比較
為了準(zhǔn)確地對(duì)比文中方法與傳統(tǒng)方法的性能,我們用30組檢索詞分別對(duì)50類資源進(jìn)行了檢索,實(shí)驗(yàn)先后利用HowNet對(duì)檢索詞進(jìn)行擴(kuò)展,并使用TF-IDF和Lucene的兩種算法對(duì)擴(kuò)展的檢索詞進(jìn)行檢索實(shí)驗(yàn)。
此外,文獻(xiàn)[8]和文獻(xiàn)[10]中的方法被選基線對(duì)比方法,這兩種方法可以從語料中獲取擴(kuò)展詞語,相比基于知識(shí)庫進(jìn)行檢索詞擴(kuò)展的方法,提高了檢索詞的覆蓋范圍。文獻(xiàn)[8]中首先檢索獲取可信文本,然后從可信文本中選取詞語作為查詢擴(kuò)展詞進(jìn)行二次檢索獲取檢索結(jié)果,本實(shí)驗(yàn)中我們將該方法命名為Rank_Method。 文獻(xiàn)[10]利用偽相關(guān)反饋技術(shù)量化文檔中的詞語權(quán)重并擴(kuò)展查詢?cè)~,我們將其命名為Rekha_Method??紤]到檢索結(jié)果的返回?cái)?shù)量較多,并且用戶最關(guān)心的往往是前5頁的內(nèi)容,實(shí)驗(yàn)統(tǒng)計(jì)了每次檢索的前50條返回頁面來衡量檢索結(jié)果,平均實(shí)驗(yàn)結(jié)果如表2和圖5所示。
表2 檢索方法性能對(duì)比
圖5 查詢擴(kuò)展的性能對(duì)比
由表2和圖5可以看出,我們提出的考慮了詞語序列和擴(kuò)展詞衰減的方法具有明顯的優(yōu)越性,能夠提高檢索系統(tǒng)的查全率和召回率,同時(shí)整體性能也有了明顯提升,能更好地命中用戶的查詢意圖。
針對(duì)傳統(tǒng)的查詢擴(kuò)展方法存在的問題,本文將多個(gè)檢索詞之間的詞序、詞距、擴(kuò)展詞權(quán)重變化等因素納入詞語權(quán)重計(jì)算過程進(jìn)行了更細(xì)致的檢索,主要工作有:1) 提出了一種改進(jìn)的文本檢索方法,本文在查詢擴(kuò)展過程中,設(shè)計(jì)擴(kuò)展詞衰減因子以區(qū)分不同檢索詞語的重要程度;2) 針對(duì)詞袋模型中的詞語無序性問題,構(gòu)建了詞序一致因子表征文本中詞序的序列關(guān)系,有效提升了文檔的語義一致性;3) 在檢索過程中,引入了詞語距離因子,一定程度上表達(dá)了用戶需求信息在目標(biāo)文本中的信息重要程度。實(shí)驗(yàn)證明,相比現(xiàn)有方法,我們方法能夠提高檢索系統(tǒng)的查全率和查準(zhǔn)率。將來的工作中,我們將考慮利用資源數(shù)量分布、檢索詞條和用戶點(diǎn)擊數(shù)據(jù)對(duì)其中的衰減因子的自動(dòng)學(xué)習(xí)進(jìn)行研究,同時(shí)我們考慮根據(jù)用戶偏好來解決多類別文本檢索結(jié)果的合并排序問題。
[1] Eickhoff C,Collins-Thompson K,Bennett P N,et al.Personalizing atypical web search sessions[C]//ACM International Conference on Web Search and Data Mining.ACM,2013:285-294.
[2] 胡妙,戴牡紅,陳浩.一種基于用戶配置文件的個(gè)性化檢索方法[J].計(jì)算機(jī)應(yīng)用研究,2016,33(2):417-420.
[3] Salton G,Wong A,Yang C S.A vector space model for automatic indexing[J].Communications of the Acm,1974,18(11):613-620.
[4] Landauer T K,Foltz P W,Laham D.An introduction to latent semantic analysis[J].Discourse Processes,1998,25(2-3):259-284.
[5] Carpineto C,Romano G.A survey of automatic query expansion in information retrieval[J].ACM Computing Surveys (CSUR),2012,44(1):1-50.
[6] Blei D M,Ng A Y,Jordan M I.Latent dirichlet allocation[J].Journal of Machine Learning Research,2003,3:993-1022.
[7] Goldberg Y,Levy O.word2vec Explained:deriving Mikolov et al.’s negative-sampling word-embedding method[J].arXiv preprint arXiv:1402.3722,2014.
[8] 徐博,林鴻飛,林原,等.一種基于排序?qū)W習(xí)方法的查詢擴(kuò)展技術(shù)[J].中文信息學(xué)報(bào),2015,29(3):155-161.
[9] 馬斌,王金虹,閆娟娟,等.基于本體的智能語義檢索模型設(shè)計(jì)與研究[J].情報(bào)科學(xué),2015(2):46-49,71.
[10] Vaidyanathan R,Das S,Srivastava N.Query Expansion Strategy based on Pseudo Relevance Feedback and Term Weight Scheme for Monolingual Retrieval[J].International Journal of Computer Applications,2015,105(8):1-6.
[11] 黃承慧,印鑒,侯昉.一種結(jié)合詞項(xiàng)語義信息和TF-IDF方法的文本相似度量方法[J].計(jì)算機(jī)學(xué)報(bào),2011,34(5):856-864.
[12] Niu S,Guo J,Lan Y,et al.Top-k learning to rank:labeling,ranking and evaluation[C]//International ACM SIGIR Conference on Research and Development in Information Retrieval.ACM,2012:751-760.
[13] Apache Lucene.Lucenejava5.3.0[EB/OL].[2011-11-18].http://lucene.apache.org/.
[14] 劉群,李素建.基于《知網(wǎng)》 的詞匯語義相似度計(jì)算[J].中文計(jì)算語言學(xué),2002.