本發(fā)明涉及電數(shù)據(jù)處理領(lǐng)域,尤其涉及一種短文本語(yǔ)義相似度的計(jì)算方法。
背景技術(shù):
:文本相似度計(jì)算主要是研究計(jì)算多個(gè)文本之間的相似程度,其在問(wèn)答系統(tǒng),版權(quán)檢測(cè)等多個(gè)領(lǐng)域都有較為廣泛的應(yīng)用。常見(jiàn)的分類,聚類等機(jī)器學(xué)習(xí)算法,也涉及到文本之間相似度的比較。關(guān)于文本相似度計(jì)算的方法有很多,傳統(tǒng)的方法是基于向量空間模型來(lái)做,也有改進(jìn)的基于語(yǔ)義的相似度計(jì)算方法。無(wú)論使用哪種計(jì)算方法,對(duì)于短文本來(lái)說(shuō),都存在以下幾個(gè)問(wèn)題:(1)、短文本內(nèi)容通常都比較短,經(jīng)過(guò)分詞之后,可以用來(lái)進(jìn)行相似度計(jì)算的信息較少。(2)、許多詞語(yǔ)都具有多義性,如果只考慮詞語(yǔ)本身,可能無(wú)法準(zhǔn)確地理解這些詞語(yǔ)在其上下文的具體含義。(3)、對(duì)于包含相同詞匯的文本,如果詞序不同,文本表達(dá)的意思仍然是不同的,因此在相似度計(jì)算方面我們還要考慮文本的詞序問(wèn)題。技術(shù)實(shí)現(xiàn)要素:有鑒于此,本發(fā)明提供一種短文本語(yǔ)義相似度的計(jì)算方法,以解決現(xiàn)有技術(shù)分詞信息少、詞語(yǔ)具有歧義以及詞序混亂的問(wèn)題。具體地,本發(fā)明是通過(guò)如下技術(shù)方案實(shí)現(xiàn)的:本發(fā)明提供一種短文本語(yǔ)義相似度的計(jì)算方法,所述計(jì)算方法包括:對(duì)待計(jì)算短文本進(jìn)行分詞;通過(guò)連續(xù)詞袋模型對(duì)經(jīng)過(guò)所述分詞后的詞語(yǔ)進(jìn)行擴(kuò)展;通過(guò)機(jī)器翻譯對(duì)經(jīng)過(guò)所述擴(kuò)展后的詞語(yǔ)進(jìn)行歧義消除;對(duì)經(jīng)過(guò)所述歧義消除的詞語(yǔ)的重要性進(jìn)行計(jì)算,并對(duì)所述詞語(yǔ)的詞序進(jìn)行加權(quán);計(jì)算經(jīng)過(guò)所述詞序加權(quán)的詞語(yǔ)的語(yǔ)義距離,并根據(jù)所述語(yǔ)義距離計(jì)算文本相似度。附圖說(shuō)明圖1是本發(fā)明一示例性實(shí)施例提供的一種短文本語(yǔ)義相似度的計(jì)算方法的流程圖;圖2是本發(fā)明一示例性實(shí)施例提供的HMM的示意圖;圖3是本發(fā)明一示例性實(shí)施例提供的Viterbi算法返回標(biāo)注序列的示意圖;圖4是本發(fā)明一示例性實(shí)施例提供的訓(xùn)練詞向量通過(guò)n個(gè)詞預(yù)測(cè)第m個(gè)詞的示意圖;圖5是本發(fā)明一示例性實(shí)施例提供的通過(guò)語(yǔ)義距離計(jì)算文本相似度的示意圖。具體實(shí)施方式這里將詳細(xì)地對(duì)示例性實(shí)施例進(jìn)行說(shuō)明,其示例表示在附圖中。下面的描述涉及附圖時(shí),除非另有表示,不同附圖中的相同數(shù)字表示相同或相似的要素。以下示例性實(shí)施例中所描述的實(shí)施方式并不代表與本發(fā)明相一致的所有實(shí)施方式。相反,它們僅是與如所附權(quán)利要求書(shū)中所詳述的、本發(fā)明的一些方面相一致的裝置和方法的例子。在本發(fā)明使用的術(shù)語(yǔ)是僅僅出于描述特定實(shí)施例的目的,而非旨在限制本發(fā)明。在本發(fā)明和所附權(quán)利要求書(shū)中所使用的單數(shù)形式的“一種”、“所述”和“該”也旨在包括多數(shù)形式,除非上下文清楚地表示其他含義。還應(yīng)當(dāng)理解,本文中使用的術(shù)語(yǔ)“和/或”是指并包含一個(gè)或多個(gè)相關(guān)聯(lián)的列出項(xiàng)目的任何或所有可能組合。應(yīng)當(dāng)理解,盡管在本發(fā)明可能采用術(shù)語(yǔ)第一、第二、第三等來(lái)描述各種信息,但這些信息不應(yīng)限于這些術(shù)語(yǔ)。這些術(shù)語(yǔ)僅用來(lái)將同一類型的信息彼此區(qū)分開(kāi)。例如,在不脫離本發(fā)明范圍的情況下,第一信息也可以被稱為第二信息,類似地,第二信息也可以被稱為第一信息。取決于語(yǔ)境,如在此所使用的詞語(yǔ)“如果”可以被解釋成為“在……時(shí)”或“當(dāng)……時(shí)”或“響應(yīng)于確定”。如圖1所示為本發(fā)明一示例性實(shí)施例提供的一種短文本語(yǔ)義相似度的計(jì)算方法的流程圖,所述計(jì)算方法包括以下步驟:步驟S101,對(duì)待計(jì)算短文本進(jìn)行分詞。在本發(fā)明實(shí)施例中,單個(gè)漢字雖然是漢語(yǔ)的書(shū)寫表達(dá)的最小單位,但在自然語(yǔ)言理解中,詞是最小的能夠獨(dú)立運(yùn)用的語(yǔ)言單元。如果不進(jìn)行分詞,計(jì)算機(jī)很難理解漢語(yǔ)中大量連續(xù)的字符串。并且中文分詞是自然語(yǔ)言處理中一個(gè)關(guān)鍵的基礎(chǔ)技術(shù),是上層應(yīng)用諸如詞性標(biāo)注、命名實(shí)體識(shí)別、句法分析、語(yǔ)義理解、信息檢索、機(jī)器翻譯、問(wèn)答系統(tǒng)中最基礎(chǔ)的且關(guān)鍵的處理環(huán)節(jié),所以中文分詞的性能好壞直接影響到其他應(yīng)用的優(yōu)劣。對(duì)漢語(yǔ)進(jìn)行分詞的方法包括很多種,本發(fā)明實(shí)施例對(duì)此不進(jìn)行限定。優(yōu)選的,通過(guò)HMM以及n-gram語(yǔ)言模型對(duì)待計(jì)算短文本進(jìn)行分詞。所述通過(guò)HMM以及n-gram語(yǔ)言模型對(duì)待計(jì)算短文本進(jìn)行分詞,包括:1、通過(guò)4-Tag標(biāo)注法對(duì)所述待計(jì)算短文本進(jìn)行標(biāo)注。在本發(fā)明實(shí)施例中,將待計(jì)算短文本標(biāo)注為集合{S、B、M、E},其中,S表示單個(gè)字構(gòu)成的詞,B表示多個(gè)字構(gòu)成的詞的起始字、M表示多個(gè)字構(gòu)成的詞的中間字,E表示多個(gè)字構(gòu)成的詞的結(jié)束字,如下:詞匯類型標(biāo)記選擇單個(gè)字的詞{B}兩個(gè)字的詞{B,E}三個(gè)字的詞{B,M,E}四個(gè)及以上字組成的詞{B,M,……,M,E}如:“張三買了蘋果筆記本”,根據(jù)4-Tag標(biāo)注后的結(jié)果為:張/B三/M買/S了/S蘋/B果/M筆/B記/M本E。2、根據(jù)所述標(biāo)注訓(xùn)練隱馬爾科夫模型HMM。在本發(fā)明實(shí)施例中,訓(xùn)練HMM模型,即從人工標(biāo)注好的數(shù)據(jù)集中統(tǒng)計(jì)出HMM模型中的參數(shù),主要包括隱變量(S,B,M,E)之間的轉(zhuǎn)移概率(圖中用a表示),和隱變量到狀態(tài)變量(單個(gè)漢字)的發(fā)射概率(圖中用b表示)。由于訓(xùn)練集有限,不可能覆蓋所有樣本的概率,即訓(xùn)練集存在數(shù)據(jù)稀疏性問(wèn)題,所以我們?cè)谟?jì)算上述概率時(shí),使用了Witten-Bell平滑方法,有研究表明這種平滑方法比較適合中文文本。如圖2所示為HMM的示意圖,其中a表示隱變量之間的轉(zhuǎn)移概率,b表示隱變量到狀態(tài)變量的發(fā)射概率。作為一個(gè)可選實(shí)施例,如果待計(jì)算短文本沒(méi)有標(biāo)注,則使用Viterbi算法返回其可能的標(biāo)注序列中概率最大的一個(gè)標(biāo)注序列,尋找一條最大概率的路徑作為該短文本的標(biāo)注結(jié)果,然后根據(jù)標(biāo)注對(duì)短文本進(jìn)行切割。如圖3所示為Viterbi算法返回標(biāo)注序列的示意圖。步驟S102,通過(guò)連續(xù)詞袋模型對(duì)經(jīng)過(guò)所述分詞后的詞語(yǔ)進(jìn)行擴(kuò)展。在本發(fā)明實(shí)施例中,連續(xù)詞袋模型可以計(jì)算任意兩個(gè)詞語(yǔ)的語(yǔ)義相似度,也可以找出與給定詞語(yǔ)語(yǔ)義最相似的N個(gè)詞。通過(guò)這種連續(xù)詞袋模型,可以對(duì)分詞后的每個(gè)詞語(yǔ)進(jìn)行語(yǔ)義擴(kuò)充:將詞語(yǔ)表示成向量的最傳統(tǒng)的方法是使用向量空間模型,其中最常見(jiàn)的是One-hotrepresentation,不過(guò)它有一個(gè)很明顯的缺點(diǎn),那就是詞語(yǔ)與詞語(yǔ)之間沒(méi)有語(yǔ)義關(guān)聯(lián)。深度學(xué)習(xí)中有一種考慮了詞語(yǔ)和詞語(yǔ)之間語(yǔ)義關(guān)聯(lián)的詞向量表示技術(shù),它用DistributedRepresentation來(lái)描述一個(gè)詞語(yǔ),也被稱為“WordRepresentation”或“WordEmbedding”,即每個(gè)詞語(yǔ)被表示為一個(gè)浮點(diǎn)向量。該向量可由神經(jīng)網(wǎng)絡(luò)語(yǔ)言模型(NNLM,NeuralNetworkLanguageModel)訓(xùn)練出來(lái)。而連續(xù)詞袋模型(CBOW,ContinuousBag-of-WordsModel),是一種在NNLM基礎(chǔ)上改進(jìn)的模型。CBOW去除了NNLM中最耗時(shí)的非線性隱層,并且讓所有詞共享隱層,所有詞都被映射到同一個(gè)位置。如圖4所示為本發(fā)明實(shí)施例提供的訓(xùn)練詞向量通過(guò)n個(gè)詞預(yù)測(cè)第m個(gè)詞的示意圖,其可以利用上下文進(jìn)行預(yù)測(cè)。訓(xùn)練目標(biāo)是給定一個(gè)詞的上下文,預(yù)測(cè)該詞出現(xiàn)的概率。如果窗口大小為k,則模型預(yù)測(cè)為:P(wt|wt-k,…,wt-1,wt+1,…,wt+k)。由上式可以看到,如果在該位置兩個(gè)不同的詞的上下文共現(xiàn)的次數(shù)越多,則這兩個(gè)詞出現(xiàn)的概率便非常接近,因此它們生成的詞向量的距離也就越相近,語(yǔ)義相似度也越近。如:張三買了蘋果”,“張三買了雪梨”,多組詞作為語(yǔ)料放進(jìn)CBOW訓(xùn)練后,P(蘋果|張三,買,了)與P(雪梨|張三,買,了)的概率會(huì)非常接近,從而訓(xùn)練結(jié)果得到的詞向量C(蘋果)與C(雪梨)的距離也會(huì)非常接近。通過(guò)CBOW訓(xùn)練好的詞向量,便可以通過(guò)尋找該詞最相近的詞進(jìn)行擴(kuò)充,比如“張三買了蘋果”去掉停用詞后為“張三買蘋果”,其擴(kuò)充結(jié)果如下表所示:步驟S103,通過(guò)機(jī)器翻譯對(duì)經(jīng)過(guò)所述擴(kuò)展后的詞語(yǔ)進(jìn)行歧義消除。在本發(fā)明實(shí)施例中,漢語(yǔ)中一詞多義現(xiàn)象廣泛存在,如:“金山”,既可以指以金山詞霸聞名的在香港聯(lián)交所上市的公司金山軟件,也可以指上海市金山區(qū),還可以指金山銀山之類的有珍貴價(jià)值物品的地點(diǎn)。因此需要通過(guò)機(jī)器翻譯對(duì)歧義進(jìn)行消除。調(diào)用在線機(jī)器翻譯接口,將中文轉(zhuǎn)換為英文,再將英文轉(zhuǎn)換為中文,可以在相當(dāng)大程度上解決一詞多義的歧義問(wèn)題。在這種雙向翻譯的過(guò)程中,機(jī)器翻譯會(huì)對(duì)有歧義的句子進(jìn)行缺失成分的補(bǔ)充或替換,從而對(duì)詞義進(jìn)行限定。如以百度在線翻譯接口作為例:原文:金山是一家總部位于北京的軟件公司。中譯英:KingsoftisaBeijingbasedsoftwarecompany.將中譯英的結(jié)果再譯為中文:金山軟件是一家總部位于北京的軟件公司。原文:我們擁有金山銀山、絲綢、羊毛和紅氈。中譯英:Wehavegoldandsilvermines,silk,woolandredcarpets.將中譯英的結(jié)果再譯為中文:我們有金銀礦、絲綢、羊毛和紅地毯。在上面的例子中,原詞金山在通過(guò)機(jī)器翻譯的過(guò)程中,分別變?yōu)榱私鹕焦竞徒?銀)礦,變化后的詞語(yǔ)意思明確,已經(jīng)沒(méi)有出現(xiàn)歧義的情況了。上述表明,機(jī)器翻譯能夠?qū)崿F(xiàn)歧義消除的功能。步驟S104,對(duì)經(jīng)過(guò)所述歧義消除的詞語(yǔ)的重要性進(jìn)行計(jì)算,并對(duì)所述詞語(yǔ)的詞序進(jìn)行加權(quán)。在本發(fā)明實(shí)施例中,引入領(lǐng)域特征權(quán)重系數(shù)FCF,將FCF與TF權(quán)重結(jié)合組成FTF權(quán)重系數(shù),綜合FTF和IDF權(quán)重得出改進(jìn)后的詞語(yǔ)權(quán)重計(jì)算。具體FTF-IDF算法流程如下:Step1:對(duì)文本進(jìn)行中文分詞Step2:構(gòu)建領(lǐng)域詞語(yǔ)集合其中,表示領(lǐng)域i詞語(yǔ)集合,tj表示j領(lǐng)域的詞語(yǔ)集合,1<<j<<n。Step3:計(jì)算領(lǐng)域詞語(yǔ)權(quán)重FCF表示某一個(gè)領(lǐng)域詞語(yǔ)數(shù)量,表示所有領(lǐng)域的詞語(yǔ)總數(shù)量Step4:計(jì)算文本的TF值以上式子中ni,j是該詞在文件dj中的出現(xiàn)次數(shù),而分母則是在文件dj中所有字詞的出現(xiàn)次數(shù)總和。Step5:計(jì)算IDF值其中Dn代表所有文檔集合,di,k表示k領(lǐng)域包含詞語(yǔ)就的文檔Step6:計(jì)算FTFi,k,其FTFi,k=TFi,k+FCFi,kStep7:詞語(yǔ)Wi,k權(quán)重計(jì)算如下Wi,k=FTFi,k+IDFi,k當(dāng)query中的詞語(yǔ)在某一領(lǐng)域沒(méi)有詞頻統(tǒng)計(jì)時(shí),傳統(tǒng)的TF-IDF=0,而FTF則會(huì)計(jì)算每一個(gè)領(lǐng)域的FCF值以及TF值,每一個(gè)特征項(xiàng)的FCF值和TF值疊加,最后綜合得到詞語(yǔ)的權(quán)重值。在實(shí)際文本相似度計(jì)算時(shí),詞語(yǔ)之間必然存在一定的聯(lián)系,而這種聯(lián)系主要表現(xiàn)為詞序(具體為詞語(yǔ)在文本中的位置信息),且詞序相似度的計(jì)算進(jìn)一步為文本語(yǔ)義相似度衡量提供了參考。故本發(fā)明針對(duì)語(yǔ)序,提出一種基于統(tǒng)計(jì)的向量空間距離詞序計(jì)算方法,詳細(xì)算法流程如下:Step1:輸入領(lǐng)域數(shù)據(jù)(TrainingData)Step2:For循環(huán)每一段文本Step3:對(duì)文本進(jìn)行中文分詞Step4:給每一個(gè)未出現(xiàn)詞初始化一個(gè)向量V(自定義為10維度,根據(jù)實(shí)際需要可調(diào)整),其每一個(gè)維度代表該詞在整個(gè)文本中代表的相對(duì)位置的統(tǒng)計(jì),V=(0,0,0,0,0,0,0,0,0,0)注:第一維度代表(0-0.1],第二維度(0.1,0.2],即詞語(yǔ)在句子的相對(duì)位置,依此類推。Step:5:計(jì)算每個(gè)詞語(yǔ)在文本中的相對(duì)位置信息L其中Wp表示詞語(yǔ)W在整個(gè)文本的順序位置信息,比如:你吃飯了么,這里的W=“吃飯”的Wp值為2,而∑iwj表示為詞語(yǔ)的數(shù)目,引申為總體詞語(yǔ)位置總數(shù),上列的∑iwj則為4,而L則代表了該詞匯在文本的相對(duì)位置信息Step6:更新向量V,如“吃飯”,其L=0.2,則“吃飯”在對(duì)應(yīng)相對(duì)位置的加1,其V向量變?yōu)?0,1,0,0,0,0,0,0,0,0),以此類推Step7:循環(huán)Step2-Step6,不斷的更新V(V存在就做相應(yīng)維度的+1操作,不存在則初始化并相應(yīng)維度+1),遍歷完后即保存了每一個(gè)詞語(yǔ)語(yǔ)序的向量信息Step8:為了控制數(shù)據(jù)波動(dòng),對(duì)v中每個(gè)值采取以10為底的log函數(shù)變換,即v等于(log(0),log(1),log(0),log(0),log(0),log(0),log(0),log(0),log(0),log(0))Step9:由Step8,新文本來(lái)之后先計(jì)算每個(gè)詞匯的L值,然后根據(jù)L值,從V中找出對(duì)應(yīng)該位置的統(tǒng)計(jì)信息,最后合并所有詞語(yǔ)(文本對(duì)應(yīng)的詞語(yǔ))生成該文本的詞序向量VpStep10:當(dāng)兩個(gè)文本相對(duì)比時(shí),出現(xiàn)詞語(yǔ)長(zhǎng)度不一致的情況,以兩段文本詞語(yǔ)最長(zhǎng)size為基礎(chǔ),對(duì)應(yīng)較短的文本采取自動(dòng)向右補(bǔ)零原則(補(bǔ)充長(zhǎng)度即為兩文本詞匯向量維度差),從而維護(hù)了語(yǔ)序向量空間維度的一致性Step11:最后采用向量余弦相似度計(jì)算語(yǔ)序的相似性sim其中n代表向量空間維度。步驟S105,計(jì)算經(jīng)過(guò)所述詞序加權(quán)的詞語(yǔ)的語(yǔ)義距離,并根據(jù)所述語(yǔ)義距離計(jì)算文本相似度。在本發(fā)明實(shí)施例中,如圖5所示為通過(guò)語(yǔ)義距離計(jì)算文本相似度的示意圖,其具體的計(jì)算過(guò)程如下:1、選取詞語(yǔ)權(quán)重較大的n個(gè)詞作為句子的關(guān)鍵詞。假如句子s1關(guān)鍵詞為{W1,W2,W3,…,Wn},s2的關(guān)鍵詞{T1,T2,T3,…,Tn}。2、根據(jù)關(guān)鍵詞在概念本體樹(shù)中的上下位關(guān)系對(duì)關(guān)鍵詞進(jìn)行擴(kuò)展{W1,W2,W3,…,Wn}->{W1,M1,C1,C0,…}{T1,T2,…,Tn}->{T1,C2,C0,P2,…}3、利用廣度優(yōu)先搜索對(duì)2擴(kuò)展詞進(jìn)行概念向量表示:S1={a1,a2,…,am}S2={b1,b2,…,bm}在概念向量中,概念的權(quán)重計(jì)算如下:對(duì)于1中的關(guān)鍵詞與2中的擴(kuò)展詞,如果關(guān)鍵詞是概念本體樹(shù)中的一個(gè)節(jié)點(diǎn),則取值為1,如果擴(kuò)展詞是概念本體樹(shù)中的一個(gè)節(jié)點(diǎn),則取值為w,w的取值范圍為0<w<1,w表示擴(kuò)展詞的權(quán)重,4、利用夾角余弦計(jì)算S1,S2的相似度sim(S1,S2),句子S1和S2的相似度值為sim(S1,S2)+α,其中α表示句子S1,S2詞序相似度。以上所描述的裝置實(shí)施例僅僅是示意性的,其中所述作為分離部件說(shuō)明的單元可以是或者也可以不是物理上分開(kāi)的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部模塊來(lái)實(shí)現(xiàn)本發(fā)明方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性勞動(dòng)的情況下,即可以理解并實(shí)施。以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明保護(hù)的范圍之內(nèi)。當(dāng)前第1頁(yè)1 2 3