本發(fā)明實施例涉及計算機(jī)技術(shù)領(lǐng)域,具體涉及一種詞匯義原的自動預(yù)測方法及裝置。
背景技術(shù):
句子是由一個個詞匯組成,來表達(dá)不同的意思,而不同的詞匯有它的特殊性也有他們的相似性,hownet用來刻畫不同詞匯的這些特點。hownet由人工標(biāo)注,對大部分常見的詞匯標(biāo)注了它的義原,而義原相對于詞匯是一個更小的集合,它表示了詞匯更基本的一些意義,不同的義原組合可以表示不同的詞匯,比如:古董店的義原包括:場所,商業(yè),買,賣,珍寶和過去。而古董店的定義則可以由這些義原來刻畫:買賣過去的珍寶的商業(yè)場所就是古董店。義原有很多好的特點,比如根據(jù)兩個詞匯的義原的交集來判斷這兩個詞匯的相似度,可以用于更好的生成詞向量以用于自然語言處理中更多的任務(wù)。
雖然義原有很多好的性質(zhì),但是義原的標(biāo)注是件非常費時費力的事情。hownet已經(jīng)誕生十多年了,最開始是由很多語言專家?guī)ь^標(biāo)注的,但是隨著信息技術(shù)的快速發(fā)展,詞匯的數(shù)量呈爆炸性地增長,而如何高效快速準(zhǔn)確地為這些新產(chǎn)生的詞匯標(biāo)注義原就成了一個不得不解決的問題,亟需一種義原的自動構(gòu)建模型而不是手工標(biāo)注,既可以保證義原具有相同的特征,也能夠避免人標(biāo)注產(chǎn)生的偏差。
技術(shù)實現(xiàn)要素:
由于現(xiàn)有技術(shù)存在上述問題,本發(fā)明實施例提出一種詞匯義原的自動預(yù)測方法及裝置。
第一方面,本發(fā)明實施例提出一種詞匯義原的自動預(yù)測方法,包括:
根據(jù)每個預(yù)設(shè)詞匯的詞向量,計算各未知義原詞匯與每個已知義原詞匯的向量距離;
根據(jù)各向量距離和距離閾值,選擇至少一個目標(biāo)已知義原詞匯作為各未知義原詞匯的備選義原集合;
根據(jù)備選義原集合中各目標(biāo)已知義原詞匯的義原向量,計算得到各未知義原詞匯的各義原的分?jǐn)?shù);
根據(jù)分?jǐn)?shù)閾值和各義原的分?jǐn)?shù),得到各未知義原詞匯的第一義原向量;
其中,所述預(yù)設(shè)詞匯包括已知義原詞匯和未知義原詞匯。
可選地,所述方法還包括:
獲取預(yù)設(shè)義原,根據(jù)隨機(jī)梯度下降法和所述預(yù)設(shè)義原計算得到每個預(yù)設(shè)詞匯的詞向量。
可選地,所述根據(jù)分?jǐn)?shù)閾值和各義原的分?jǐn)?shù),得到各未知義原詞匯的義原向量之后,還包括:
根據(jù)預(yù)設(shè)義原向量和未知義原詞匯向量,得到義原詞匯矩陣;
根據(jù)所述義原詞匯矩陣,計算得到所述義原詞匯矩陣的共現(xiàn)矩陣;
根據(jù)隨機(jī)梯度下降法分別對所述義原詞匯矩陣和所述共現(xiàn)矩陣進(jìn)行分解,得到第二義原向量;
根據(jù)所述未知義原詞匯向量和所述第二義原向量,計算得到目標(biāo)值;
根據(jù)所述目標(biāo)值和所述第一義原向量,計算得到目標(biāo)義原向量;
其中,所述義原詞匯矩陣由0和1表示,1表示對應(yīng)的詞匯包括對應(yīng)的義原,0表示對應(yīng)的詞匯不包括對應(yīng)的義原。
可選地,所述根據(jù)隨機(jī)梯度下降法分別對所述義原詞匯矩陣和所述共現(xiàn)矩陣進(jìn)行分解,得到第二義原向量,具體包括:
根據(jù)隨機(jī)梯度下降法和損失函數(shù)分別對所述義原詞匯矩陣和所述共現(xiàn)矩陣進(jìn)行分解,得到第二義原向量;
其中,所述損失函數(shù)為:
w為所述未知義原詞匯向量,s為s'分別為第一預(yù)設(shè)義原向量和第二預(yù)設(shè)義原向量,λ為預(yù)設(shè)系數(shù),mws、cst、w、s分別為所述義原詞匯矩陣、所述共現(xiàn)矩陣、所述未知義原詞匯向量和所述第一預(yù)設(shè)義原向量中的元素,bw為所述未知義原詞匯向量的偏置,bs為所述第一預(yù)設(shè)義原向量的偏置。
第二方面,本發(fā)明實施例還提出一種詞匯義原的自動預(yù)測裝置,包括:
距離計算模塊,用于根據(jù)每個預(yù)設(shè)詞匯的詞向量,計算各未知義原詞匯與每個已知義原詞匯的向量距離;
義原集合確定模塊,用于根據(jù)各向量距離和距離閾值,選擇至少一個目標(biāo)已知義原詞匯作為各未知義原詞匯的備選義原集合;
義原分?jǐn)?shù)計算模塊,用于根據(jù)備選義原集合中各目標(biāo)已知義原詞匯的義原向量,計算得到各未知義原詞匯的各義原的分?jǐn)?shù);
義原向量確定模塊,用于根據(jù)分?jǐn)?shù)閾值和各義原的分?jǐn)?shù),得到各未知義原詞匯的第一義原向量;
其中,所述預(yù)設(shè)詞匯包括已知義原詞匯和未知義原詞匯。
可選地,所述裝置還包括:
詞向量計算模塊,用于獲取預(yù)設(shè)義原,根據(jù)隨機(jī)梯度下降法和所述預(yù)設(shè)義原計算得到每個預(yù)設(shè)詞匯的詞向量。
可選地,所述裝置還包括:
義原詞匯矩陣獲取模塊,用于根據(jù)預(yù)設(shè)義原向量和未知義原詞匯向量,得到義原詞匯矩陣;
共現(xiàn)矩陣計算模塊,用于根據(jù)所述義原詞匯矩陣,計算得到所述義原詞匯矩陣的共現(xiàn)矩陣;
矩陣分解模塊,用于根據(jù)隨機(jī)梯度下降法分別對所述義原詞匯矩陣和所述共現(xiàn)矩陣進(jìn)行分解,得到第二義原向量;
目標(biāo)值計算模塊,用于根據(jù)所述未知義原詞匯向量和所述第二義原向量,計算得到目標(biāo)值;
目標(biāo)義原向量計算模塊,用于根據(jù)所述目標(biāo)值和所述第一義原向量,計算得到目標(biāo)義原向量;
其中,所述義原詞匯矩陣由0和1表示,1表示對應(yīng)的詞匯包括對應(yīng)的義原,0表示對應(yīng)的詞匯不包括對應(yīng)的義原。
可選地,所述矩陣分解模塊具體用于根據(jù)隨機(jī)梯度下降法和損失函數(shù)分別對所述義原詞匯矩陣和所述共現(xiàn)矩陣進(jìn)行分解,得到第二義原向量;
其中,所述損失函數(shù)為:
l=∑w∈w,s∈s(w·(s+s')+bw+bs-mws)2+λ∑s,t∈s(s·t-cst)2
w為所述未知義原詞匯向量,s為s'分別為第一預(yù)設(shè)義原向量和第二預(yù)設(shè)義原向量,λ為預(yù)設(shè)系數(shù),mws、cst、w、s分別為所述義原詞匯矩陣、所述共現(xiàn)矩陣、所述未知義原詞匯向量和所述第一預(yù)設(shè)義原向量中的元素,bw為所述未知義原詞匯向量的偏置,bs為所述第一預(yù)設(shè)義原向量的偏置。
由上述技術(shù)方案可知,本發(fā)明實施例通過未知義原詞匯與每個已知義原詞匯的向量距離確定各未知義原詞匯的備選義原集合,進(jìn)一步計算備選義原集合中各義原的分?jǐn)?shù),并由此得到各未知義原詞匯的第一義原向量,可以自動地對未知義原詞匯進(jìn)行準(zhǔn)確地義原預(yù)測,減輕手工標(biāo)注的壓力,并減少由不同人標(biāo)注對結(jié)果產(chǎn)生的可能偏差。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些圖獲得其他的附圖。
圖1為本發(fā)明一實施例提供的一種詞匯義原的自動預(yù)測方法的流程示意圖;
圖2為本發(fā)明一實施例提供的“古董店”詞匯的義原示意圖;
圖3為本發(fā)明一實施例提供的“apple”詞匯的義原示意圖;
圖4為本發(fā)明一實施例提供的備選義原集合進(jìn)行選擇的流程示意圖;
圖5為本發(fā)明一實施例提供的一種詞匯義原的自動預(yù)測裝置的結(jié)構(gòu)示意圖。
具體實施方式
下面結(jié)合附圖,對本發(fā)明的具體實施方式作進(jìn)一步描述。以下實施例僅用于更加清楚地說明本發(fā)明的技術(shù)方案,而不能以此來限制本發(fā)明的保護(hù)范圍。
圖1示出了本實施例提供的一種詞匯義原的自動預(yù)測方法的流程示意圖,包括:
s101、根據(jù)每個預(yù)設(shè)詞匯的詞向量,計算各未知義原詞匯與每個已知義原詞匯的向量距離。
其中,所述預(yù)設(shè)詞匯包括已知義原詞匯和未知義原詞匯。
具體地,首先對一個大的語料庫統(tǒng)計各個詞匯的詞頻以及不同詞匯之間的上下位關(guān)系;然后利用隨機(jī)梯度下降實現(xiàn)共現(xiàn)矩陣分解以得到詞匯的詞向量。
共現(xiàn)矩陣蘊含了豐富的文本信息以及詞與詞之間的相互關(guān)系,通過矩陣分解降維,得到詞匯的低維表示依然可以很好地體現(xiàn)詞匯與詞匯之間的相互關(guān)系。
每個預(yù)設(shè)詞匯的義原向量的內(nèi)容如圖2和3所示,圖2為中文的“古董店”包括的義原,圖3為英文的“apple”包括的義原。
s102、根據(jù)各向量距離和距離閾值,選擇至少一個目標(biāo)已知義原詞匯作為各未知義原詞匯的備選義原集合。
對于未知義原詞匯,備選義原集合的選擇如圖4所示,在向量空間中找若干個離它最近的已知義原詞匯,把他們的義原作為備選義原集合。并且需要根據(jù)詞匯間的距離,給這些義原打分。
具體地,首先對于每個新詞計算它與已知義原向量的詞匯的距離;并且選擇最近的若干個詞匯。對于選出來的最近的詞匯,計算它們的義原對于新詞的權(quán)重。
假設(shè)一個詞匯和新詞越近,那么這個詞匯的義原更可能是新詞的義原,所以對于任意一個義原,它對于一個新詞,能得到的分?jǐn)?shù)可以如下表示:
其中w表示新詞,s表示一個義原,w是所有已知義原詞匯的集合,mvs表示詞匯v是否有義原s,有則為1,否則為0,得到的pr(s|w)越高,s越可能是v的義原。
實際上,真正地計算上述過程要復(fù)雜很多,由于歸一化的向量之間的距離在(-1,1)之間,所以不能很好地區(qū)分不同的義原,所以我們讓距離越近的詞匯的義原有更大的權(quán)重,我們引入超參數(shù)p,對于第k近的詞匯,乘上pk使得不同詞匯的義原之間的區(qū)分度更大,并且乘上一個指數(shù)衰減的系數(shù)保證了pr(s|w)在一定的范圍內(nèi),不會發(fā)散。
s103、根據(jù)備選義原集合中各目標(biāo)已知義原詞匯的義原向量,計算得到各未知義原詞匯的各義原的分?jǐn)?shù)。
s104、根據(jù)分?jǐn)?shù)閾值和各義原的分?jǐn)?shù),得到各未知義原詞匯的第一義原向量。
具體地,詞匯往往與它相似的詞共享義原,比如中國和美國都共享“?!?,“國家”等義原,但是很多詞往往有自己的義原,所以提出了本實施例提供的方法,既能從相近的詞學(xué)到義原,也能學(xué)習(xí)到特有的義原。
本實施例通過未知義原詞匯與每個已知義原詞匯的向量距離確定各未知義原詞匯的備選義原集合,進(jìn)一步計算備選義原集合中各義原的分?jǐn)?shù),并由此得到各未知義原詞匯的第一義原向量,可以自動地對未知義原詞匯進(jìn)行準(zhǔn)確地義原預(yù)測,減輕手工標(biāo)注的壓力,并減少由不同人標(biāo)注對結(jié)果產(chǎn)生的可能偏差。
進(jìn)一步地,在上述方法實施例的基礎(chǔ)上,所述方法還包括:
s100、獲取預(yù)設(shè)義原,根據(jù)隨機(jī)梯度下降法和所述預(yù)設(shè)義原計算得到每個預(yù)設(shè)詞匯的詞向量。
其中,預(yù)設(shè)義原包括1400個常見的義原。
進(jìn)一步地,在上述方法實施例的基礎(chǔ)上,所述根據(jù)分?jǐn)?shù)閾值和各義原的分?jǐn)?shù),得到各未知義原詞匯的義原向量之后,還包括:
s105、根據(jù)預(yù)設(shè)義原向量和未知義原詞匯向量,得到義原詞匯矩陣;
其中,所述義原詞匯矩陣由0和1表示,1表示對應(yīng)的詞匯包括對應(yīng)的義原,0表示對應(yīng)的詞匯不包括對應(yīng)的義原。
s106、根據(jù)所述義原詞匯矩陣,計算得到所述義原詞匯矩陣的共現(xiàn)矩陣;
義原與義原的共現(xiàn)矩陣蘊含了豐富的義原之間的關(guān)系,就如同詞匯的共現(xiàn)矩陣可以用于生成詞向量,義原共現(xiàn)矩陣也能輔助生成更好的義原向量。
s107、根據(jù)隨機(jī)梯度下降法分別對所述義原詞匯矩陣和所述共現(xiàn)矩陣進(jìn)行分解,得到第二義原向量;
具體地,首先計算詞匯與義原的01矩陣;然后計算義原與義原的共現(xiàn)矩陣;最后利用隨機(jī)梯度下降的方法分解以上兩個矩陣來得到義原向量。
s108、根據(jù)所述未知義原詞匯向量和所述第二義原向量,計算得到目標(biāo)值;
s109、根據(jù)所述目標(biāo)值和所述第一義原向量,計算得到目標(biāo)義原向量;
進(jìn)一步地,在上述方法實施例的基礎(chǔ)上,s107具體包括:
根據(jù)隨機(jī)梯度下降法和損失函數(shù)分別對所述義原詞匯矩陣和所述共現(xiàn)矩陣進(jìn)行分解,得到第二義原向量;
其中,所述損失函數(shù)為:
l=∑w∈w,s∈s(w·(s+s′)+bw+bs-mws)2+λ∑s,t∈s(s·t-cst)2
w為所述未知義原詞匯向量,s為s′分別為第一預(yù)設(shè)義原向量和第二預(yù)設(shè)義原向量,λ為預(yù)設(shè)系數(shù),mws、cst、w、s分別為所述義原詞匯矩陣、所述共現(xiàn)矩陣、所述未知義原詞匯向量和所述第一預(yù)設(shè)義原向量中的元素,bw為所述未知義原詞匯向量的偏置,bs為所述第一預(yù)設(shè)義原向量的偏置。
通過梯度下降使得l降低從而得到一個好的義原向量表示,最后可以用如下函數(shù)來計算一個新詞與一個義原的可能關(guān)系:
pr(s|w)=∑v∈wcos(v,w)mvs+λcos(w,s)
目前還沒有義原的自動預(yù)測模型,現(xiàn)有的方式是通過人來手工標(biāo)注,耗時耗力,而且標(biāo)注效果因人而異,會對義原的準(zhǔn)確性產(chǎn)生較大的影響。本實施例可以利用現(xiàn)有的標(biāo)注數(shù)據(jù)來自動預(yù)測義原,使用hownet的一部分?jǐn)?shù)據(jù)作為測試集來測試,可以發(fā)現(xiàn),本實施例的結(jié)果和人工標(biāo)注有很大程度的重合,準(zhǔn)確度較高。并且,本實施例的模型能夠發(fā)現(xiàn)一些hownet中并沒有標(biāo)記出的推薦義元,而這些新發(fā)現(xiàn)的候選義原結(jié)果也具有相當(dāng)?shù)恼_性。
圖5示出了本實施例提供的一種詞匯義原的自動預(yù)測裝置的結(jié)構(gòu)示意圖,所述裝置包括:距離計算模塊501、義原集合確定模塊502、義原分?jǐn)?shù)計算模塊503和義原向量確定模塊504,其中:
所述距離計算模塊501用于根據(jù)每個預(yù)設(shè)詞匯的詞向量,計算各未知義原詞匯與每個已知義原詞匯的向量距離;
所述義原集合確定模塊502用于根據(jù)各向量距離和距離閾值,選擇至少一個目標(biāo)已知義原詞匯作為各未知義原詞匯的備選義原集合;
所述義原分?jǐn)?shù)計算模塊503用于根據(jù)備選義原集合中各目標(biāo)已知義原詞匯的義原向量,計算得到各未知義原詞匯的各義原的分?jǐn)?shù);
所述義原向量確定模塊504用于根據(jù)分?jǐn)?shù)閾值和各義原的分?jǐn)?shù),得到各未知義原詞匯的第一義原向量;
其中,所述預(yù)設(shè)詞匯包括已知義原詞匯和未知義原詞匯。
具體地,所述距離計算模塊501根據(jù)每個預(yù)設(shè)詞匯的詞向量,計算各未知義原詞匯與每個已知義原詞匯的向量距離;所述義原集合確定模塊502根據(jù)各向量距離和距離閾值,選擇至少一個目標(biāo)已知義原詞匯作為各未知義原詞匯的備選義原集合;所述義原分?jǐn)?shù)計算模塊503根據(jù)備選義原集合中各目標(biāo)已知義原詞匯的義原向量,計算得到各未知義原詞匯的各義原的分?jǐn)?shù);所述義原向量確定模塊504根據(jù)分?jǐn)?shù)閾值和各義原的分?jǐn)?shù),得到各未知義原詞匯的第一義原向量。
本實施例通過未知義原詞匯與每個已知義原詞匯的向量距離確定各未知義原詞匯的備選義原集合,進(jìn)一步計算備選義原集合中各義原的分?jǐn)?shù),并由此得到各未知義原詞匯的第一義原向量,可以自動地對未知義原詞匯進(jìn)行準(zhǔn)確地義原預(yù)測,減輕手工標(biāo)注的壓力,并減少由不同人標(biāo)注對結(jié)果產(chǎn)生的可能偏差。
進(jìn)一步地,在上述裝置實施例的基礎(chǔ)上,所述裝置還包括:
詞向量計算模塊,用于獲取預(yù)設(shè)義原,根據(jù)隨機(jī)梯度下降法和所述預(yù)設(shè)義原計算得到每個預(yù)設(shè)詞匯的詞向量。
進(jìn)一步地,在上述裝置實施例的基礎(chǔ)上,所述裝置還包括:
義原詞匯矩陣獲取模塊,用于根據(jù)預(yù)設(shè)義原向量和未知義原詞匯向量,得到義原詞匯矩陣;
共現(xiàn)矩陣計算模塊,用于根據(jù)所述義原詞匯矩陣,計算得到所述義原詞匯矩陣的共現(xiàn)矩陣;
矩陣分解模塊,用于根據(jù)隨機(jī)梯度下降法分別對所述義原詞匯矩陣和所述共現(xiàn)矩陣進(jìn)行分解,得到第二義原向量;
目標(biāo)值計算模塊,用于根據(jù)所述未知義原詞匯向量和所述第二義原向量,計算得到目標(biāo)值;
目標(biāo)義原向量計算模塊,用于根據(jù)所述目標(biāo)值和所述第一義原向量,計算得到目標(biāo)義原向量;
其中,所述義原詞匯矩陣由0和1表示,1表示對應(yīng)的詞匯包括對應(yīng)的義原,0表示對應(yīng)的詞匯不包括對應(yīng)的義原。
進(jìn)一步地,在上述裝置實施例的基礎(chǔ)上,所述矩陣分解模塊具體用于根據(jù)隨機(jī)梯度下降法和損失函數(shù)分別對所述義原詞匯矩陣和所述共現(xiàn)矩陣進(jìn)行分解,得到第二義原向量;
其中,所述損失函數(shù)為:
l=σw∈w,s∈s(w·(s+s')+bw+bs-mws)2+λσs,t∈s(s·t-cst)2
w為所述未知義原詞匯向量,s為s'分別為第一預(yù)設(shè)義原向量和第二預(yù)設(shè)義原向量,λ為預(yù)設(shè)系數(shù),mws、cst、w、s分別為所述義原詞匯矩陣、所述共現(xiàn)矩陣、所述未知義原詞匯向量和所述第一預(yù)設(shè)義原向量中的元素,bw為所述未知義原詞匯向量的偏置,bs為所述第一預(yù)設(shè)義原向量的偏置。
本實施例所述的詞匯義原的自動預(yù)測裝置可以用于執(zhí)行上述方法實施例,其原理和技術(shù)效果類似,此處不再贅述。
以上所描述的裝置實施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部模塊來實現(xiàn)本實施例方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性的勞動的情況下,即可以理解并實施。
通過以上的實施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到各實施方式可借助軟件加必需的通用硬件平臺的方式來實現(xiàn),當(dāng)然也可以通過硬件。基于這樣的理解,上述技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機(jī)軟件產(chǎn)品可以存儲在計算機(jī)可讀存儲介質(zhì)中,如rom/ram、磁碟、光盤等,包括若干指令用以使得一臺計算機(jī)設(shè)備(可以是個人計算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行各個實施例或者實施例的某些部分所述的方法。
應(yīng)說明的是:以上實施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述實施例對本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對前述各實施例所記載的技術(shù)方案進(jìn)行修改,或者對其中部分技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的精神和范圍。