本發(fā)明屬于自然語言處理技術(shù)領(lǐng)域,更具體地,涉及一種融合詞性與位置信息的詞向量訓(xùn)練方法及系統(tǒng)。
背景技術(shù):
近年來,隨著移動互聯(lián)網(wǎng)技術(shù)的飛速發(fā)展,使得互聯(lián)網(wǎng)中數(shù)據(jù)的規(guī)模急速增長,也使得數(shù)據(jù)的復(fù)雜度急劇增高。這就使得對這些海量的無結(jié)構(gòu)、未標(biāo)注數(shù)據(jù)的處理分析成為一大難題。
傳統(tǒng)的機(jī)器學(xué)習(xí)方法采用特征工程(featureengineering)對數(shù)據(jù)進(jìn)行符號化表示以便于模型的建模與求解,但特征工程中常用的詞袋表示技術(shù)如one-hot向量隨著數(shù)據(jù)復(fù)雜度的增長,特征的維度也會急劇增加從而導(dǎo)致維度災(zāi)難問題。并且基于one-hot向量表示的方法還存在語義鴻溝現(xiàn)象。隨著“如果兩個(gè)詞上下文相似,那么它們的語義也相似”的分布假說(distributionalhypothesis)被提出,基于分布假說的單詞分布表示技術(shù)不斷地被提出。其中最主要的有基于矩陣的分布表示、基于聚類的分布表示及基于詞向量的分布表示。但無論是基于矩陣表示還是基于聚類表示的分布表示方法雖然能夠在特征維度較小時(shí)表達(dá)簡單的上下文信息。但當(dāng)特征維度較高時(shí),模型對于上下文的表達(dá)尤其是對復(fù)雜上下文的表達(dá)就無能為力。而基于詞向量的表示技術(shù),使得無論是對于每個(gè)單詞的表示,還是通過線性組合的方法來表示單詞的上下文都避免了出現(xiàn)維度災(zāi)難的問題。而且由于單詞之間的距離可以通過他們所對應(yīng)詞向量之間的余弦距離或歐式距離來衡量,這也在很大程度上消除了傳統(tǒng)的詞袋模型中的語義鴻溝的問題。
然而,目前已有的詞向量研究工作大都集中在通過簡化模型中神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)來減少模型復(fù)雜度,有的工作融合了情感、主題等信息,而融合詞性信息的研究工作很少且在這些很少的工作中針對的詞性粒度比較大,對于詞性信息的利用很不充分,對于詞性信息的更新也不太合理。
技術(shù)實(shí)現(xiàn)要素:
針對現(xiàn)有技術(shù)的以上缺陷或改進(jìn)需求,本發(fā)明的目的在于提供了一種融合詞性與位置信息的詞向量訓(xùn)練方法及系統(tǒng),由此解決現(xiàn)有技術(shù)中融合詞性信息的研究工作中針對的詞性粒度比較大,對于詞性信息的利用很不充分,對于詞性信息的更新也不太合理的技術(shù)問題。
為實(shí)現(xiàn)上述目的,按照本發(fā)明的一個(gè)方面,提供了一種融合詞性與位置信息的詞向量訓(xùn)練方法,包括如下步驟:
s1、對原始文本進(jìn)行預(yù)處理得到目標(biāo)文本;
s2、根據(jù)單詞的上下文信息,采用詞性標(biāo)注集中的詞性對目標(biāo)文本中的單詞進(jìn)行詞性標(biāo)注;
s3、根據(jù)標(biāo)注的詞性信息進(jìn)行建模構(gòu)建詞性關(guān)聯(lián)權(quán)重矩陣m,以及針對詞性對所對應(yīng)單詞對的相對位置i進(jìn)行建模,構(gòu)建與位置對應(yīng)的位置詞性關(guān)聯(lián)權(quán)重矩陣mi',其中,矩陣m的行列維度為詞性標(biāo)注集中詞性的種類大小,矩陣m中的元素為該元素的行對應(yīng)單詞的詞性與該元素的列對應(yīng)單詞的詞性的共現(xiàn)概率,矩陣mi'的行列維度與矩陣m相同,矩陣mi'中的元素為該元素的行對應(yīng)單詞的詞性與該元素的列對應(yīng)單詞的詞性在相對位置i時(shí)的共現(xiàn)概率;
s4、將建模后的矩陣m和矩陣mi'融合到skip-gram詞向量模型中構(gòu)建目標(biāo)模型,由目標(biāo)模型進(jìn)行詞向量學(xué)習(xí)得到目標(biāo)詞向量,其中,目標(biāo)詞向量用于單詞類比任務(wù)以及單詞相似度任務(wù)。
優(yōu)選地,步驟s2具體包括以下子步驟:
s2.1、對目標(biāo)文本進(jìn)行分詞,以區(qū)分出目標(biāo)文本中的所有單詞;
s2.2、對目標(biāo)文本中的每個(gè)句子,根據(jù)單詞在句子中的上下文信息,采用詞性標(biāo)注集中的詞性對單詞進(jìn)行詞性標(biāo)注。
優(yōu)選地,步驟s3具體包括以下子步驟:
s3.1、對目標(biāo)文本中的每個(gè)單詞,生成針對單詞及其對應(yīng)的詞性構(gòu)成的單詞-詞性對,根據(jù)單詞-詞性對構(gòu)建詞性關(guān)聯(lián)權(quán)重矩陣m,其中,矩陣m的行列維度為詞性標(biāo)注集中詞性的種類大小,矩陣m中的元素為該元素的行對應(yīng)單詞的詞性與該元素的列對應(yīng)單詞的詞性的共現(xiàn)概率;
s3.2、針對詞性對所對應(yīng)單詞對的相對位置i進(jìn)行建模,構(gòu)建與位置對應(yīng)的位置詞性關(guān)聯(lián)權(quán)重矩陣m′i,其中,矩陣m′i的行列維度與矩陣m相同,矩陣m′i中的元素為該元素的行對應(yīng)單詞的詞性與該元素的列對應(yīng)單詞的詞性在相對位置i時(shí)的共現(xiàn)概率。
優(yōu)選地,步驟s4具體包括以下子步驟:
s4.1、構(gòu)建初始目標(biāo)函數(shù):
s4.2、將建模后的矩陣m和矩陣mi'融合到基于負(fù)采樣的skip-gram詞向量模型中構(gòu)建目標(biāo)模型,并根據(jù)初始目標(biāo)函數(shù)構(gòu)建目標(biāo)模型的新目標(biāo)函數(shù):
s4.3、對新目標(biāo)函數(shù)進(jìn)行優(yōu)化,將新目標(biāo)函數(shù)取值最大化,并對參數(shù)θu、
按照本發(fā)明的另一方面,提供了一種融合詞性與位置信息的詞向量訓(xùn)練系統(tǒng),包括:
預(yù)處理模塊,用于對原始文本進(jìn)行預(yù)處理得到目標(biāo)文本;
詞性標(biāo)注模塊,用于根據(jù)單詞的上下文信息,采用詞性標(biāo)注集中的詞性對目標(biāo)文本中的單詞進(jìn)行詞性標(biāo)注;
位置詞性融合模塊,用于根據(jù)標(biāo)注的詞性信息進(jìn)行建模構(gòu)建詞性關(guān)聯(lián)權(quán)重矩陣m,以及針對詞性對所對應(yīng)單詞對的相對位置i進(jìn)行建模,構(gòu)建與位置對應(yīng)的位置詞性關(guān)聯(lián)權(quán)重矩陣m′i,其中,矩陣m的行列維度為詞性標(biāo)注集中詞性的種類大小,矩陣m中的元素為該元素的行對應(yīng)單詞的詞性與該元素的列對應(yīng)單詞的詞性的共現(xiàn)概率,矩陣m′i的行列維度與矩陣m相同,矩陣m′i中的元素為該元素的行對應(yīng)單詞的詞性與該元素的列對應(yīng)單詞的詞性在相對位置i時(shí)的共現(xiàn)概率;
詞向量學(xué)習(xí)模塊,用于將建模后的矩陣m和矩陣m′i融合到skip-gram詞向量模型中構(gòu)建目標(biāo)模型,由目標(biāo)模型進(jìn)行詞向量學(xué)習(xí)得到目標(biāo)詞向量,其中,目標(biāo)詞向量用于單詞類比任務(wù)以及單詞相似度任務(wù)。
優(yōu)選地,所述詞性標(biāo)注模塊包括:
分詞模塊,用于對目標(biāo)文本進(jìn)行分詞,以區(qū)分出目標(biāo)文本中的所有單詞;
詞性標(biāo)注子模塊,用于對目標(biāo)文本中的每個(gè)句子,根據(jù)單詞在句子中的上下文信息,采用詞性標(biāo)注集中的詞性對單詞進(jìn)行詞性標(biāo)注。
優(yōu)選地,所述位置詞性融合模塊包括:
詞性信息建模模塊,用于對目標(biāo)文本中的每個(gè)單詞,生成針對單詞及其對應(yīng)的詞性構(gòu)成的單詞-詞性對,根據(jù)單詞-詞性對構(gòu)建詞性關(guān)聯(lián)權(quán)重矩陣m,其中,矩陣m的行列維度為詞性標(biāo)注集中詞性的種類大小,矩陣m中的元素為該元素的行對應(yīng)單詞的詞性與該元素的列對應(yīng)單詞的詞性的共現(xiàn)概率;
位置信息建模模塊,用于針對詞性對所對應(yīng)單詞對的相對位置i進(jìn)行建模,構(gòu)建與位置對應(yīng)的位置詞性關(guān)聯(lián)權(quán)重矩陣m′i,其中,矩陣m′i的行列維度與矩陣m相同,矩陣m′i中的元素為該元素的行對應(yīng)單詞的詞性與該元素的列對應(yīng)單詞的詞性在相對位置i時(shí)的共現(xiàn)概率。
優(yōu)選地,所述詞向量學(xué)習(xí)模塊包括:
初始目標(biāo)函數(shù)構(gòu)建模塊,用于構(gòu)建初始目標(biāo)函數(shù):
新目標(biāo)函數(shù)構(gòu)建模塊,用于將建模后的矩陣m和矩陣m′i融合到基于負(fù)采樣的skip-gram詞向量模型中構(gòu)建目標(biāo)模型,并根據(jù)初始目標(biāo)函數(shù)構(gòu)建目標(biāo)模型的新目標(biāo)函數(shù):
詞向量學(xué)習(xí)子模塊,用于對新目標(biāo)函數(shù)進(jìn)行優(yōu)化,將新目標(biāo)函數(shù)取值最大化,并對參數(shù)θu、
總體而言,本發(fā)明方法與現(xiàn)有技術(shù)方案相比,能夠取得下列有益效果:
(1)通過構(gòu)建基于詞性關(guān)聯(lián)關(guān)系與位置關(guān)聯(lián)關(guān)系的關(guān)聯(lián)矩陣,可以很好地對單詞間的詞性和位置信息進(jìn)行建模。
(2)通過將已經(jīng)建模好的基于詞性信息以及位置信息的關(guān)聯(lián)矩陣融合到基于負(fù)采樣的skip-gram詞向量學(xué)習(xí)模型中,一方面可以得到更好的詞向量結(jié)果,另一方面也可以得到用于模型訓(xùn)練的語料庫中詞性間的關(guān)聯(lián)關(guān)系權(quán)重。
(3)由于模型采用了負(fù)采樣的優(yōu)化策略,使得模型的訓(xùn)練速度也比較快。
附圖說明
圖1為本發(fā)明實(shí)施例公開的一種融合詞性與位置信息的詞向量訓(xùn)練方法的流程示意圖;
圖2為本發(fā)明實(shí)施例公開的一種詞性和位置信息的建模模型圖;
圖3為本發(fā)明實(shí)施例公開的一種整體流程簡化示意圖;
圖4為本發(fā)明實(shí)施例公開的另一種融合詞性與位置信息的詞向量訓(xùn)練方法的流程示意圖。
具體實(shí)施方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅用以解釋本發(fā)明,并不用于限定本發(fā)明。此外,下面所描述的本發(fā)明各個(gè)實(shí)施方式中所涉及到的技術(shù)特征只要彼此之間未構(gòu)成沖突就可以相互組合。
由于已有詞向量學(xué)習(xí)方法忽略詞性及其在自然語言中的重要性,本發(fā)明提供一種融合詞性與位置信息的詞向量學(xué)習(xí)方法。該方法旨在原有skip-gram模型的基礎(chǔ)上考慮單詞之間的詞性關(guān)聯(lián)關(guān)系與位置關(guān)系,以便讓模型能訓(xùn)練出融合更多信息的詞向量結(jié)果,并利用學(xué)習(xí)到的詞向量來更好地完成單詞類比任務(wù)及單詞相似度任務(wù)。
如圖1所示為本發(fā)明實(shí)施例公開的一種融合詞性與位置信息的詞向量學(xué)習(xí)方法的流程示意圖,在圖1所示的方法中包括以下步驟:
s1、對原始文本進(jìn)行預(yù)處理得到目標(biāo)文本;
由于獲得的原始文本中存在著大量的無用信息如xml標(biāo)簽、網(wǎng)頁鏈接、圖片鏈接以及如“[”、“@”,“&”,“#”等,這些無用信息不但對詞向量的訓(xùn)練無益,甚至?xí)蔀樵肼晹?shù)據(jù),影響詞向量的學(xué)習(xí),因此需要將這些信息過濾掉,可以利用perl腳本將這些信息過濾掉。
s2、根據(jù)單詞的上下文信息,采用詞性標(biāo)注集中的詞性對目標(biāo)文本中的單詞進(jìn)行詞性標(biāo)注;
由于在本發(fā)明提出的方法中要使用單詞的詞性信息,因此需要利用一些詞性標(biāo)注工具對文本進(jìn)行詞性標(biāo)注。由于一個(gè)單詞所處上下文的不同導(dǎo)致其可能具有多個(gè)詞性,為了解決這個(gè)問題可以提前將文本進(jìn)行詞性標(biāo)注,借助其上下文信息進(jìn)行詞性標(biāo)注。步驟s2具體包括以下子步驟:
s2.1、對目標(biāo)文本進(jìn)行分詞,以區(qū)分出目標(biāo)文本中的所有單詞;
其中,可以利用opennlp中的tokenize分詞工具將文本進(jìn)行分詞,比如“ibuyanapple.”中如果不分詞的話常見單詞“apple”就會成為“apple.”這個(gè)不存在的單詞,影響詞向量的學(xué)習(xí)。
s2.2、對目標(biāo)文本中的每個(gè)句子,根據(jù)單詞在句子中的上下文信息,采用詞性標(biāo)注集中的詞性對單詞進(jìn)行詞性標(biāo)注。
其中,一次性地對一整個(gè)句子進(jìn)行詞性標(biāo)注,這樣就可以將同一個(gè)單詞根據(jù)其所處上下文而可以具有的多個(gè)詞性區(qū)分開來。這里單詞被賦予的詞性屬于penntreebankpos詞性標(biāo)注集。
如“iloveyou.”和“shegivehersontoomuchlove.”進(jìn)行詞標(biāo)注后的兩個(gè)句子就成為:
i_prp(代詞)love_vbp(動詞)you_prp(代詞)._.;
she_prp(代詞)give_vb(動詞)her_prp$(代詞)son_nn(名詞)too_rb(副詞)much_jj(形容詞)love_nn(名詞)._.。
s3、根據(jù)標(biāo)注的詞性信息進(jìn)行建模構(gòu)建詞性關(guān)聯(lián)權(quán)重矩陣m,以及針對詞性對所對應(yīng)單詞對的相對位置i進(jìn)行建模,構(gòu)建與位置對應(yīng)的位置詞性關(guān)聯(lián)權(quán)重矩陣m′i,其中,矩陣m的行列維度為詞性標(biāo)注集中詞性的種類大小,矩陣m中的元素為該元素的行對應(yīng)單詞的詞性與該元素的列對應(yīng)單詞的詞性的共現(xiàn)概率,矩陣m′i的行列維度與矩陣m相同,矩陣m′i中的元素為該元素的行對應(yīng)單詞的詞性與該元素的列對應(yīng)單詞的詞性在相對位置i時(shí)的共現(xiàn)概率;如圖2所示本發(fā)明實(shí)施例公開的一種詞性和位置信息的建模模型圖,其中,行列中的t0~tn表示詞性,m′i(tt,tt-2)表示詞性tt與詞性tt-2在相對位置i時(shí)的共現(xiàn)概率。
其中,在獲得單詞的詞性之后,如何將詞性信息參與到詞向量學(xué)習(xí)模型中并對新模型進(jìn)行求解,就需要首先對詞性信息進(jìn)行建模。建模的目標(biāo)為建立行列維度都為詞性標(biāo)注集中詞性的種類大小的詞性關(guān)聯(lián)關(guān)系矩陣,矩陣中的元素即為兩個(gè)詞性出現(xiàn)的概率。除此之外,還要針對位置關(guān)系進(jìn)行建模,因?yàn)閮蓚€(gè)詞性共現(xiàn)時(shí)它們之間的位置關(guān)系也是十分重要的。步驟s3具體包括以下子步驟:
s3.1、對目標(biāo)文本中的每個(gè)單詞,生成針對單詞及其對應(yīng)的詞性構(gòu)成的單詞-詞性對,根據(jù)單詞-詞性對構(gòu)建詞性關(guān)聯(lián)權(quán)重矩陣m,其中,矩陣m的行列維度為詞性標(biāo)注集中詞性的種類大小,矩陣m中的元素為該元素的行對應(yīng)單詞的詞性與該元素的列對應(yīng)單詞的詞性的共現(xiàn)概率;
例如對于“shegivehersontoomuchlove.”中的單詞son來說,其詞性為nn,單詞her的詞性為prp,則矩陣中詞性prp對應(yīng)的行以及詞性nn對應(yīng)的列所指定的元素即為兩個(gè)詞性的共現(xiàn)概率(即權(quán)值)。
s3.2、針對詞性對所對應(yīng)單詞對的相對位置i進(jìn)行建模,構(gòu)建與位置對應(yīng)的位置詞性關(guān)聯(lián)權(quán)重矩陣m′i,其中,矩陣m′i的行列維度與矩陣m相同,矩陣m′i中的元素為該元素的行對應(yīng)單詞的詞性與該元素的列對應(yīng)單詞的詞性在相對位置i時(shí)的共現(xiàn)概率(即權(quán)值)。
例如,若窗口大小為2c,則i∈[-c,c]。當(dāng)窗口大小為6時(shí),則就要建立m′-3、m′-2、m′-1、m′1、m′2、m′3共6個(gè)矩陣。
例如對于“shegivehersontoomuchlove.”中的son和her,當(dāng)son為目標(biāo)詞時(shí),這兩個(gè)單詞詞性所對應(yīng)的詞性與位置的關(guān)聯(lián)權(quán)值為m′-1(prp,nn)。
s4、將建模后的矩陣m和矩陣m′i融合到skip-gram詞向量模型中構(gòu)建目標(biāo)模型,由目標(biāo)模型進(jìn)行詞向量學(xué)習(xí)得到目標(biāo)詞向量,其中,目標(biāo)詞向量用于單詞類比任務(wù)以及單詞相似度任務(wù)。
其中,步驟s4具體包括以下子步驟:
s4.1、構(gòu)建初始目標(biāo)函數(shù):
由于skip-gram模型思想相同即通過目標(biāo)詞wt預(yù)測上下文中的單詞v(wt+i)其中,i表示wt+i與wt之間的位置關(guān)系。以樣本(context(wt),wt)為例,其中|context(wt)|=2c,其中,context(wt)是由單詞wt前后各c個(gè)詞組成。目標(biāo)模型的最終優(yōu)化目標(biāo)依然是對整個(gè)訓(xùn)練語料庫來說,使得所有通過目標(biāo)詞wt來預(yù)測上下文單詞的概率最大化也即最優(yōu)化初始目標(biāo)函數(shù)。
例如樣本“shegivehersontoomuchlove.”單詞son為目標(biāo)詞wt,c為3,則context(wt)={she,give,her,too,much,love}。
s4.2、將建模后的矩陣m和矩陣m′i融合到基于負(fù)采樣的skip-gram詞向量模型中構(gòu)建目標(biāo)模型,并根據(jù)初始目標(biāo)函數(shù)構(gòu)建目標(biāo)模型的新目標(biāo)函數(shù):
例如樣本“shegivehersontoomuchlove.”單詞son為正樣本,此時(shí)單詞son的標(biāo)簽為1,對于其他單詞如dog、flower等就是負(fù)樣本,其標(biāo)簽為0。
如圖3所示為本發(fā)明實(shí)施例公開的一種整體流程簡化示意圖,構(gòu)建的目標(biāo)模型具有輸入層、投影層、輸出層三層。其中:
輸入層的輸入為中心單詞w(t),輸出的是中心單詞w(t)對應(yīng)的詞向量;
投影層主要是對輸入層的輸出結(jié)果進(jìn)行投影,在該模型中投影層的輸入和輸出都是中心單詞w(t)的詞向量;
輸出層主要是利用中心單詞w(t)來預(yù)測如w(t-2),w(t-1),w(t+1),w(t+2)等上下文單詞的詞向量。
本發(fā)明主要目的是利用中心單詞w(t)來預(yù)測其上下文單詞時(shí),考慮中心單詞與其上下文單詞的詞性與位置關(guān)系。
s4.3、對新目標(biāo)函數(shù)進(jìn)行優(yōu)化,將新目標(biāo)函數(shù)取值最大化,并對參數(shù)θu、
例如可以采用隨機(jī)梯度上升法(stochasticgradientascent,sga)對新目標(biāo)函數(shù)進(jìn)行優(yōu)化即將新目標(biāo)函數(shù)取值最大化。并對參數(shù)θu、
可選地,可以采用如下所示的方式進(jìn)行更新及梯度計(jì)算得到目標(biāo)詞向量:
如圖4所示為本發(fā)明實(shí)施例提供的另一種融合詞性與位置信息的詞向量訓(xùn)練方法的流程示意圖,在圖4所示的方法中,包括數(shù)據(jù)預(yù)處理、分詞及詞性標(biāo)注、詞性與位置信息建模、詞向量訓(xùn)練、任務(wù)評估五個(gè)步驟。其中數(shù)據(jù)預(yù)處理、分詞及詞性標(biāo)注、詞性與位置信息建模、詞向量訓(xùn)練如實(shí)施例1所描述的方法步驟,任務(wù)評估可以利用上面學(xué)習(xí)到的帶有詞性和位置信息的目標(biāo)詞向量后,可以將目標(biāo)詞向量用于單詞類比任務(wù)以及單詞相似度等任務(wù)中。主要包括以下兩個(gè)步驟:
用學(xué)習(xí)到的目標(biāo)詞向量做單詞類比任務(wù)。例如對于兩個(gè)單詞對<king,queen>和<man,woman>,通過對這些單詞對所對應(yīng)的詞向量進(jìn)行計(jì)算會發(fā)現(xiàn)存在v(king)–v(queen)=v(man)–v(woman)這樣的關(guān)系。
用學(xué)習(xí)到的目標(biāo)詞向量做單詞相似的任務(wù)。例如給定一個(gè)單詞如“dog”,通過計(jì)算其他單詞與“dog”的余弦距離或歐式距離就可能會得到諸如“puppy”、“cat”等和“dog”有密切關(guān)系的前topn個(gè)單詞。
本領(lǐng)域的技術(shù)人員容易理解,以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。