1.一種自由化文本生成方法,其特征在于,包括以下步驟:
S1、將用戶輸入的關(guān)鍵詞組合成字符串;
S2、第一循環(huán)神經(jīng)網(wǎng)絡(luò)將所述字符串編碼成一組維度為i的詞向量,并根據(jù)詞向量生成隱向量;
S3、第二循環(huán)神經(jīng)網(wǎng)絡(luò)根據(jù)所述詞向量和隱向量生成第t個字的候選集,并預(yù)測第t個字的候選集的概率分布向量,其中t≥1;
S4、按照文本格式要求將候選集中概率分布最大維的字作為預(yù)測字Yt進行輸出,通過循環(huán)迭代生成全部文本。
2.根據(jù)權(quán)利要求1所述的自由化文本生成方法,其特征在于,所述步驟S2中一組詞向量包含n個詞向量,一個詞向量對應(yīng)一個隱向量,其中,n為大于等于1的整數(shù)。
3.根據(jù)權(quán)利要求2所述的自由化文本生成方法,其特征在于,所述步驟S2中根據(jù)詞向量生成隱向量,包括以下步驟:
S21、定義一個維度為j的初始隱向量h0和一個函數(shù);
S22、根據(jù)函數(shù)公式進行循環(huán)迭代生成n個隱向量,所述函數(shù)公式為:
,
其中,為n個詞向量中第k個詞向量對應(yīng)的隱向量,為n個詞向量中第k個詞向量,A為j*i的矩陣,B為j*j的矩陣,1≤k≤n。
4.根據(jù)權(quán)利要求3所述的自由化文本生成方法,其特征在于,所述步驟S3中第二循環(huán)神經(jīng)網(wǎng)絡(luò)根據(jù)詞向量和隱向量生成第t個字的候選集之前還包括第二循環(huán)神經(jīng)網(wǎng)絡(luò)生成第t-1個字的隱層向量。
5.根據(jù)權(quán)利要求4所述的自由化文本生成方法,其特征在于,所述步驟S3中預(yù)測第t個字的候選集的概率分布,包括以下步驟:
S31、根據(jù)第二循環(huán)神經(jīng)網(wǎng)絡(luò)的第t-1個字的隱層向量St-1和第一循環(huán)神經(jīng)網(wǎng)絡(luò)生成的n個隱向量計算得到向量Ct,所述向量Ct為用于表示用戶意圖的向量;
S32、在第二循環(huán)神經(jīng)網(wǎng)絡(luò)中分別輸入Ct、St-1和Yt-1;
S33、將Ct、St-1和Yt-1分別與權(quán)重矩陣D相乘得到St,函數(shù)式為:
S34、將St與矩陣E相乘得到第t個字的概率分布向量,函數(shù)式為:
。
6.根據(jù)權(quán)利要求5所述的自由化文本生成方法,其特征在于,所述步驟S31具體包括:
S311、利用第t-1個字的隱層向量St-1和第一循環(huán)神經(jīng)網(wǎng)絡(luò)生成的n個隱向量分別進行計算,得到n個權(quán)重系數(shù),函數(shù)公式為:
其中,、和為大小不同的神經(jīng)網(wǎng)絡(luò)權(quán)值矩陣,若隱層向量的維度為p,則的大小為m*1,m*p,的大小為m*p,為的轉(zhuǎn)置矩陣,為權(quán)重系數(shù);
S312、將每個隱向量與相應(yīng)的權(quán)重系數(shù)相乘,再求和得到向量Ct,函數(shù)公式為:
其中,為輸入的信息的長度。
7.根據(jù)權(quán)利要求1-6任意一項所述的自由化文本生成方法,其特征在于,所述步驟S4中的文本格式要求包括強制加入的斷句符號、符合平仄和押韻的規(guī)則。
8.根據(jù)權(quán)利要求7所述的自由化文本生成方法,其特征在于,所述第一循環(huán)神經(jīng)網(wǎng)絡(luò)為雙向循環(huán)神經(jīng)網(wǎng)絡(luò),所述第二循環(huán)神經(jīng)網(wǎng)絡(luò)為單向循環(huán)神經(jīng)網(wǎng)絡(luò)。
9.根據(jù)權(quán)利要求8所述的自由化文本生成方法,其特征在于,所述步驟S1中的關(guān)鍵詞具有若干個,其中,一個關(guān)鍵詞對應(yīng)一個詞向量;
所述步驟S4中,當(dāng)將預(yù)測字Yt輸出后進行迭代生成下一個字的預(yù)測字Yt之前,還包括計算當(dāng)前的預(yù)測字Yt是由若干個所述關(guān)鍵詞中的哪個關(guān)鍵詞生成的,以便進行修正,修正的步驟為重復(fù)執(zhí)行步驟S2至S4。
10.根據(jù)權(quán)利要求8或9所述的自由化文本生成方法,其特征在于,所述步驟S1還包括對用戶輸入的關(guān)鍵詞進行擴充和亂序,擴充是指加入更多的關(guān)鍵詞,所述亂序是指將用戶輸入的關(guān)鍵詞進行小概率的順序打亂。