本發(fā)明屬于自然語言理解領(lǐng)域,一種基于深度學(xué)習(xí)的文本蘊(yùn)含關(guān)系識別方法。
背景技術(shù):
伴隨著大數(shù)據(jù)時代的到來,數(shù)據(jù)增長的速度越來越快。同時,這些數(shù)據(jù)中也充斥著大量無用、冗余的信息。讓計算機(jī)“理解”文本的含義,并從大數(shù)據(jù)中收集、獲取有價值的信息變得越來越重要。大數(shù)據(jù)具有4個特點(diǎn):大量、高速、多樣、價值,這些特征使得計算機(jī)快速從互聯(lián)網(wǎng)上獲取有價值的信息變得越來越困難。然而,一旦計算機(jī)深層次地理解了文本的語義,計算機(jī)就可以在互聯(lián)網(wǎng)上自動收集、整理有價值的信息,極大地提高了勞動生產(chǎn)力。
文本蘊(yùn)涵推理是自然語言處理的領(lǐng)域的關(guān)鍵和前沿問題之一,也是機(jī)器閱讀的核心技術(shù),它表現(xiàn)了人工智能中復(fù)雜性和自然語言的不確定性。另外,許多自然語言理解的任務(wù),包括自動問答、信息檢索與提取、機(jī)器翻譯等都以該研究為核心。
雖然數(shù)據(jù)量得到了足夠的積累,計算能力得到了大幅度提升,但相關(guān)的智能算法還存在著諸多問題,在自然語言理解方面存在著空白,如何使機(jī)器能夠理解當(dāng)前的文本并作出進(jìn)一步的推理,成為當(dāng)前自然語言理解里面的一個難點(diǎn)。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于針對現(xiàn)有技術(shù)的不足,并提供一種基于深度學(xué)習(xí)的文本蘊(yùn)含關(guān)系識別方法
本發(fā)明的技術(shù)方案是:
一種基于深度學(xué)習(xí)的文本蘊(yùn)含關(guān)系識別方法,具體按如下步驟進(jìn)行:
步驟1:獲取兩個文本,將其中一個文本作為“前提”,另一個文本作為“假設(shè)”,并進(jìn)行預(yù)處理,生成“前提”字符串
步驟2:將“前提”字符sp和“假設(shè)”字符串sh,采用str2matrix方法,生成n×lmax的“前提”基本矩陣mp的和n×lmax的“假設(shè)”基本矩陣mh;lmax為預(yù)設(shè)的最大句子長度;
步驟3:計算“前提”和“假設(shè)”的距離關(guān)系矩陣dp和距離關(guān)系矩陣dh;
步驟4:生成“前提”和“假設(shè)”的聯(lián)合矩陣up和聯(lián)合矩陣矩陣uh;
步驟5:將“前提”和“假設(shè)”中的聯(lián)合矩陣分別送入深度學(xué)習(xí)模型中,生成m維雙精度的“前提”句向量vp和“假設(shè)”句向量vh;
步驟6:將“前提”和“假設(shè)”的句向量按照句向量混合方法生成分類向量;
步驟7:將分類向量送入分類器,分類器輸出“前提”和“假設(shè)”的關(guān)系。
進(jìn)一步的,“前提”是由中文或英文文本組成的短語;“假設(shè)”是由中文或英文文本組成的短語;“關(guān)系”是“前提”和“假設(shè)”之間的推理關(guān)系,推理關(guān)系包括:“蘊(yùn)含”、“矛盾”和“中立”。
進(jìn)一步的,所述步驟1中的預(yù)處理為:對“前提”和“假設(shè)”字符串進(jìn)行分詞處理
進(jìn)一步的,所述步驟2中的str2matrix方法具體按如下步驟進(jìn)行:
步驟1:s是需要處理的字符串,l為該字符串的長度,令i=0,生成n×lmax的零矩陣d;
步驟2:如果i小于等于l,執(zhí)行步驟3,否則執(zhí)行步驟5;
步驟3:在預(yù)訓(xùn)練好的字典中查找第i個單詞或詞語si是否存在,如果存在,將矩陣d的第i行替換成字符串s中第i個單詞或詞語si對應(yīng)的n維雙精度的詞向量,如果字典中不存在si對應(yīng)的n維雙精度的詞向量,則隨機(jī)初始化詞向量,并將將矩陣d的第i行替換成則隨機(jī)初始化詞向量;
步驟4:i加1,執(zhí)行步驟2;
步驟5:結(jié)束。
進(jìn)一步的,所述步驟3中距離關(guān)系矩陣dp和dh的計算方法如下:
距離關(guān)系矩陣dp為lmax×lmax的矩陣如下:
距離關(guān)系矩陣dh為lmax×lmax的矩陣如下:
其中d(x,y)為計算詞向量x與詞向量y距離的函數(shù);
進(jìn)一步的,所述步驟4中“前提”和“假設(shè)”的聯(lián)合矩陣計算方法為:將基本矩陣和距離關(guān)系矩陣對應(yīng)行收尾相接的方式生成聯(lián)合矩陣。
進(jìn)一步的,所述步驟5中聯(lián)合矩陣的送入方式是將聯(lián)合矩陣的行向量逐個有序的送入深度學(xué)習(xí)模型中。
進(jìn)一步的,所述步驟6中的句向量混合方法具體實(shí)現(xiàn)方式如下:
計算vph1,vph2,vph3,vph4四個混合相量,并將其合并成最終的4m維的混合相量vfin,混合相量的計算公式分別為:
vfin=[vph1vph2vph3vph4]
式中:vip為“前提”句向量vp的第i個元素,vih為“假設(shè)”句向量vh的第i個元素,i=1,2,…,m。
本發(fā)明相對于現(xiàn)有技術(shù)而言,具有以下有益效果:在文本推理蘊(yùn)含關(guān)系時,可在同等向量長度的前提下包含更多信息,使算法的效率和精度大大提升??梢愿玫膶?shí)現(xiàn)自然語言理解任務(wù)。
附圖說明
圖1為本發(fā)明具體實(shí)施方式的結(jié)構(gòu)原理示意圖。
具體實(shí)施方式
下面結(jié)合附圖和具體實(shí)施方式對本發(fā)明做進(jìn)一步闡述和說明。本發(fā)明中各個實(shí)施方式的技術(shù)特征在沒有相互沖突的前提下,均可進(jìn)行相應(yīng)組合。
如圖1所示,一種基于深度學(xué)習(xí)的文本蘊(yùn)含關(guān)系識別方法,具體按如下步驟進(jìn)行:
步驟1:獲取兩個文本,將其中一個文本作為“前提”,另一個文本作為“假設(shè)”,并進(jìn)行預(yù)處理,生成“前提”字符串
其中:“前提”是由中文或英文文本組成的短語;“假設(shè)”是由中文或英文文本組成的短語;“關(guān)系”是“前提”和“假設(shè)”之間的推理關(guān)系,推理關(guān)系包括:“蘊(yùn)含”、“矛盾”和“中立”。預(yù)處理為:對“前提”和“假設(shè)”字符串進(jìn)行分詞處理
步驟2:將“前提”字符sp和“假設(shè)”字符串sh,采用str2matrix方法,生成n×lmax的“前提”基本矩陣mp的和n×lmax的“假設(shè)”基本矩陣mh;lmax為預(yù)設(shè)的最大句子長度;
str2matrix方法具體按如下步驟進(jìn)行:
步驟2.1:s是需要處理的字符串,l為該字符串的長度,令i=0,生成n×lmax的零矩陣d;
步驟2.2:如果i小于等于l,執(zhí)行步驟2.3,否則執(zhí)行步驟2.5;
步驟2.3:在預(yù)訓(xùn)練好的字典中查找第i個單詞或詞語si是否存在,如果存在,將矩陣d的第i行替換成字符串s中第i個單詞或詞語si對應(yīng)的n維雙精度的詞向量,如果字典中不存在si對應(yīng)的n維雙精度的詞向量,則隨機(jī)初始化詞向量,并將將矩陣d的第i行替換成則隨機(jī)初始化詞向量;
步驟2.4:i加1,執(zhí)行步驟2.2;
步驟2.5:結(jié)束。
步驟3:計算“前提”和“假設(shè)”的距離關(guān)系矩陣dp和距離關(guān)系矩陣dh;
本步驟中距離關(guān)系矩陣dp和dh的計算方法如下:
距離關(guān)系矩陣dp為lmax×lmax的矩陣如下:
距離關(guān)系矩陣dh為lmax×lmax的矩陣如下:
其中d(x,y)為計算詞向量x與詞向量y距離的函數(shù);
步驟4:生成“前提”和“假設(shè)”的聯(lián)合矩陣up和聯(lián)合矩陣矩陣uh;
本步驟中“前提”和“假設(shè)”的聯(lián)合矩陣計算方法為:將基本矩陣和距離關(guān)系矩陣對應(yīng)行收尾相接的方式生成聯(lián)合矩陣。
步驟5:將“前提”和“假設(shè)”中的聯(lián)合矩陣分別送入深度學(xué)習(xí)模型中,生成m維雙精度的“前提”句向量vp和“假設(shè)”句向量vh;
本步驟中聯(lián)合矩陣的送入方式是將聯(lián)合矩陣的行向量逐個有序的送入深度學(xué)習(xí)模型中。
步驟6:將“前提”和“假設(shè)”的句向量按照句向量混合方法生成分類向量;
本步驟中的句向量混合方法具體實(shí)現(xiàn)方式如下:
計算vph1,vph2,vph3,vph4四個混合相量,并將其合并成最終的4m維的混合相量vfin,混合相量的計算公式分別為:
vfin=[vph1vph2vph3vph4]
式中:vip為“前提”句向量vp的第i個元素,vih為“假設(shè)”句向量vh的第i個元素,i=1,2,…,m。
步驟7:將分類向量送入分類器,分類器輸出“前提”和“假設(shè)”的關(guān)系。
實(shí)施例1
本實(shí)施例中,一種基于深度學(xué)習(xí)的文本蘊(yùn)含關(guān)系識別算法,具體按如下步驟進(jìn)行:
獲取兩個文本,將其中一個文本作為“前提”,另一個文本作為“假設(shè)”:
前提:twowomenhavingdrinksandsmokingcigarettesatthebar.
假設(shè):twowomenareatabar.
預(yù)設(shè)的最大語句長度為15。
步驟1:對“前提”、“假設(shè)”進(jìn)行預(yù)處理,生成“前提”字符串sp=[”two”,”women”,”having”,”drinks”,”and”,”smoking”,”cigarettes”,”at”,”the”,”bar”,”.”]和“假設(shè)”字符串sh=[”two”,”women”,”are”,”at”,”a”,”bar”,”.”];
步驟2:將“前提”字符sp和“假設(shè)”字符串sh,采用str2matrix方法,生成n×lmax的“前提”基本矩陣mp的和n×lmax的“假設(shè)”基本矩陣mh;
步驟3:計算“前提”和“假設(shè)”的距離關(guān)系矩陣dp和距離關(guān)系矩陣dh;
由于矩陣dp過長,橫向拆分成以上兩張圖片。
由于矩陣dh過長,橫向拆分成以上兩張圖片。
步驟4:生成“前提”和“假設(shè)”的聯(lián)合矩陣up和聯(lián)合矩陣矩陣uh;
步驟5:將“前提”和“假設(shè)”中的聯(lián)合矩陣分別送入深度學(xué)習(xí)模型中,生成m維雙精度的“前提”句向量vp和“假設(shè)”句向量vh;
步驟6:將“前提”和“假設(shè)”的句向量按照句向量混合方法生成分類向量;
vfin=[vph1vph2vph3vph4]
步驟7:將分類向量送入分類器,分類器輸出“前提”和“假設(shè)”的關(guān)系。
以上所述的實(shí)施例只是本發(fā)明的一種較佳的方案,然其并非用以限制本發(fā)明。有關(guān)技術(shù)領(lǐng)域的普通技術(shù)人員,在不脫離本發(fā)明的精神和范圍的情況下,還可以做出各種變化和變型。因此凡采取等同替換或等效變換的方式所獲得的技術(shù)方案,均落在本發(fā)明的保護(hù)范圍內(nèi)。