亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

文本編碼方法及系統(tǒng)與流程

文檔序號:12665981閱讀:1832來源:國知局
文本編碼方法及系統(tǒng)與流程

本發(fā)明涉及自然語言處理領(lǐng)域,尤其是一種文本編碼方法及系統(tǒng)。



背景技術(shù):

隨著人工智能的不斷發(fā)展,人類對人機交互的期待與要求越來越高,自然語言處理作為人機交互中的重要一環(huán),備受人們的關(guān)注。目前,自然語言處理正處于探索階段,句法分析、自然語言信息提取等技術(shù)都是研究熱點。其中,研究人員較為關(guān)注的任務之一是如何可以將自然語言的文本數(shù)據(jù)進行編碼,將編碼后的文本用于復雜的自然語言處理中?,F(xiàn)有的文本編碼方法一般是將文本數(shù)據(jù)表示為二叉樹的形式,基于二叉樹的結(jié)構(gòu)構(gòu)建文本編碼模型,利用該文本編碼模型將文本數(shù)據(jù)映射到一個低維的向量空間中,將文本數(shù)據(jù)表示成向量,所述向量即編碼后的文本表示。然而,基于二叉樹的結(jié)構(gòu)構(gòu)建的文本編碼模型,由于二叉樹的構(gòu)建是直接將每句文本中的詞堆疊在一起,并且二叉樹中的所有子節(jié)點與父節(jié)點之間詞向量的映射使用相同的轉(zhuǎn)換矩陣和偏置項,導致訓練得到的文本編碼模型不能清晰地體現(xiàn)出詞與詞之間的依賴關(guān)系,同時也不能表現(xiàn)出文本的語義信息;因此,使用該文本編碼模型對文本進行編碼時,并不能使編碼后的文本與原文本的句法結(jié)構(gòu)及語義信息更接近,降低了文本編碼的有效性。



技術(shù)實現(xiàn)要素:

本發(fā)明提供一種文本編碼方法及系統(tǒng),以使編碼后的文本與原文本的句法結(jié)構(gòu)及語義信息更接近,提高文本編碼的有效性。

為此,本發(fā)明提供如下技術(shù)方案:

一種文本編碼方法,包括:

預先構(gòu)建基于依存句法樹的文本編碼模型,所述文本編碼模型用于描述不同依存關(guān)系對應的轉(zhuǎn)換矩陣和偏置項、以及每個詞向量映射到隱藏層的轉(zhuǎn)換矩陣和偏置項,相同依存關(guān)系對應相同的轉(zhuǎn)換矩陣和偏置項,不同依 存關(guān)系對應的轉(zhuǎn)換矩陣和/或偏置項不同;

接收待編碼文本;

以句為單位,對所述待編碼文本進行依存句法分析,得到待編碼文本中各句文本的依存句法樹;

利用所述文本編碼模型及待編碼文本中各句文本的依存句法樹對待編碼文本進行編碼,得到編碼后的文本。

優(yōu)選地,所述構(gòu)建基于依存句法樹的文本編碼模型包括:

收集文本數(shù)據(jù);

以句為單位,對所述文本數(shù)據(jù)進行依存句法分析,得到每句文本的依存句法樹,所述依存句法樹中包括句中詞與詞之間的依存關(guān)系;

根據(jù)所有依存句法樹訓練基于依存句法樹的文本編碼模型。

優(yōu)選地,所述方法還包括:

在所述對各詞和詞性標注后的文本進行依存句法分析之前,去除每句文本中的無意義字符及非法字符。

優(yōu)選地,所述對各句文本進行依存句法分析,得到各句文本的依存句法樹包括:

對各句文本進行分詞,得到各句文本中的各詞;

對各詞進行詞性標注;

對各詞和詞性標注后的文本進行依存句法分析,得到各句文本的依存句法樹。

優(yōu)選地,所述根據(jù)所有依存句法樹訓練基于依存句法樹的文本編碼模型包括:

將各依存句法樹中每個詞初始化為詞向量;

前向計算過程:根據(jù)所述依存句法樹中每個詞的詞向量及依存關(guān)系對應的轉(zhuǎn)換矩陣和偏置項計算出各節(jié)點映射到隱藏層的值;

后向預測過程:根據(jù)所述依存句法樹中根節(jié)點隱藏層的值及依存關(guān)系預測出各子節(jié)點隱藏層的值;

參數(shù)更新過程:通過迭代執(zhí)行所述前向計算過程和后向預測過程更新 模型參數(shù),并且當前向計算出的所有節(jié)點隱藏層的值與后向預測出的對應節(jié)點隱藏層的值之間的誤差小于設定閾值時,結(jié)束參數(shù)更新過程,得到基于依存句法樹的文本編碼模型的模型參數(shù)。

優(yōu)選地,所述利用所述文本編碼模型及待編碼文本中各句文本的依存句法樹對待編碼文本進行編碼,得到編碼后的文本包括:

依次將待編碼文本中各句文本的依存句法樹作為文本編碼的結(jié)構(gòu),根據(jù)文本編碼模型的參數(shù),從葉子節(jié)點開始遞歸向上計算每個節(jié)點映射到隱藏層的值,直到根節(jié)點,將計算得到的根節(jié)點映射到隱藏層的值作為該句文本的編碼。

一種文本編碼系統(tǒng),包括:

模型構(gòu)建模塊,用于預先構(gòu)建基于依存句法樹的文本編碼模型,所述文本編碼模型用于描述不同依存關(guān)系對應的轉(zhuǎn)換矩陣和偏置項、以及每個詞向量映射到隱藏層的轉(zhuǎn)換矩陣和偏置項,相同依存關(guān)系對應相同的轉(zhuǎn)換矩陣和偏置項,不同依存關(guān)系對應的轉(zhuǎn)換矩陣和/或偏置項不同。;

文本接收模塊,用于接收待編碼文本;

句法分析模塊,用于以句為單位,對所述待編碼文本進行依存句法分析,得到待編碼文本中各句文本的依存句法樹;

編碼模塊,用于利用所述文本編碼模型及待編碼文本中各句文本的依存句法樹對待編碼文本進行編碼,得到編碼后的文本。

優(yōu)選地,所述模型構(gòu)建模塊包括:

數(shù)據(jù)收集單元,用于收集文本數(shù)據(jù);

句法分析單元,用于以句為單位,對所述文本數(shù)據(jù)進行依存句法分析,得到每句文本的依存句法樹,所述依存句法樹中包括句中詞與詞之間的依存關(guān)系;

模型訓練單元,用于根據(jù)所有依存句法樹訓練基于依存句法樹的文本編碼模型。

優(yōu)選地,所述模型構(gòu)建模塊還包括:

過濾單元,用于在所述句法分析單元對各詞和詞性標注后的文本進行依存句法分析之前,去除每句文本中的無意義字符及非法字符。

優(yōu)選地,所述句法分析單元包括:

分詞單元,用于對各句文本進行分詞,得到各句文本中的各詞;

標注單元,用于對各詞進行詞性標注;

分析單元,用于對各詞和詞性標注后的文本進行依存句法分析,得到各句文本的依存句法樹。

優(yōu)選地,所述模型訓練單元包括:

初始化單元,用于將各依存句法樹中每個詞初始化為詞向量;

前向計算單元,用于執(zhí)行前向計算過程:根據(jù)所述依存句法樹中每個詞的詞向量及依存關(guān)系對應的轉(zhuǎn)換矩陣和偏置項計算出各節(jié)點映射到隱藏層的值;

后向預測單元,用于執(zhí)行后向預測過程:根據(jù)所述依存句法樹中根節(jié)點隱藏層的值及依存關(guān)系預測出各子節(jié)點隱藏層的值;

迭代控制單元,用于執(zhí)行參數(shù)更新過程:通過迭代方式觸發(fā)所述前向計算單元執(zhí)行所述前向計算過程、觸發(fā)所述后向預測單元執(zhí)行所述后向預測過程,以更新模型參數(shù),并且當前向計算出的所有節(jié)點隱藏層的值與后向預測出的對應節(jié)點隱藏層的值之間的誤差小于設定閾值時,結(jié)束參數(shù)更新過程,得到基于依存句法樹的文本編碼模型的模型參數(shù)。

優(yōu)選地,所述編碼模塊,具體用于依次將待編碼文本中各句文本的依存句法樹作為文本編碼的結(jié)構(gòu),根據(jù)文本編碼模型的參數(shù),從葉子節(jié)點開始遞歸向上計算每個節(jié)點映射到隱藏層的值,直到根節(jié)點,將計算得到的根節(jié)點映射到隱藏層的值作為該句文本的編碼。

本發(fā)明實施例提供的文本編碼方法及系統(tǒng),對待編碼文本以句為單位進行依存句法分析,得到待編碼文本中各句文本的依存句法樹,所述依存句法樹可以清晰地表達文本的句法結(jié)構(gòu);然后根據(jù)預先構(gòu)建的基于依存句法樹的文本編碼模型及各句文本的依存句法樹,對文本進行編碼,得到編碼后的文本。由于采用依存句法樹描述文本的句法結(jié)構(gòu),而且在文本編碼模型訓練時,進一步根據(jù)子節(jié)點詞向量與父節(jié)點詞向量依存關(guān)系的不同,對子節(jié)點與父節(jié)點之間的映射,使用不同的轉(zhuǎn)換矩陣和偏置項,從而保留了不同依存關(guān)系的節(jié)點間的語義信息,使編碼后的文本與原文本的句法結(jié) 構(gòu)及語義信息更接近,提高了文本編碼的有效性。

附圖說明

為了更清楚地說明本申請實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明中記載的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,還可以根據(jù)這些附圖獲得其他的附圖。

圖1是現(xiàn)有技術(shù)中基于二叉樹結(jié)構(gòu)的文本編碼模型的結(jié)構(gòu)示意圖;

圖2是本發(fā)明實施例中構(gòu)建基于依存句法樹的文本編碼模型的流程圖;

圖3是本發(fā)明實施例中依存句法樹的結(jié)構(gòu)示意圖;

圖4是本發(fā)明實施例中基于依存句法樹的文本編碼模型的結(jié)構(gòu)示意圖;

圖5是本發(fā)明實施例文本編碼方法的流程圖;

圖6是本發(fā)明實施例文本編碼系統(tǒng)的結(jié)構(gòu)示意圖;

圖7是本發(fā)明實施例中模型構(gòu)建模塊的一種結(jié)構(gòu)示意圖。

具體實施方式

為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明實施例的方案,下面首先對現(xiàn)有技術(shù)采用基于二叉樹的結(jié)構(gòu)對文本進行編碼的過程進行簡要說明,其過程如下:

1)接收待編碼文本。

2)對待編碼文本進行分詞和詞性標注,采用二叉樹形式表示每句待編碼文本。

3)利用預先構(gòu)建的基于二叉樹結(jié)構(gòu)的文本編碼模型對所述待編碼文本進行編碼。

基于二叉樹的文本編碼模型的構(gòu)建過程如下:

首先,收集大量文本數(shù)據(jù)。

然后,將收集的大量文本數(shù)據(jù)中的每句文本進行分詞后使用二叉樹的形式表示。二叉樹的構(gòu)建即從每句文本的右邊開始構(gòu)建,將當前句文本的最右邊兩個詞作為子節(jié)點,構(gòu)建得到一個父節(jié)點,然后依次向左查找詞語,與該父節(jié)點一起作為子節(jié)點,再次得到一個父節(jié)點,再向左查找詞語,繼續(xù)構(gòu)建,直到當 前句所有詞都查找完畢,二叉樹構(gòu)建完成。例如,“取消已經(jīng)開通的十元一百兆的流量”,經(jīng)過分詞之后得到“打取消/已經(jīng)/開通/的/十/元/一百/兆/的/流量”,根據(jù)所得的分詞結(jié)果,從右開始構(gòu)造二叉樹,“流量”和“的”作為子節(jié)點,得到父節(jié)點為p1,然后將“兆”和p1作為子節(jié)點,得到父節(jié)點為p2,繼續(xù)查找,直到當前句中所有詞都查找完畢,得到二叉樹結(jié)構(gòu)。根據(jù)二叉樹結(jié)構(gòu),可以將每句文本表示成由父節(jié)點和子節(jié)點組成的二元組,具體形式可以為(p→c1c2),其中,p代表父節(jié)點,c1c2分別代表兩個子節(jié)點。

最后,基于收集的大量數(shù)據(jù)的二叉樹結(jié)構(gòu),構(gòu)建文本編碼模型,具體構(gòu)建過程包括前向過程和后向過程。

對二叉樹中所有的非葉節(jié)點構(gòu)建一個三層神經(jīng)網(wǎng)絡結(jié)構(gòu),即包括輸入層、隱藏層和輸出層,神經(jīng)網(wǎng)絡每層節(jié)點數(shù)與每個葉子節(jié)點對應詞向量的維數(shù)相同,如100;進行文本編碼模型訓練時,首先進行前向過程,然后進行后向過程。

所述前向過程,即將兩個子節(jié)點的向量值映射到父節(jié)點的向量值的過程。具體映射時,將兩個子節(jié)點對應的向量值作為父節(jié)點神經(jīng)網(wǎng)絡的輸入,神經(jīng)網(wǎng)絡的輸出作為父節(jié)點的向量值,當子節(jié)點為葉子節(jié)點時,對應的向量值為詞向量,當子節(jié)點為非葉子節(jié)點時,對應的向量值為該節(jié)點神經(jīng)網(wǎng)絡輸出層得到的向量值,依次遞歸直到映射到二叉樹的根節(jié)點,得到根節(jié)點向量值。

根據(jù)二叉樹結(jié)構(gòu)中的兩個子節(jié)點計算出父節(jié)點的向量值可以通過子節(jié)點與父節(jié)點之間的轉(zhuǎn)換矩陣和偏置項將子節(jié)點的詞向量轉(zhuǎn)換為父節(jié)點的詞向量,每句文本中的所有詞共享同一組轉(zhuǎn)換矩陣和偏置項,即每次子節(jié)點映射到父節(jié)點時,使用的轉(zhuǎn)換矩陣和偏置項相同。具體轉(zhuǎn)換方法如式(1)所示:

y=f(We[c1;c2]+be) (1)

其中,y為子節(jié)點c1和c2的父節(jié)點的向量值,c1和c2為兩個子節(jié)點的向量值,f為映射函數(shù),We和be為子節(jié)點向量值映射到父節(jié)點向量值時共享的轉(zhuǎn)換矩陣和偏置項,即文本編碼模型的參數(shù),其取值需要通過大量數(shù)據(jù)訓練得到。

所述后向過程,即給定根節(jié)點的向量值,遞歸預測出父節(jié)點對應的兩個子節(jié)點的向量值,直到葉子節(jié)點的過程,具體過程與前向過程相反。具體預測方法如式(2)所示:

[c′1;c′2]=f(Wdy+bd) (2)

其中,c′1和c′2為根據(jù)父節(jié)點的向量值y預測得到的兩個子節(jié)點的向量值, Wb和bd為由父節(jié)點的向量值預測子節(jié)點的向量值時使用的轉(zhuǎn)換矩陣和偏置項,即文本編碼模型的參數(shù),其取值需要通過大量數(shù)據(jù)訓練得到,初始值由系統(tǒng)隨機給出。

將收集的大量文本數(shù)據(jù)的二叉樹結(jié)構(gòu)作為訓練數(shù)據(jù),對文本編碼模型進行訓練,得到文本編碼模型參數(shù),具體訓練時,即先經(jīng)過前向過程得到根節(jié)點的向量值,再通過反向過程預測得到每個子節(jié)點的向量值,將最小化所有非葉子節(jié)點的真實向量值與預測向量的誤差平方和作為目標函數(shù),訓練得到模型參數(shù)λ=[We,be,We,bd]。

如圖1為基于二叉樹結(jié)構(gòu)的文本編碼模型的結(jié)構(gòu)圖,其中,x1,x2,x3,x4為前向過程中每句文本中每個詞的詞向量,y1,y2,y3為前向過程中通過子節(jié)點的詞向量計算得到的父節(jié)點的詞向量,x′1,x′2,x′3,x′4為后向過程中每句文本中每個詞的預測詞向量表示,y′2,y′3為后向過程中預測子節(jié)點詞向量時的中間結(jié)果值。

利用上述基于二叉樹結(jié)構(gòu)的文本編碼模型對文本進行編碼時,首先將待編碼文本表示為二叉樹,然后根據(jù)文本編碼模型參數(shù),自葉子節(jié)點開始遞歸向上計算每個節(jié)點的取值,遞歸計算到根節(jié)點值,將所述根節(jié)點的值作為待編碼文本的編碼。

現(xiàn)有的文本編碼方法在構(gòu)建文本編碼模型時,基于二叉樹結(jié)構(gòu)對每句文本進行分析,將每句文本表示為由父節(jié)點和子節(jié)點組成的二元組形式。然而構(gòu)建這種二叉樹結(jié)構(gòu)時,并沒有考慮每句文本中詞與詞之間的結(jié)構(gòu)關(guān)系,只是單純地將詞堆疊在一起,因此構(gòu)建的二叉樹結(jié)構(gòu)并不能很好地表示文本的句法結(jié)構(gòu),并且該二叉樹結(jié)構(gòu)也不包含任何句子中詞與詞的依賴關(guān)系。如文本“取消已經(jīng)開通的十元一百兆的流量”,其中,“取消”、“開通”、“十元”、“一百兆”都與“流量”相關(guān),而現(xiàn)有技術(shù)在構(gòu)建二叉樹結(jié)構(gòu)時,首先將“流量”和“的”作為兩個子節(jié)點,得到一個父節(jié)點,再將“兆”和得到的父節(jié)點作為子節(jié)點繼續(xù)構(gòu)建二叉樹,由此可見句中詞與詞之間的關(guān)系較為混亂;并且各個詞只是堆疊起來,并不能分辨詞與詞之間的主導與依賴關(guān)系,如不能分辨“取消”和“開通”這兩個動詞的作用以及主導關(guān)系。此外,文本編碼模型訓練時,所有子節(jié)點與父節(jié)點之間的映射都是共享相同的轉(zhuǎn)換矩陣和偏置項,由于每句文本中詞與詞之間的關(guān)系是不同的,如有的是動賓關(guān)系,有的是主謂關(guān)系,直接共享相同的轉(zhuǎn)換矩陣和偏置項,不能清晰地體現(xiàn)出詞與詞之間的依賴關(guān)系,同 時也不能表現(xiàn)出文本的語義關(guān)系,因此共享相同的轉(zhuǎn)換矩陣和偏置項顯然不合理。由此可見,現(xiàn)有技術(shù)訓練得到的文本編碼模型并不能很好表現(xiàn)文本的句法結(jié)構(gòu)及語義信息,使用該文本編碼模型對文本進行編碼,降低了文本編碼的有效性。

基于上述現(xiàn)有技術(shù)存在的問題,本發(fā)明實施例提供一種文本編碼方法及系統(tǒng),對待編碼文本以句為單位進行依存句法分析,得到待編碼文本中各句文本的依存句法樹,所述依存句法樹可以清晰地表達文本的句法結(jié)構(gòu);然后根據(jù)預先構(gòu)建的基于依存句法樹的文本編碼模型及各句文本的依存句法樹,對文本進行編碼,得到編碼后的文本。由于采用依存句法樹描述文本的句法結(jié)構(gòu),而且在文本編碼模型訓練時,進一步根據(jù)子節(jié)點詞向量與父節(jié)點詞向量依存關(guān)系的不同,對子節(jié)點與父節(jié)點之間的映射,使用不同的轉(zhuǎn)換矩陣和偏置項,從而保留了不同依存關(guān)系的節(jié)點間的語義信息,使編碼后的文本與原文本的句法結(jié)構(gòu)及語義信息更接近,提高了文本編碼的有效性。

如圖2所示,是本發(fā)明實施例中構(gòu)建基于依存句法樹的文本編碼模型的流程圖,包括以下步驟:

步驟201,收集文本數(shù)據(jù)。

所述文本數(shù)據(jù)可以根據(jù)應用需求來選擇,比如收集的文本數(shù)據(jù)為客服與用戶之間的對話文本數(shù)據(jù)。

步驟202,以句為單位,對所述文本數(shù)據(jù)進行依存句法分析,得到每句文本的依存句法樹。

首先,對各句文本進行分詞,得到各句文本中的各詞。比如基于條件隨機場模型對文本數(shù)據(jù)進行分詞。

然后,對各詞進行詞性標注,如文本“取消已經(jīng)開通的十元一百兆的流量”,經(jīng)過分詞和詞性標注后,得到的結(jié)果為“取消/v已經(jīng)/d開通/v的/u十/m元/q一百/m兆/q的/u流量/n”,其中,字符表示詞性,如“n”表示名詞。

最后,對各詞和詞性標注后的文本進行依存句法分析,得到各句文本的依存句法樹。所述依存句法樹中包括句中詞與詞之間的依存關(guān)系。

所述依存句法分析是針對給定的句子使用某一依存語法體系對自然語 言進行自動分析構(gòu)建句子對應依存句法樹的一種方法,具體可以采用基于規(guī)則的方法進行依存句法分析,當然也可以基于一些公開的依存句法分析工具進行分析,如基于斯坦福自然語言處理工具對每句文本進行依存句法分析,得到每句文本中詞與詞之間的依存關(guān)系rel(parent,child)、以及相應的依存句法樹,其中parent表示依存句法樹中的父節(jié)點詞,child表示依存句法樹中的子節(jié)點詞。如對“取消/v已經(jīng)/d開通/v的/u十/m元/q一百/m兆/q的/u流量/n”進行依存句法分析后,得到該句中詞與詞之間的依存關(guān)系如下:

root(ROOT-0,取消-1)

adv(開通-3,已經(jīng)-2)

att(流量-10,開通-3)

rad(開通-3,的-4)

att(元-6,十-5)

att(流量-10,元-6)

att(兆-8,一百-7)

att(流量-10,兆-8)

rad(兆-8,的-9)

vob(取消-1,流量-10),

其中,括號前面的“att”、“vob”、“adv”、“rad”表示句子中詞與詞之間的依存關(guān)系,括號中第一個詞表示依存句法樹中的父節(jié)點詞,第二個詞表示依存句法樹中的子節(jié)點詞,每個詞后的數(shù)字表示詞在句子中的位置,ROOT表示依存句法樹的根節(jié)點,該節(jié)點為虛節(jié)點,其與子節(jié)點之間的關(guān)系為root關(guān)系,即虛關(guān)系,可以將其子節(jié)點的值作為根節(jié)點的值,所述依存句法樹如圖3所示。

對收集的大量文本數(shù)據(jù)進行依存句法分析后,得到各句文本的依存句法樹,該依存句法樹包含該句文本中詞與詞之間的依存關(guān)系:rel(parent,child)。

另外,需要說明的是,收集的文本數(shù)據(jù)中可能會存在一些無意義字符及非法字符,所述無意義字符如“#”、“@”,所述非法字符如“\”、“/”。在這種情況下,在進行依存句法分析之前,還需要先將每句文本數(shù)據(jù)中的無意 義字符及非法字符去除,得到純文本數(shù)據(jù);然后對純文本數(shù)據(jù)進行分詞及上述一系列操作。

步驟203,根據(jù)所述依存句法樹構(gòu)建基于依存句法樹的文本編碼模型。

在本發(fā)明實施例中,將依存句法樹中每個節(jié)點使用一個神經(jīng)網(wǎng)絡表示,所述神經(jīng)網(wǎng)絡共三層,即輸入層,隱藏層及輸出層,所述輸入層即為每個節(jié)點的詞向量,神經(jīng)網(wǎng)絡每層節(jié)點數(shù)與詞向量的維數(shù)相同,如100。訓練文本編碼模型時,將依存句法樹中每個節(jié)點對應的詞向量先映射到隱藏層,利用映射到隱藏層的值遞歸計算依存句法樹中其它節(jié)點隱藏層的值。需要說明的是,每個詞向量映射到隱藏層的轉(zhuǎn)換矩陣和偏置項都是一樣的。

構(gòu)建文本編碼模型主要是為了計算每種依存關(guān)系的共享矩陣和偏置項,具體構(gòu)建過程包括前向過程和后向過程,如圖4為文本編碼模型的結(jié)構(gòu)示意圖,其中,下面部分為前向過程,上面部分為反向過程,其中,x1,x2,x3,x4,x5為前向過程中每句文本中每個詞的詞向量表示,x′1,x′2,x′3,x′4,x′5為后向過程中每句文本中每個詞的預測詞向量表示,WR,bR,WR′,b′R分別為前向過程和后向過程中使用的轉(zhuǎn)換矩陣及偏置項,依存關(guān)系不同時,取值不同,每個節(jié)點對應一個隱藏層,所述隱藏層未在圖中畫出。

具體構(gòu)建過程如下所述:

1)將各依存句法樹中每個詞初始化為詞向量。

比如,預先訓練一個詞向量模型,如果當前需要向量化的詞存在該詞向量模型中,則直接根據(jù)該詞向量模型將當前詞映射為一個多維向量,如100維;如果不存在,可以采用隨機初始化的方法將當前詞映射成向量,如“取消”可以初始化為(1.266826,-1.574513…0.019293,-3.398773,…)共100維。

2)前向計算過程

所述前向計算過程主要是根據(jù)文本中每個詞的詞向量及每種依存關(guān)系對應的轉(zhuǎn)換矩陣和偏置項計算出各節(jié)點映射到隱藏層的值。

具體計算時,根據(jù)依存句法樹的結(jié)構(gòu),將每層的詞向量映射到每個節(jié)點相應的隱藏層后,根據(jù)映射結(jié)果再逐層遞歸映射到根節(jié)點,得到根節(jié)點映射到隱藏層的值,即根節(jié)點表示的向量。由于映射到根節(jié)點時,句子中所有的詞向量都計算結(jié)束了,計算結(jié)果中包含了句中所有詞之間的依存關(guān)系,因此,可以將 根節(jié)點表示的向量作為句子向量。各節(jié)點的具體映射方法如式(3)所示:

其中,hn表示前向計算時依存句法樹中第n個節(jié)點詞向量映射到隱藏層的值,f為非線性映射函數(shù),如正切函數(shù)tanh,Wv和b分別表示每個詞向量映射到隱藏層的轉(zhuǎn)換矩陣和偏置項,所述轉(zhuǎn)換矩陣和偏置項為文本編碼模型的參數(shù),具體取值可以通過大量數(shù)據(jù)訓練得到,初始值可以隨機給出,K(n)表示依存句法樹中第n個節(jié)點的子節(jié)點集合,R(n,k)表示第n個節(jié)點與其第k個子節(jié)點之間的依存關(guān)系,WR(n,k)和bR(n,k)分別表示前向計算時第n個節(jié)點與其第k個子節(jié)點之間的依存關(guān)系R(n,k)對應的轉(zhuǎn)換矩陣及偏置項,所述轉(zhuǎn)換矩陣和偏置項為文本編碼模型的參數(shù),具體取值可以通過大量數(shù)據(jù)訓練得到,初始值可以隨機給出,hk表示第n個節(jié)點的第k個子節(jié)點映射到隱藏層的值。根據(jù)式(3)可以將詞向量映射到隱藏層的值逐層映射到根節(jié)點。

例如:如圖4中,x2節(jié)點包含一個子節(jié)點x1,計算節(jié)點x2映射到隱藏層的值時,需要考慮其子節(jié)點x1映射到隱藏層的值,具體計算方法如式(4)所示:

h2=f(WR(2,1)h1+bR(2,1)+Wvx2+b) (4)

其中,h2表示依存句法樹中第2個節(jié)點x2映射到隱藏層的值,R(2,1)表示節(jié)點x2和其子節(jié)點x1之間的依存關(guān)系,WR(2,1),bR(2,1)分別表示依存關(guān)系R(2,1)對應的轉(zhuǎn)換矩陣和偏置項,h1為節(jié)點x2的子節(jié)點x1映射到隱藏層的值,h1=f(Wvx1+b),其中Wv和b分別表示詞向量映射到隱藏層的轉(zhuǎn)換矩陣和偏置項。

需要說明的是,在本發(fā)明實施例中,根據(jù)依存句法樹構(gòu)建文本編碼模型時,對于相同的依存關(guān)系,可以共享同一組轉(zhuǎn)換矩陣和偏置項,而不同的依存關(guān)系之間,轉(zhuǎn)換矩陣和/或偏置項可以不同,從而可以保留詞與詞之間不同依存關(guān)系的差異性,使編碼后的文本與原文本的句法結(jié)構(gòu)及語義信息更接近。

3)后向預測過程

所述后向預測過程主要是根據(jù)父節(jié)點映射到隱藏層的值預測出各節(jié)點映射到隱藏層的值的過程。

具體計算時,根據(jù)依存句法樹的結(jié)構(gòu),從根節(jié)點開始,根據(jù)根節(jié)點的映射 到隱藏層的值以及其與子節(jié)點之間的依存關(guān)系,分別預測出每一個子節(jié)點映射到隱藏層的值,以此類推,直到預測完畢所有節(jié)點映射到隱藏層的值。具體的預測方法如式(5)所示:

h′k=f(W′R(n,k)h′n+b′R(n,k)) (5)

其中,h′n表示后向預測時依存句法樹中第n個節(jié)點映射到隱藏層的值,f為非線性映射函數(shù),如正切函數(shù)tanh,h′k表示第n個節(jié)點的第k個子節(jié)點映射到隱藏層的值,R(n,k)表示第n個節(jié)點與其第k個子節(jié)點之間的依存關(guān)系,W′R(n,k)和b′R(n,k)分別表示后向預測時第n個節(jié)點與其第k個子節(jié)點之間的依存關(guān)系R(n,k)對應的轉(zhuǎn)換矩陣及偏置項,具體取值可以通過大量數(shù)據(jù)訓練得到,初始值可以隨機給出。根據(jù)式(5)可以由根節(jié)點映射到隱藏層的值反向遞歸預測出子節(jié)點映射到隱藏層的值,直到葉子節(jié)點。

4)迭代更新模型參數(shù)

模型參數(shù)更新的目標函數(shù)為最小化所有文本數(shù)據(jù)的依存句法樹中所有節(jié)點前向計算出的隱藏層的值與后向預測出的隱藏層的值之間的誤差和;通過迭代執(zhí)行前向過程和后向過程,對模型參數(shù)進行更新,具體更新方法與現(xiàn)有技術(shù)相同,在此不再詳述。當所有節(jié)點前向計算出的隱藏層的值與后向預測出的隱藏層的值之間的誤差小于預先設定的閾值時,結(jié)束參數(shù)更新過程,得到文本編碼模型參數(shù),具體目標函數(shù)如式(6)所示:

其中,λopt表示最小化各句文本對應的依存句法樹中所有節(jié)點前向計算出的隱藏層的值與后向預測出的隱藏層的值之間的誤差和時,對應的文本編碼模型的模型參數(shù),所述模型參數(shù)由[S(WR,bR),Wv,b,S(W′R,b′R)]組成,其中S(WR,bR)表示前向計算時各依存關(guān)系對應的轉(zhuǎn)換矩陣和偏置項的集合,Wv,b分別表示每個詞向量映射到隱藏層的轉(zhuǎn)換矩陣和偏置項,S(W′R,b′R)表示后向預測時各依存關(guān)系對應的轉(zhuǎn)換矩陣和偏置項的集合,T表示所有依存句法樹的集合,t表示待編碼文本的第t棵依存句法樹;Nt表示第t棵依存句法樹的節(jié)點 集合,hn表示第t棵依存句法樹的第n個節(jié)點前向計算出的隱藏層的值;h′n表示第t棵依存句法樹的第n個節(jié)點后向預測出的隱藏層的值。

本發(fā)明實施例提供的文本編碼方法,對待編碼文本以句為單位進行依存句法分析,得到待編碼文本中各句文本的依存句法樹,然后根據(jù)上述基于依存句法樹的文本編碼模型及各句文本的依存句法樹,對文本進行編碼,得到編碼后的文本。

如圖5所示,是本發(fā)明實施例文本編碼方法的流程圖,包括以下步驟:

步驟501,預先構(gòu)建基于依存句法樹的文本編碼模型。

步驟502,接收待編碼文本。

步驟503,以句為單位,對所述待編碼文本進行依存句法分析,得到待編碼文本的依存句法樹。

對待編碼文本進行依存句法分析可參照前面構(gòu)建基于依存句法樹的文本編碼模型過程中,對收集的文本數(shù)據(jù)進行依存句法分析的描述,在此不再贅述。

步驟504,利用預先構(gòu)建的基于依存句法樹的文本編碼模型及各句文本的依存句法樹對待編碼文本進行編碼,得到編碼后的文本。

具體地,將待編碼的各句文本的依存句法樹作為文本編碼的結(jié)構(gòu),根據(jù)文本編碼模型的參數(shù),從葉子節(jié)點開始遞歸向上計算每個節(jié)點映射到隱藏層的值,具體計算方法如前面式(3)所示,直到根節(jié)點,將根節(jié)點映射到隱藏層的值作為該句待編碼文本的編碼。

例如:待編碼文本為“取消已經(jīng)開通的十元一百兆的流量”,其依存句法樹如圖3所示。具體編碼時,可以先計算出節(jié)點“已經(jīng)”,“的”,“十”,“一百”等葉子節(jié)點的詞向量映射到隱藏層的值,再由節(jié)點“已經(jīng)”和“的”的隱藏層以及“開通”節(jié)點的詞向量的值計算出節(jié)點“開通”的隱藏層的值;由節(jié)點“十”的隱藏層的值以及節(jié)點“元”的詞向量計算出節(jié)點“元”的隱藏層的值;由節(jié)點“一百”和“的”的隱藏層的值以及節(jié)點“兆”的詞向量計算出節(jié)點“兆”的隱藏層的值;再由節(jié)點“開通”,“元”,“兆”的隱藏層的值和節(jié)點“流量”的詞向量計算出節(jié)點“流量”的隱藏層的值;最后由節(jié)點“流量”的隱藏層的值以及節(jié)點“取消”的詞向量計算 出節(jié)點“取消”的隱藏層的值遞歸到根節(jié)點,將根節(jié)點的隱藏層的值作為待編碼文本的編碼結(jié)果。

需要說明的是,如果接收的待編碼文本包括多句,則對應其中每句,依照上述編碼,即可得到該句的編碼結(jié)果。

另外,需要說明的是,有時待編碼文本中可能會存在一些無意義字符及非法字符,所述無意義字符如“#”、“@”,所述非法字符如“\”、“/”。在這種情況下,在進行依存句法分析之前,還需要先將每句待編碼文本中的無意義字符及非法字符去除,得到純文本;然后對純文本進行分詞及上述一系列操作。

本發(fā)明實施例提供的文本編碼方法,對待編碼文本以句為單位進行依存句法分析,得到待編碼文本中各句文本的依存句法樹,所述依存句法樹可以清晰地表達文本的句法結(jié)構(gòu);然后根據(jù)預先構(gòu)建的基于依存句法樹的文本編碼模型及各句文本的依存句法樹,對文本進行編碼,得到編碼后的文本。由于采用依存句法樹描述文本的句法結(jié)構(gòu),而且在文本編碼模型訓練時,進一步根據(jù)子節(jié)點詞向量與父節(jié)點詞向量依存關(guān)系的不同,對子節(jié)點與父節(jié)點之間的映射,使用不同的轉(zhuǎn)換矩陣和偏置項,從而保留了不同依存關(guān)系的節(jié)點間的語義信息,使編碼后的文本與原文本的句法結(jié)構(gòu)及語義信息更接近,提高了文本編碼的有效性。

相應地,本發(fā)明實施例還提供一種文本編碼系統(tǒng),如圖6所示,是該系統(tǒng)的一種結(jié)構(gòu)示意圖。

在該實施例中,所述系統(tǒng)包括:

模型構(gòu)建模塊601,用于預先構(gòu)建基于依存句法樹的文本編碼模型,所述文本編碼模型用于描述不同依存關(guān)系對應的轉(zhuǎn)換矩陣和偏置項、以及每個詞向量映射到隱藏層的轉(zhuǎn)換矩陣和偏置項,而且相同依存關(guān)系對應相同的轉(zhuǎn)換矩陣和偏置項,不同依存關(guān)系對應的轉(zhuǎn)換矩陣和/或偏置項不同;

文本接收模塊602,用于接收待編碼文本;

句法分析模塊603,用于以句為單位,對所述待編碼文本進行依存句法分析,得到待編碼文本中各句文本的依存句法樹;

編碼模塊604,用于利用所述文本編碼模型及待編碼文本中各句文本的依存句法樹對待編碼文本進行編碼,得到編碼后的文本。

如圖7所示,是本發(fā)明實施例中模型構(gòu)建模塊的一種結(jié)構(gòu)示意圖。

所述模型構(gòu)建模塊包括:

數(shù)據(jù)收集單元71,用于收集文本數(shù)據(jù);

句法分析單元72,用于以句為單位,對所述文本數(shù)據(jù)進行依存句法分析,得到每句文本的依存句法樹,所述依存句法樹中包括句中詞與詞之間的依存關(guān)系;

模型訓練單元73,用于根據(jù)所有依存句法樹訓練基于依存句法樹的文本編碼模型。

由于收集的文本數(shù)據(jù)中可能會存在一些無意義字符及非法字符,所述無意義字符如“#”、“@”,所述非法字符如“\”、“/”,因此,在所述模型構(gòu)建模塊的另一實施例中,還可進一步包括:過濾單元(未圖示),用于在所述句法分析單元72對各詞和詞性標注后的文本進行依存句法分析之前,去除每句文本中的無意義字符及非法字符。

上述句法分析單元的一種具體結(jié)構(gòu)可以包括以下各單元:

分詞單元,用于對各句文本進行分詞,得到各句文本中的各詞;

標注單元,用于對各詞進行詞性標注;

分析單元,用于對各詞和詞性標注后的文本進行依存句法分析,得到各句文本的依存句法樹。

上述模型訓練單元的一種具體結(jié)構(gòu)可以包括以下各單元:

初始化單元,用于將各依存句法樹中每個詞初始化為詞向量;

前向計算單元,用于執(zhí)行前向計算過程:根據(jù)所述依存句法樹中每個詞的詞向量及依存關(guān)系對應的轉(zhuǎn)換矩陣和偏置項計算出各節(jié)點映射到隱藏層的值;

后向預測單元,用于執(zhí)行后向預測過程:根據(jù)所述依存句法樹中根節(jié)點隱藏層的值及依存關(guān)系預測出各子節(jié)點隱藏層的值;

迭代控制單元,用于執(zhí)行參數(shù)更新過程:通過迭代方式觸發(fā)所述前向 計算單元執(zhí)行所述前向計算過程、觸發(fā)所述后向預測單元執(zhí)行所述后向預測過程,以更新模型參數(shù),并且當前向計算出的所有節(jié)點隱藏層的值與后向預測出的對應節(jié)點隱藏層的值之間的誤差小于設定閾值時,結(jié)束參數(shù)更新過程,得到基于依存句法樹的文本編碼模型的模型參數(shù)。

利用上述基于依存句法樹的文本編碼模型,編碼模塊604在對待編碼進行編碼時,依次將待編碼文本中各句文本的依存句法樹作為文本編碼的結(jié)構(gòu),根據(jù)文本編碼模型的參數(shù),從葉子節(jié)點開始遞歸向上計算每個節(jié)點映射到隱藏層的值,直到根節(jié)點,將計算得到的根節(jié)點映射到隱藏層的值作為該句文本的編碼。

另外,需要說明的是,由于待編碼文本中可能會存在一些無意義字符及非法字符,所述無意義字符如“#”、“@”,所述非法字符如“\”、“/”。因此,在本發(fā)明系統(tǒng)另一實施例中,還可進一步包括:過濾模塊(未圖示),用于在句法分析模塊603進行依存句法分析之前,將每句待編碼文本中的無意義字符及非法字符去除,得到純文本。相應地,句法分析模塊603對所述純文本進行句法分析。

本發(fā)明實施例提供的文本編碼系統(tǒng),對待編碼文本以句為單位進行依存句法分析,得到待編碼文本中各句文本的依存句法樹,所述依存句法樹可以清晰地表達文本的句法結(jié)構(gòu);然后根據(jù)預先構(gòu)建的基于依存句法樹的文本編碼模型及各句文本的依存句法樹,對文本進行編碼,得到編碼后的文本。由于采用依存句法樹描述文本的句法結(jié)構(gòu),而且在文本編碼模型訓練時,進一步根據(jù)子節(jié)點詞向量與父節(jié)點詞向量依存關(guān)系的不同,對子節(jié)點與父節(jié)點之間的映射,使用不同的轉(zhuǎn)換矩陣和偏置項,從而保留了不同依存關(guān)系的節(jié)點間的語義信息,使編碼后的文本與原文本的句法結(jié)構(gòu)及語義信息更接近,提高了文本編碼的有效性。

利用本發(fā)明提供的文本編碼方法及系統(tǒng)得到的文本編碼,可以將文本數(shù)據(jù)映射到一個低維的向量空間,使用向量的形式表示文本數(shù)據(jù),這樣,有助于復雜的自然語言處理任務,比如計算文本間的相似度等。由于本發(fā)明實施例提供的文本編碼方法可以大大提高文本編碼的有效性,進而也會 提高自然語言處理的有效性。

本說明書中的各個實施例均采用遞進的方式描述,各個實施例之間相同相似的部分互相參見即可,每個實施例重點說明的都是與其他實施例的不同之處。尤其,對于系統(tǒng)實施例而言,由于其基本相似于方法實施例,所以描述得比較簡單,相關(guān)之處參見方法實施例的部分說明即可。以上所描述的系統(tǒng)實施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部模塊來實現(xiàn)本實施例方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性勞動的情況下,即可以理解并實施。

以上對本發(fā)明實施例進行了詳細介紹,本文中應用了具體實施方式對本發(fā)明進行了闡述,以上實施例的說明只是用于幫助理解本發(fā)明的方法及系統(tǒng);同時,對于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實施方式及應用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不應理解為對本發(fā)明的限制。

當前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1