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

一種自由化文本生成方法與流程

文檔序號:12464611閱讀:375來源:國知局
一種自由化文本生成方法與流程

技術(shù)領(lǐng)域

本發(fā)明涉及計算機人工智能領(lǐng)域,尤其涉及一種自由化文本生成方法。



背景技術(shù):

文本自動生成被認(rèn)為是當(dāng)代機器智能的重要標(biāo)志,因為人們在創(chuàng)作文字的時候需要極強的想象力,機器必須能夠"學(xué)習(xí)”文章的行文方式并“模擬”人腦的創(chuàng)作能力,因此極為困難。傳統(tǒng)的文本生成有兩種方式,包括統(tǒng)計機器翻譯概率模型(Statistical Machine Translation, SMT)和神經(jīng)網(wǎng)絡(luò)模型(Neural Networks, NN)。

統(tǒng)計機器翻譯概率模型SMT是利用機器對用戶輸入的待翻譯語句進(jìn)行翻譯得到目標(biāo)語句的技術(shù)。機器翻譯是基于以下原理:將源語句到目標(biāo)語句的翻譯視為一個概率問題,任何一個目標(biāo)語言句子都有可能是任何一個源語言句子的譯文,機器翻譯的任務(wù)為查找出概率最大的目標(biāo)語句作為源語句的翻譯結(jié)果。換句話說,SMT的首要任務(wù)是為語言的產(chǎn)生構(gòu)造某種合理的統(tǒng)計模型,并在此統(tǒng)計模型基礎(chǔ)上,定義要估計的模型參數(shù),并設(shè)計參數(shù)估計算法。然而,SMT的機器學(xué)習(xí)方法是建立在統(tǒng)計的基礎(chǔ)上,當(dāng)數(shù)據(jù)與數(shù)據(jù)之間的關(guān)系難以用統(tǒng)計來描述時其就無能為力了,此時可以利用神經(jīng)網(wǎng)絡(luò)模型NN來解決這一問題。

神經(jīng)網(wǎng)絡(luò)模型NN是由大量的、簡單的處理單元(稱為神經(jīng)元)廣泛地互相連接而形成的復(fù)雜網(wǎng)絡(luò)系統(tǒng),它反映了人腦功能的許多基本特征,是一個高度復(fù)雜的非線性動力學(xué)習(xí)系統(tǒng)。NN具有如下優(yōu)點:1)并行分布處理;2)高度魯棒性和容錯能力;3)分布存儲及學(xué)習(xí)能力;4)能充分逼近復(fù)雜的非線性關(guān)系。正是由于上述優(yōu)點,NN在各個領(lǐng)域得到廣泛應(yīng)用。

然而,在文本創(chuàng)作過程中,SMT和傳統(tǒng)的NN均具有無法克服的缺陷:

在文本創(chuàng)作過程中,SMT是將文本創(chuàng)作看作由后一句對前一句的翻譯過程,并逐步生成全部文本。該SMT機器學(xué)習(xí)方法具有如下缺點:1)下一句話的生成只依賴于前一句的信息,無法保證生成文本的完整性,即高度依賴于文本中的局部信息,對輸入語句的全局信息考慮不周全;2)其是字詞之間的映射概率,在語義的方面建模能力較差,且往往只被應(yīng)用在語義信息相等或近似的情況下,即其僅僅考慮了字詞的信息,在語義信息上考慮十分不全,導(dǎo)致生成的文本語義混亂且不一致。

在文本創(chuàng)作過程中,傳統(tǒng)的NN是將用戶所給的信息通過神經(jīng)網(wǎng)絡(luò)壓縮成信息向量,將該信息向量作為初始狀態(tài),通過神經(jīng)網(wǎng)絡(luò)逐句生成整個文本。該傳統(tǒng)的NN具有如下缺點:1)在傳統(tǒng)的NN模型訓(xùn)練過程中過于注重語義信息;2)生成的每一個字都只考慮同樣的全局信息。由此導(dǎo)致生成的文本單一且較易偏向錯誤的方向,即不能夠根據(jù)已生成的信息進(jìn)行調(diào)整使得主題容易產(chǎn)生偏差。



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

本發(fā)明所要解決的技術(shù)問題在于如何克服現(xiàn)有技術(shù)中的文本生成模型無法結(jié)合SMT和傳統(tǒng)NN兩者的優(yōu)勢,即無法實現(xiàn)在訓(xùn)練NN的同時訓(xùn)練字詞的映射信息和字詞的語義信息的缺陷。

為了解決上述技術(shù)問題,本發(fā)明提供了一種自由化文本生成方法,包括以下步驟:

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進(jìn)行輸出,通過循環(huán)迭代生成全部文本。

進(jìn)一步地,所述步驟S2中一組詞向量包含n個詞向量,一個詞向量對應(yīng)一個隱向量,其中,n為大于等于1的整數(shù)。

進(jìn)一步地,所述步驟S2中根據(jù)詞向量生成隱向量,包括以下步驟:

S21、定義一個維度為j的初始隱向量h0和一個函數(shù);

S22、根據(jù)函數(shù)公式進(jìn)行循環(huán)迭代生成n個隱向量,所述函數(shù)公式為:

,

其中,為n個詞向量中第k個詞向量對應(yīng)的隱向量,為n個詞向量中第k個詞向量,A為j*i的矩陣,B為j*j的矩陣,1≤k≤n。

進(jìn)一步地,所述步驟S3中第二循環(huán)神經(jīng)網(wǎng)絡(luò)根據(jù)詞向量和隱向量生成第t個字的候選集之前還包括第二循環(huán)神經(jīng)網(wǎng)絡(luò)生成第t-1個字的隱層向量。

進(jìn)一步地,所述步驟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ù)式為:

。

進(jìn)一步地,所述步驟S31具體包括:

S311、利用第t-1個字的隱層向量St-1和第一循環(huán)神經(jīng)網(wǎng)絡(luò)生成的n個隱向量分別進(jì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ù)公式為:

其中,為輸入的信息的長度。

進(jìn)一步地,所述步驟S4中的文本格式要求包括強制加入的斷句符號、符合平仄和押韻的規(guī)則。

進(jìn)一步地,所述第一循環(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ò)。

進(jìn)一步地,所述步驟S1中的關(guān)鍵詞具有若干個,其中,一個關(guān)鍵詞對應(yīng)一個詞向量;

所述步驟S4中,當(dāng)將預(yù)測字Yt輸出后進(jìn)行迭代生成下一個字的預(yù)測字Yt之前,還包括計算當(dāng)前的預(yù)測字Yt是由若干個所述關(guān)鍵詞中的哪個關(guān)鍵詞生成的,以便進(jìn)行修正,修正的步驟為重復(fù)執(zhí)行步驟S2至S4。

進(jìn)一步地,所述步驟S1還包括對用戶輸入的關(guān)鍵詞進(jìn)行擴充和亂序,擴充是指加入更多的關(guān)鍵詞,所述亂序是指將用戶輸入的關(guān)鍵詞進(jìn)行小概率的順序打亂。

本發(fā)明的自由化文本生成方法,具有如下有益效果:

1、本發(fā)明的文本生成方法可以利用多種格式的文本進(jìn)行學(xué)習(xí),解決了數(shù)據(jù)稀疏問題,且該方法可以生成任意長度、任意句子的文本。

2、本發(fā)明方法在生成文本時,對用戶意圖向量進(jìn)行查看,找到與當(dāng)前生成狀態(tài)最相關(guān)的用戶意圖進(jìn)行下一字的生成,每一句話語前面所有已經(jīng)生成的句子相關(guān)聯(lián),保持整個文本的一致性,且保證了生成的信息緊緊圍繞用戶的意圖展開。

3、本發(fā)明方法在生成文本的過程中不斷進(jìn)行修正,保證了生成效果的魯棒性。

4、本發(fā)明方法在生成過程中,強制加入斷句、押韻、平仄等限制條件,保證字串能最大程度地符合語法和語義規(guī)則。

附圖說明

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

圖1是本發(fā)明的自由化文本生成方法的流程圖;

圖2是本發(fā)明的基于RNN的文本生成模型;

圖3是本發(fā)明的基于RNN的文本生成模型生成的多種文本形式;

圖4是對關(guān)鍵詞擴充之后文本生成模型生成的不同文本。

具體實施方式

下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動的前提下所獲得的所有其他實施例,都屬于本發(fā)明保護(hù)的范圍。

如圖1所示,本發(fā)明提供了一種自由化文本生成方法,包括以下步驟:

S1、將用戶輸入的關(guān)鍵詞組合成字符串,關(guān)鍵詞具有若干個,其中,一個關(guān)鍵詞對應(yīng)一個詞向量;

本實施例所提到的神經(jīng)網(wǎng)絡(luò)為循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Networks, RNN)中的高級循環(huán)神經(jīng)網(wǎng)絡(luò)GRU (Gated Recurrent Unit),在之后的表述中均以RNN表示。假設(shè)用戶訓(xùn)練RNN,用于生成七言詩,如圖2所示,為利用本發(fā)明方法建立的基于RNN的文本生成模型,例如用戶輸入的信息為春花秋月何時了,則將其組合成字符串“春花秋月何時了”。

S2、第一循環(huán)神經(jīng)網(wǎng)絡(luò)將所述字符串編碼成一組維度為i的詞向量,并根據(jù)詞向量生成隱向量;

第一循環(huán)神經(jīng)網(wǎng)絡(luò)為雙向神經(jīng)網(wǎng)絡(luò),使用雙向循環(huán)神經(jīng)網(wǎng)絡(luò)的原因是:在編碼用戶意圖的向量時,由于已知了所有的用戶意圖,正向編碼考慮了前面的字對后面的字的信息補充,但是后面的字其實對前面的字也有信息補充,比如“春花”,如果看到了“春”,那么后面很可能是“花”,但是若先看到了“花”,前一個字也很可能是“春”,所以編碼用戶意圖向量是代表了一種信息的累加,可以正向,也可以反向。

其中,一組詞向量包含n個詞向量,一個詞向量對應(yīng)一個隱向量,其中,n為大于等于1的整數(shù),根據(jù)詞向量生成隱向量,包括以下步驟:

S21、定義一個維度為j的初始隱向量h0和一個函數(shù);

S22、根據(jù)函數(shù)公式進(jìn)行循環(huán)迭代生成n個隱向量,所述函數(shù)公式為:

,

其中,為n個詞向量中第k個詞向量對應(yīng)的隱向量,為n個詞向量中第k個詞向量,A為j*i的矩陣,B為j*j的矩陣,1≤k≤n;

在本實施例中,假設(shè)i為200維,j為300維,則A為300*200的矩陣,B為300*300的矩陣,通過S22中的函數(shù)公式計算各個詞向量對應(yīng)的隱向量hk

當(dāng)k=1時,h1=A*W1+B*h0

當(dāng)K=2時,h2=A*W2+B*h1

當(dāng)K=3時,h3=A*W3+B*h2;

當(dāng)K=4時,h4=A*W4+B*h3;

當(dāng)K=5時,h5=A*W5+B*h4;

當(dāng)K=6時,h6=A*W6+B*h5;

當(dāng)K=7時,h7=A*W7+B*h6。

S3、第二循環(huán)神經(jīng)網(wǎng)絡(luò)生成第t-1個字的隱層向量,第二循環(huán)神經(jīng)網(wǎng)絡(luò)根據(jù)所述詞向量和隱向量生成第t個字的候選集,并預(yù)測第t個字的候選集的概率分布向量,其中t≥1;

第二循環(huán)神經(jīng)網(wǎng)絡(luò)是單相循環(huán)網(wǎng)絡(luò),其生成過程是不可逆的,是根據(jù)前面的字生成后面的字。

其中,預(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為用于表示用戶意圖的向量,表示了在預(yù)測當(dāng)前字的時候,第一循環(huán)神經(jīng)網(wǎng)絡(luò)的哪個隱向量是被影響最大的,具體步驟包括:

S311、利用第t-1個字的隱層向量St-1和第一循環(huán)神經(jīng)網(wǎng)絡(luò)生成的n個隱向量分別進(jì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ù)公式為:

其中,為輸入的信息的長度。

則Ct= at,1h1+ at,2h2+ at,3h3+ at,4h4+ at,5h5+ at,6h6+ at,7h7;

S32、在第二循環(huán)神經(jīng)網(wǎng)絡(luò)中分別輸入Ct、St-1和Yt-1,其中Yt-1代表了局部的上文信息;

S33、將Ct、St-1和Yt-1分別與權(quán)重矩陣D相乘得到St,函數(shù)式為:

S34、將St與矩陣E相乘得到第t個字的概率分布向量,函數(shù)式為:

S4、按照文本格式要求將候選集中概率分布最大維的字作為預(yù)測字Yt進(jìn)行輸出,通過循環(huán)迭代生成全部文本。

其中,文本格式要求包括強制加入的斷句符號、符合平仄和押韻的規(guī)則。在生成七言詩、五言詩或其他文本時,會有很多候選集,則挑選符合平仄、押韻等規(guī)則的候選集,排除掉那些不符合押韻、平仄等規(guī)則的句子,然后每生成一句時,強制加入斷句符號,繼續(xù)下一行的生成。本申請的基于RNN文本生成模型可以生成任意一種格式的文本,只要改變生成過程中的結(jié)構(gòu)限制即可。如當(dāng)限制為每句5個字后必須有一個斷句符時,即是五言詩,當(dāng)限制為每句7個字后必須有一個斷句符時,即是七言詩。只要不停止,可以生成任意多句文本格式,而且所有句字都圍繞用戶意圖生成,不會發(fā)生主題發(fā)散。

又如,用戶輸入的關(guān)鍵詞為五言絕句的第一句“春眠不覺曉”,那么在第二循環(huán)神經(jīng)網(wǎng)絡(luò)進(jìn)行預(yù)測的時候,預(yù)測第一句第一個字的時候可能會預(yù)測成“夏”,那么正確答案是“春”,然后就用一個維度為全部詞表的列向量,對應(yīng)“夜”那一維為1,其它維全部為0的向量表示正確答案,上面預(yù)測出的概率分布為預(yù)測答案,將預(yù)測答案和正確答案計算出交叉熵(通俗地理解為正確答案和預(yù)測答案差距的一個度量),用這個交叉熵進(jìn)行BP(Back Propagation),然后對步驟S32中的所有輸入值乘以的矩陣進(jìn)行更新,以讓下次預(yù)測的結(jié)果生成的字是“春”,迭代多次之后,直到我們的神經(jīng)網(wǎng)絡(luò)預(yù)測的結(jié)果均為正確答案,訓(xùn)練結(jié)束。

基于本發(fā)明模型的通用性,可以對該模型用任何語料進(jìn)行學(xué)習(xí),從而得到不同語言風(fēng)格的文字模型。如圖3所示,訓(xùn)練模型所用的語料可以采用現(xiàn)代文,而規(guī)定的規(guī)則是古文結(jié)構(gòu),可以生成具有現(xiàn)代風(fēng)格的古文,這樣就實現(xiàn)了大數(shù)據(jù)的充分利用和語言風(fēng)格的學(xué)習(xí)。

傳統(tǒng)方法隨機生成文本時一般通過取次優(yōu)候選句的方式,生成的文本質(zhì)量下降?;诒景l(fā)明提出的模型,通過對用戶輸入信息進(jìn)行隨機化以產(chǎn)生不同的生成信息,在生成時,模型反復(fù)從輸入信息中篩選重要的信息。這一方法既保證了隨機和多樣性,同時不影響生成文本信息的綜合打分。

在另一實施例中,在步驟S4中當(dāng)將預(yù)測字Yt輸出后進(jìn)行迭代生成下一個字的預(yù)測字Yt之前,還包括計算當(dāng)前的預(yù)測字Yt是由若干個所述關(guān)鍵詞中的哪個關(guān)鍵詞生成的,以便進(jìn)行修正,修正的步驟為重復(fù)執(zhí)行步驟S2至S4。在生成過程中,每生成一個字,都會重新計算一下到底會由用戶意圖的哪一個關(guān)鍵字進(jìn)行生成,保證了生成的動態(tài)調(diào)整,避免了如果生成每個字的時候都用全部的關(guān)鍵詞的信息進(jìn)行生成,那么可能生成結(jié)果會偏離到一個不好的方向

在另一實施例中,所述步驟S1還包括對用戶輸入的關(guān)鍵詞進(jìn)行擴充和亂序,擴充是指加入更多的關(guān)鍵詞,所述亂序是指將用戶輸入的關(guān)鍵詞進(jìn)行小概率的順序打亂。擴充指的是加入更多的關(guān)鍵詞,亂序指的是關(guān)鍵詞調(diào)換順序,通過這樣的操作,會產(chǎn)生不同的生成效果。這兩種方法可以讓生成結(jié)果具有隨機性和多樣性。從技術(shù)上來說,亂序就是把用戶輸入的信息進(jìn)行小概率的順序打亂,而擴充指的是尋找用戶輸入中的關(guān)鍵詞,然后在字典中找到關(guān)鍵詞的近義詞加入用戶輸入的信息。在用戶輸入后加入若干和用戶輸入相關(guān)或相似的詞,使得生成的文本在緊扣用戶所給的主題的同時,生成不同的文本。

本發(fā)明的自由化文本生成方法,具有如下有益效果:

1、本發(fā)明的文本生成方法可以利用多種格式的文本進(jìn)行學(xué)習(xí),解決了數(shù)據(jù)稀疏問題,且該方法可以生成任意長度、任意句子的文本。

2、本發(fā)明方法在生成文本時,對用戶意圖向量進(jìn)行查看,找到與當(dāng)前生成狀態(tài)最相關(guān)的用戶意圖進(jìn)行下一字的生成,每一句話語前面所有已經(jīng)生成的句子相關(guān)聯(lián),保持整個文本的一致性,且保證了生成的信息緊緊圍繞用戶的意圖展開。

3、本發(fā)明方法在生成文本的過程中不斷進(jìn)行修正,保證了生成效果的魯棒性,本發(fā)明可在不降低性能的前提下,生成多種與主題緊密相關(guān)的文本。

4、本發(fā)明方法在生成過程中,強制加入斷句、押韻、平仄等限制條件,保證字串能最大程度地符合語法和語義規(guī)則。

以上所述是本發(fā)明的優(yōu)選實施方式,應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也視為本發(fā)明的保護(hù)范圍。

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