本發(fā)明涉及數(shù)據(jù)處理領(lǐng)域,具體地,涉及一種問答知識(shí)庫的生成方法及計(jì)算機(jī)設(shè)備,以及,一種神經(jīng)網(wǎng)絡(luò)的訓(xùn)練方法及計(jì)算機(jī)設(shè)備。
背景技術(shù):
隨著互聯(lián)網(wǎng)技術(shù)的不斷發(fā)展,數(shù)據(jù)量日益增大,問答知識(shí)系統(tǒng)在人們的生活中發(fā)揮了越來越重要的作用。當(dāng)前問答知識(shí)系統(tǒng)中的問答知識(shí)庫主要是人工構(gòu)建為主,耗費(fèi)大量的人力物力,影響問答知識(shí)系統(tǒng)從單一領(lǐng)域擴(kuò)展到全領(lǐng)域的應(yīng)用。
為了解決阻礙智能問答技術(shù)發(fā)展的這一重大難題,研究者們提出了一些解決方案。一些現(xiàn)有的解決方案試圖使用基于語義模板的匹配方法,先構(gòu)建問題數(shù)據(jù)庫,對(duì)問題數(shù)據(jù)庫中的每個(gè)問題進(jìn)行語法和語義分析,形成與每個(gè)問題對(duì)應(yīng)的語義模板;對(duì)文檔數(shù)據(jù)庫中的文檔進(jìn)行語法和語義分析,將進(jìn)行語法和語義分析后的文檔與問題數(shù)據(jù)庫中每個(gè)問題的語義模板進(jìn)行匹配,找到最匹配的問題語義模板,基于該語義模板生成問題,從而形成問題答案對(duì),實(shí)現(xiàn)自動(dòng)構(gòu)建問答知識(shí)庫。該解決方案的效果取決于預(yù)先整理的問題數(shù)據(jù)庫和語義知識(shí)的覆蓋能力。
實(shí)際上,目前可用的語義知識(shí)庫多是通用知識(shí)庫,行業(yè)化的領(lǐng)域語義知識(shí)庫很少,需要耗費(fèi)大量人力去構(gòu)建。很顯然,該方案沒有降低問答知識(shí)庫構(gòu)建的難度。另外,由于該方案的問題數(shù)據(jù)庫中問題的種類有限,該方案僅具有部分適應(yīng)性,為生成得到其它種類的問題,仍需投入大量人力。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例的目的在于,提供一種問答知識(shí)庫生成的技術(shù)方案和神經(jīng)網(wǎng)絡(luò)訓(xùn)練的技術(shù)方案,旨在降低獲取問答知識(shí)的難度,減少大量的人工工作量。
為達(dá)到上述目的,本發(fā)明的實(shí)施例提供了一種問答知識(shí)庫的生成方法。所述方法包括:對(duì)文檔數(shù)據(jù)進(jìn)行拆分處理,得到多個(gè)知識(shí)片段;通過神經(jīng)網(wǎng)絡(luò)對(duì)每個(gè)知識(shí)片段進(jìn)行映射處理,得到與所述每個(gè)知識(shí)片段對(duì)應(yīng)的問題,從而生成得到所述問答知識(shí)庫。
可選地,所述通過神經(jīng)網(wǎng)絡(luò)對(duì)每個(gè)知識(shí)片段進(jìn)行映射處理后,所述方法還包括:對(duì)通過所述神經(jīng)網(wǎng)絡(luò)映射處理得到的問題進(jìn)行過濾。
可選地,所述對(duì)通過所述神經(jīng)網(wǎng)絡(luò)映射處理得到的問題進(jìn)行過濾,包括:基于所述問題的字?jǐn)?shù),過濾掉字?jǐn)?shù)小于或等于第一預(yù)設(shè)閾值的問題以及字?jǐn)?shù)大于第二預(yù)設(shè)閾值的問題;對(duì)所述問題進(jìn)行敏感詞檢查,過濾掉包含敏感詞的問題;計(jì)算所述問題與所述問題對(duì)應(yīng)的知識(shí)片段之間的語義相似度,過濾掉所述語義相似度小于第三預(yù)設(shè)閾值的問題。
可選地,所述計(jì)算所述問題與所述問題對(duì)應(yīng)的知識(shí)片段之間的語義相似度,包括:對(duì)所述問題和所述問題對(duì)應(yīng)的知識(shí)片段分別進(jìn)行分詞處理;根據(jù)分詞處理后的問題和知識(shí)片段生成得到與所述問題對(duì)應(yīng)的第一向量和與所述知識(shí)片段對(duì)應(yīng)的第二向量;計(jì)算所述第一向量和所述第二向量之間的夾角的余弦值,從而得到所述問題與所述問題對(duì)應(yīng)的知識(shí)片段之間的語義相似度。
可選地,所述計(jì)算所述問題與所述問題對(duì)應(yīng)的知識(shí)片段之間的語義相似度,包括:對(duì)所述問題和所述問題對(duì)應(yīng)的知識(shí)片段分別進(jìn)行分詞處理;根據(jù)分詞處理后的問題和知識(shí)片段生成得到與所述問題對(duì)應(yīng)的第一向量和與所述知識(shí)片段對(duì)應(yīng)的第二向量;使用基于詞嵌入模型的詞語向量對(duì)所述第一向量和所述第二向量分別進(jìn)行擴(kuò)展,得到與所述第一向量對(duì)應(yīng)的第一矩陣向量和與所述第二向量對(duì)應(yīng)的第二矩陣向量;計(jì)算所述第一矩陣向量和所述第二矩陣向量之間的搬土距離,從而得到所述問題與所述問題對(duì)應(yīng)的知識(shí)片段之間的語義相似度。
可選地,所述每個(gè)知識(shí)片段包括以下中的至少一者:文檔、段落以及句子。
相應(yīng)地,本發(fā)明的實(shí)施例還提供一種神經(jīng)網(wǎng)絡(luò)的訓(xùn)練方法。所述神經(jīng)網(wǎng)絡(luò)包括第一神經(jīng)網(wǎng)絡(luò)和與所述第一神經(jīng)網(wǎng)絡(luò)連接的第二神經(jīng)網(wǎng)絡(luò),所述方法包括:通過待訓(xùn)練的第一神經(jīng)網(wǎng)絡(luò)對(duì)問答訓(xùn)練集中的每個(gè)答案進(jìn)行處理,得到與所述每個(gè)答案對(duì)應(yīng)的第一中間語義向量;通過待訓(xùn)練的第二神經(jīng)網(wǎng)絡(luò)對(duì)所述問答訓(xùn)練集中的每個(gè)問題進(jìn)行處理,得到與所述每個(gè)問題對(duì)應(yīng)的第二中間語義向量;根據(jù)所述每個(gè)答案的第一中間語義向量與所述每個(gè)答案對(duì)應(yīng)的問題的第二中間語義向量確定所述第一中間語義向量與所述第二中間語義向量之間的差異;根據(jù)所述差異調(diào)整所述第一神經(jīng)網(wǎng)絡(luò)和所述第二神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)參數(shù),從而訓(xùn)練得到所述神經(jīng)網(wǎng)絡(luò)。
可選地,所述通過待訓(xùn)練的第一神經(jīng)網(wǎng)絡(luò)對(duì)問答訓(xùn)練集中的每個(gè)答案進(jìn)行處理之前,所述方法還包括:使用網(wǎng)絡(luò)爬蟲從網(wǎng)站上下載關(guān)于常見問題集的頁面;對(duì)所述頁面進(jìn)行處理,得到多個(gè)問題和與所述多個(gè)問題分別對(duì)應(yīng)的答案,從而得到所述問答訓(xùn)練集。
相應(yīng)地,本發(fā)明的實(shí)施例還提供一種計(jì)算機(jī)設(shè)備,所述設(shè)備包括:第一處理器、第一存儲(chǔ)器、第一通信元件和第一通信總線,所述第一處理器、所述第一存儲(chǔ)器和所述第一通信元件通過所述第一通信總線完成相互間的通信;所述第一存儲(chǔ)器用于存放至少一可執(zhí)行指令,所述可執(zhí)行指令使所述第一處理器執(zhí)行問答知識(shí)庫的生成方法對(duì)應(yīng)的操作。
相應(yīng)地,本發(fā)明的實(shí)施例還提供一種計(jì)算機(jī)設(shè)備,所述設(shè)備包括:第二處理器、第二存儲(chǔ)器、第二通信元件和第二通信總線,所述第二處理器、所述第二存儲(chǔ)器和所述第二通信元件通過所述第二通信總線完成相互間的通信;所述第二存儲(chǔ)器用于存放至少一可執(zhí)行指令,所述可執(zhí)行指令使所述第二處理器執(zhí)行神經(jīng)網(wǎng)絡(luò)的訓(xùn)練方法對(duì)應(yīng)的操作。
根據(jù)本發(fā)明實(shí)施例提供的技術(shù)方案,對(duì)文檔數(shù)據(jù)進(jìn)行拆分處理,得到多個(gè)知識(shí)片段;并通過神經(jīng)網(wǎng)絡(luò)對(duì)每個(gè)知識(shí)片段進(jìn)行映射處理,得到與所述每個(gè)知識(shí)片段對(duì)應(yīng)的問題,從而生成得到所述問答知識(shí)庫,能夠有效地降低獲取問答知識(shí)的難度,大大減少了人工工作量。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹。顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些圖獲得其他的附圖。
圖1是本發(fā)明一實(shí)施例提供的問答知識(shí)庫的生成方法的流程圖;
圖2是本發(fā)明另一實(shí)施例提供的問答知識(shí)庫的生成方法的流程圖;
圖3是本發(fā)明一實(shí)施例提供的神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)結(jié)構(gòu)的示意圖;
圖4是本發(fā)明一實(shí)施例提供的神經(jīng)網(wǎng)絡(luò)的訓(xùn)練方法的流程圖;
圖5是本發(fā)明另一實(shí)施例提供的神經(jīng)網(wǎng)絡(luò)的訓(xùn)練方法的流程圖;
圖6是本發(fā)明一實(shí)施例提供的計(jì)算機(jī)設(shè)備的結(jié)構(gòu)框圖;
圖7是本發(fā)明另一實(shí)施例提供的計(jì)算機(jī)設(shè)備的結(jié)構(gòu)框圖。
具體實(shí)施方式
以下結(jié)合附圖對(duì)本發(fā)明的具體實(shí)施方式進(jìn)行詳細(xì)說明。應(yīng)當(dāng)理解的是,此處所描述的具體實(shí)施方式僅用于說明和解釋本發(fā)明,并不用于限制本發(fā)明。
圖1是本發(fā)明一實(shí)施例提供的問答知識(shí)庫的生成方法的流程圖。如圖1所示,本發(fā)明一實(shí)施例提供的問答知識(shí)庫的生成方法包括:
在步驟s101中,對(duì)文檔數(shù)據(jù)進(jìn)行拆分處理,得到多個(gè)知識(shí)片段。
其中,所述問答知識(shí)庫指的是存儲(chǔ)有多個(gè)問答對(duì)的數(shù)據(jù)庫,所述問答對(duì)包括問題以及解決該問題的答案。所述文檔數(shù)據(jù)可包括文檔數(shù)據(jù)庫,每個(gè)知識(shí)片段可為文檔、段落或句子。當(dāng)所述文檔數(shù)據(jù)為文檔數(shù)據(jù)庫時(shí),對(duì)文檔數(shù)據(jù)庫進(jìn)行知識(shí)切分處理,按文檔、段落或句子拆分成多個(gè)知識(shí)片段,得到文檔、段落和句子三類知識(shí)片段。具體地,拆分過程可包括:以文檔為單位,每篇文檔作為一個(gè)知識(shí)片段;以段落為單位,每個(gè)段落作為一個(gè)知識(shí)片段,其中,段落的結(jié)束符號(hào)包括多個(gè)連續(xù)的回車換行符或者回車換行符加空格;以句子為單位,每個(gè)句子作為一個(gè)知識(shí)片段,句子的結(jié)束符號(hào)包括句號(hào)、問號(hào)、嘆號(hào)、句點(diǎn)等。
在步驟s102中,通過神經(jīng)網(wǎng)絡(luò)對(duì)每個(gè)知識(shí)片段進(jìn)行映射處理,得到與所述每個(gè)知識(shí)片段對(duì)應(yīng)的問題,從而生成得到所述問答知識(shí)庫。
在具體的實(shí)施方式中,將拆分后得到的每個(gè)知識(shí)片段作為答案輸入到神經(jīng)網(wǎng)絡(luò),經(jīng)過神經(jīng)網(wǎng)絡(luò)對(duì)每個(gè)知識(shí)片段進(jìn)行語義映射處理,得到每個(gè)知識(shí)片段對(duì)應(yīng)的問題,根據(jù)每個(gè)知識(shí)片段和每個(gè)知識(shí)片段對(duì)應(yīng)的問題生成得到所述問答知識(shí)庫。例如,通過深度神經(jīng)網(wǎng)絡(luò)對(duì)文檔、段落、句子三類知識(shí)片段分別進(jìn)行處理,逐個(gè)生成對(duì)應(yīng)的問題,得到問答對(duì),其結(jié)構(gòu)為:<問題,答案>。其中,所述神經(jīng)網(wǎng)絡(luò)可為任意適當(dāng)?shù)目蓪?shí)現(xiàn)特征提取或目標(biāo)對(duì)象檢測的神經(jīng)網(wǎng)絡(luò),包括但不限于卷積神經(jīng)網(wǎng)絡(luò)、增強(qiáng)學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)、對(duì)抗神經(jīng)網(wǎng)絡(luò)中的生成網(wǎng)絡(luò)等等。神經(jīng)網(wǎng)絡(luò)中具體結(jié)構(gòu)的設(shè)置可以由本領(lǐng)域技術(shù)人員根據(jù)實(shí)際需求適當(dāng)設(shè)定,如卷積層的層數(shù)、卷積核的大小、通道數(shù)等等,本發(fā)明實(shí)施例對(duì)此不作限制。
在本實(shí)施例中,對(duì)文檔數(shù)據(jù)進(jìn)行拆分處理,得到多個(gè)知識(shí)片段;并通過神經(jīng)網(wǎng)絡(luò)對(duì)每個(gè)知識(shí)片段進(jìn)行映射處理,得到與所述每個(gè)知識(shí)片段對(duì)應(yīng)的問題,從而生成得到所述問答知識(shí)庫,能夠有效地降低獲取問答知識(shí)的難度,大大減少了人工工作量。
圖2是本發(fā)明另一實(shí)施例提供的問答知識(shí)庫的生成方法的流程圖。如圖2所示,本發(fā)明另一實(shí)施例提供的問答知識(shí)庫的生成方法包括:
在步驟s201中,對(duì)文檔數(shù)據(jù)進(jìn)行拆分處理,得到多個(gè)知識(shí)片段。
由于該步驟s201與上述實(shí)施例的步驟s101相同,在此不再贅述。
在步驟s202中,通過神經(jīng)網(wǎng)絡(luò)對(duì)每個(gè)知識(shí)片段進(jìn)行映射處理,得到與所述每個(gè)知識(shí)片段對(duì)應(yīng)的問題。
在具體的實(shí)施例中,所述神經(jīng)網(wǎng)絡(luò)可為深度神經(jīng)網(wǎng)絡(luò),所述深度神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)為序列到序列模型(sequence-to-sequence),所述序列到序列模型由兩個(gè)rnn(recurrentneuralnetworks,循環(huán)神經(jīng)網(wǎng)絡(luò))構(gòu)成,一個(gè)被稱為“編碼器”,另一個(gè)則稱為“解碼器”。圖3是本發(fā)明一實(shí)施例提供的神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)結(jié)構(gòu)的示意圖。如圖3所示,編碼器負(fù)責(zé)把輸入的知識(shí)片段轉(zhuǎn)換為中間語義表示,解碼器負(fù)責(zé)把中間語義表示轉(zhuǎn)換為輸出的問題。通過這個(gè)網(wǎng)絡(luò)結(jié)構(gòu),可實(shí)現(xiàn)從答案到問題的自動(dòng)轉(zhuǎn)換。具體地,將拆分后得到的每個(gè)知識(shí)片段,作為答案輸入到深度神經(jīng)網(wǎng)絡(luò)的編碼器輸入端,經(jīng)過深度神經(jīng)網(wǎng)絡(luò)處理后,由深度神經(jīng)網(wǎng)絡(luò)的解碼器輸出端輸出與每個(gè)知識(shí)片段對(duì)應(yīng)的問題。
在步驟s203中,對(duì)通過所述神經(jīng)網(wǎng)絡(luò)映射處理得到的問題進(jìn)行過濾,并根據(jù)未被過濾的問題以及未被過濾的問題所對(duì)應(yīng)的知識(shí)片段生成問答知識(shí)庫。
在本實(shí)施例中,通過該步驟s203可自動(dòng)生成高質(zhì)量的問答知識(shí)庫。具體地,所述對(duì)通過所述神經(jīng)網(wǎng)絡(luò)映射處理得到的問題進(jìn)行過濾,包括:基于所述問題的字?jǐn)?shù),過濾掉字?jǐn)?shù)小于或等于第一預(yù)設(shè)閾值的問題以及字?jǐn)?shù)大于第二預(yù)設(shè)閾值的問題;對(duì)所述問題進(jìn)行敏感詞檢查,過濾掉包含敏感詞的問題;計(jì)算所述問題與所述問題對(duì)應(yīng)的知識(shí)片段之間的語義相似度,過濾掉所述語義相似度小于第三預(yù)設(shè)閾值的問題。籍此,可通過字?jǐn)?shù)檢查、敏感詞檢查以及語義相似度檢查對(duì)問題與答案對(duì)進(jìn)行過濾,從而確保問題與答案對(duì)的高質(zhì)量。
其中,所述第一預(yù)設(shè)閾值、所述第二預(yù)設(shè)閾值和所述第三預(yù)設(shè)閾值的具體設(shè)定可以由本領(lǐng)域技術(shù)人員根據(jù)實(shí)際需要適當(dāng)設(shè)置,本發(fā)明實(shí)施例對(duì)此不作限制。所述敏感詞包括色情用詞、反動(dòng)用詞以及不文明用詞等。過濾掉字?jǐn)?shù)小于或等于第一預(yù)設(shè)閾值的問題就是為了過濾字?jǐn)?shù)過短的問題,過濾掉字?jǐn)?shù)大于第二預(yù)設(shè)閾值的問題就是為了過濾掉字?jǐn)?shù)過長的問題。
可選地,所述計(jì)算所述問題與所述問題對(duì)應(yīng)的知識(shí)片段之間的語義相似度,包括:對(duì)所述問題和所述問題對(duì)應(yīng)的知識(shí)片段分別進(jìn)行分詞處理;根據(jù)分詞處理后的問題和知識(shí)片段生成得到與所述問題對(duì)應(yīng)的第一向量和與所述知識(shí)片段對(duì)應(yīng)的第二向量;計(jì)算所述第一向量和所述第二向量之間的夾角的余弦值,從而得到所述問題與所述問題對(duì)應(yīng)的知識(shí)片段之間的語義相似度。具體地,對(duì)問題和知識(shí)片段分別進(jìn)行分詞處理后,分別構(gòu)建向量,每個(gè)詞語表示為向量的一個(gè)維度,詞語的權(quán)重作為每個(gè)維度上的值,采用夾角余弦的方法計(jì)算兩個(gè)向量之間的相似度。其中,第一向量的詞語的權(quán)重可根據(jù)該詞語在問題中出現(xiàn)的詞頻確定得到。第二向量的詞語的權(quán)重可根據(jù)該詞語在問題中出現(xiàn)的詞頻確定得到。這種算問題與問題對(duì)應(yīng)的知識(shí)片段之間的語義相似度的方法可概括為基于向量空間模型的相似度計(jì)算方法。
可選地,所述計(jì)算所述問題與所述問題對(duì)應(yīng)的知識(shí)片段之間的語義相似度,包括:對(duì)所述問題和所述問題對(duì)應(yīng)的知識(shí)片段分別進(jìn)行分詞處理;根據(jù)分詞處理后的問題和知識(shí)片段生成得到與所述問題對(duì)應(yīng)的第一向量和與所述知識(shí)片段對(duì)應(yīng)的第二向量;使用基于詞嵌入模型的詞語向量對(duì)所述第一向量和所述第二向量分別進(jìn)行擴(kuò)展,得到與所述第一向量對(duì)應(yīng)的第一矩陣向量和與所述第二向量對(duì)應(yīng)的第二矩陣向量;計(jì)算所述第一矩陣向量和所述第二矩陣向量之間的搬土距離,從而得到所述問題與所述問題對(duì)應(yīng)的知識(shí)片段之間的語義相似度。具體地,首先使用開源工具word2vec對(duì)為生成問答知識(shí)庫的整個(gè)文檔數(shù)據(jù)庫訓(xùn)練一個(gè)詞嵌入模型,然后將問答訓(xùn)練集中的詞語輸入到詞嵌入模型中,會(huì)輸出所有出現(xiàn)在問答訓(xùn)練集上的詞語的向量表示。接著,將問題和問題對(duì)應(yīng)的知識(shí)片段分別進(jìn)行分詞處理,并分別構(gòu)建向量,使用基于詞嵌入模型的詞語向量對(duì)第一向量和第二向量分別進(jìn)行擴(kuò)展,將第一向量和第二向量分別擴(kuò)充為矩陣向量。計(jì)算兩個(gè)矩陣向量之間的相似度,作為問題答案對(duì)的相似度。這里的矩陣向量之間的相似度計(jì)算方法可以是先計(jì)算問題答案的任意兩個(gè)詞之間的詞向量相似度,然后再計(jì)算兩個(gè)矩陣向量之間的emd(earthmover’sdistance,搬土距離)。這種算問題與問題對(duì)應(yīng)的知識(shí)片段之間的語義相似度的方法可概括為基于詞嵌入模型的相似度計(jì)算方法。
優(yōu)選地,以上兩種語義相似度計(jì)算方法可以進(jìn)行線性加權(quán),取加權(quán)后的語義相似度作為問題答案對(duì)最終的語義相似度,并根據(jù)該語義相似度對(duì)問題答案對(duì)進(jìn)行過濾。具體地,對(duì)基于向量空間模型的相似度計(jì)算方法的權(quán)重可取0.5,對(duì)基于詞嵌入模型的相似度計(jì)算方法的權(quán)重可取為0.5,然后相加得到最終的語義相似度。
長期以來,阻礙智能問答技術(shù)發(fā)展的重大難題之一是如何獲取高質(zhì)量的問答知識(shí)庫。本實(shí)施例通過神經(jīng)網(wǎng)絡(luò)對(duì)文檔數(shù)據(jù)庫進(jìn)行分析,并對(duì)生成的問題進(jìn)行過濾,自動(dòng)生成高質(zhì)量的問答知識(shí)庫,可有效地降低問答知識(shí)庫獲取的難度,大大減少人工工作量。本實(shí)施例具有較好的領(lǐng)域適應(yīng)性,對(duì)智能問答技術(shù)在特定領(lǐng)域的快速上線和推廣有較好的促進(jìn)作用。
圖4是本發(fā)明一實(shí)施例提供的神經(jīng)網(wǎng)絡(luò)的訓(xùn)練方法的流程圖。如圖4所示,本發(fā)明一實(shí)施例提供的神經(jīng)網(wǎng)絡(luò)的訓(xùn)練方法包括:
在步驟s301中,通過待訓(xùn)練的第一神經(jīng)網(wǎng)絡(luò)對(duì)問答訓(xùn)練集中的每個(gè)答案進(jìn)行處理,得到與所述每個(gè)答案對(duì)應(yīng)的第一中間語義向量。
其中,所述神經(jīng)網(wǎng)絡(luò)包括第一神經(jīng)網(wǎng)絡(luò)和與所述第一神經(jīng)網(wǎng)絡(luò)連接的第二神經(jīng)網(wǎng)絡(luò)。所述問答訓(xùn)練集可來源于已有的從互聯(lián)網(wǎng)采集的常用問題集,或是經(jīng)過人工整理的常用問題集,所述問答訓(xùn)練集由一組問題答案對(duì)組成,該問答訓(xùn)練集的領(lǐng)域不做限制。由于神經(jīng)網(wǎng)絡(luò)的訓(xùn)練效果取決于問答訓(xùn)練集的質(zhì)量及規(guī)模,因此,需要保證問答訓(xùn)練集的規(guī)模至少在萬條以上。具體地,通過待訓(xùn)練的第一神經(jīng)網(wǎng)絡(luò)對(duì)問答訓(xùn)練集中的每個(gè)答案進(jìn)行語義映射處理,得到與所述每個(gè)答案對(duì)應(yīng)的第一中間語義向量。
在步驟s302中,通過待訓(xùn)練的第二神經(jīng)網(wǎng)絡(luò)對(duì)所述問答訓(xùn)練集中的每個(gè)問題進(jìn)行處理,得到與所述每個(gè)問題對(duì)應(yīng)的第二中間語義向量。
具體地,通過待訓(xùn)練的第二神經(jīng)網(wǎng)絡(luò)對(duì)所述問答訓(xùn)練集中的每個(gè)問題進(jìn)行語義映射處理,得到與所述每個(gè)問題對(duì)應(yīng)的第二中間語義向量。
在步驟s303中,根據(jù)所述每個(gè)答案的第一中間語義向量與所述每個(gè)答案對(duì)應(yīng)的問題的第二中間語義向量確定所述第一中間語義向量與所述第二中間語義向量之間的差異。
具體地,將每個(gè)答案的第一中間語義向量與每個(gè)答案對(duì)應(yīng)的問題的第二中間語義向量進(jìn)行比較,確定第一中間語義向量與第一中間語義向量對(duì)應(yīng)的第二中間語義向量之間的差異。通過計(jì)算所述差異,對(duì)當(dāng)前獲得的中間語義向量進(jìn)行評(píng)估,以作為后續(xù)訓(xùn)練第一神經(jīng)網(wǎng)絡(luò)和第二神經(jīng)網(wǎng)絡(luò)的依據(jù)。
在步驟s304中,根據(jù)所述差異調(diào)整所述第一神經(jīng)網(wǎng)絡(luò)和所述第二神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)參數(shù),從而訓(xùn)練得到所述神經(jīng)網(wǎng)絡(luò)。
具體地,可將所述差異值反向傳輸給第一神經(jīng)網(wǎng)絡(luò)和第二神經(jīng)網(wǎng)絡(luò),從而迭代地訓(xùn)練該第一神經(jīng)網(wǎng)絡(luò)和第二神經(jīng)網(wǎng)絡(luò)。神經(jīng)網(wǎng)絡(luò)的訓(xùn)練是一個(gè)迭代的過程,本發(fā)明實(shí)施例僅對(duì)其中的一次訓(xùn)練過程進(jìn)行了說明,但本領(lǐng)域技術(shù)人員應(yīng)當(dāng)明了,對(duì)神經(jīng)網(wǎng)絡(luò)的每次訓(xùn)練都可采用該訓(xùn)練方式,直至完成神經(jīng)網(wǎng)絡(luò)的訓(xùn)練。
本實(shí)施例基于已有的本領(lǐng)域或其它領(lǐng)域的問答訓(xùn)練集,對(duì)神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,以使得訓(xùn)練得到的神經(jīng)網(wǎng)絡(luò)自動(dòng)對(duì)本領(lǐng)域的文檔數(shù)據(jù)庫進(jìn)行分析,自動(dòng)生成問答知識(shí)庫,可以有效地解決問答知識(shí)獲取的瓶頸,大大減少人工工作量。
圖5是本發(fā)明另一實(shí)施例提供的神經(jīng)網(wǎng)絡(luò)的訓(xùn)練方法的流程圖。如圖5所示,本發(fā)明另一實(shí)施例提供的神經(jīng)網(wǎng)絡(luò)的訓(xùn)練方法包括:
在步驟s401中,使用網(wǎng)絡(luò)爬蟲從網(wǎng)站上下載關(guān)于常見問題集的頁面,并對(duì)所述頁面進(jìn)行處理,得到多個(gè)問題和與所述多個(gè)問題分別對(duì)應(yīng)的答案,從而得到所述問答訓(xùn)練集。
在具體的實(shí)施方式中,首先用網(wǎng)絡(luò)爬蟲從網(wǎng)站上下載常見問題集頁面。然后,對(duì)html頁面進(jìn)行標(biāo)簽過濾、文本抽取和記錄切分,獲取得到問題答案對(duì)。最后,將抽取的問題答案對(duì)入庫。
在步驟s402中,通過待訓(xùn)練的第一神經(jīng)網(wǎng)絡(luò)對(duì)問答訓(xùn)練集中的每個(gè)答案進(jìn)行處理,得到與所述每個(gè)答案對(duì)應(yīng)的第一中間語義向量。
由于該步驟s402與上述實(shí)施例的步驟s301相同,在此不再贅述。
在步驟s403中,通過待訓(xùn)練的第二神經(jīng)網(wǎng)絡(luò)對(duì)所述問答訓(xùn)練集中的每個(gè)問題進(jìn)行處理,得到與所述每個(gè)問題對(duì)應(yīng)的第二中間語義向量。
由于該步驟s403與上述實(shí)施例的步驟s302相同,在此不再贅述。
在步驟s404中,根據(jù)所述每個(gè)答案的第一中間語義向量與所述每個(gè)答案對(duì)應(yīng)的問題的第二中間語義向量確定所述第一中間語義向量與所述第二中間語義向量之間的差異。
由于該步驟s404與上述實(shí)施例的步驟s303相同,在此不再贅述。
在步驟s405中,根據(jù)所述差異調(diào)整所述第一神經(jīng)網(wǎng)絡(luò)和所述第二神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)參數(shù),從而訓(xùn)練得到所述神經(jīng)網(wǎng)絡(luò)。
由于該步驟s405與上述實(shí)施例的步驟s304相同,在此不再贅述。
總體來說,神經(jīng)網(wǎng)絡(luò)的訓(xùn)練是按照深度神經(jīng)網(wǎng)絡(luò)的序列到序列模型進(jìn)行訓(xùn)練。經(jīng)典的序列到序列模型由兩個(gè)循環(huán)神經(jīng)網(wǎng)絡(luò)構(gòu)成,一個(gè)循環(huán)神經(jīng)網(wǎng)絡(luò)被稱為編碼器,另一個(gè)循環(huán)神經(jīng)網(wǎng)絡(luò)則被稱為解碼器。編碼器負(fù)責(zé)把任意長度的輸入序列編碼成固定長度的向量表示,解碼器負(fù)責(zé)把固定長度的向量表示解碼成任意長度的序列輸出。簡而言之,編碼器把輸入的答案序列編碼成中間語義向量,解碼器負(fù)責(zé)把中間語義向量解碼為輸出的問題序列。具體地,將問答訓(xùn)練集合中的答案輸入到編碼器中,由編碼器將答案序列編碼成第一中間語義向量,將問答訓(xùn)練集中的答案對(duì)應(yīng)的問題輸入到解碼器中,由解碼器將問題序列編碼成第二中間語義向量,然后,將第一中間語義向量與第二中間語義向量進(jìn)行比較,確定第一中間語義向量與第二中間語義向量的差異,再根據(jù)所述差異反向調(diào)節(jié)所述編碼器和所述解碼器的網(wǎng)絡(luò)參數(shù),使得第一中間語義向量與第二中間語義向量的差異小于預(yù)先配置的預(yù)設(shè)值,從而完成神經(jīng)網(wǎng)絡(luò)的訓(xùn)練。
本發(fā)明的示例性實(shí)施例旨在提出一種神經(jīng)網(wǎng)絡(luò)的訓(xùn)練方法,通過待訓(xùn)練的第一神經(jīng)網(wǎng)絡(luò)對(duì)問答訓(xùn)練集中的每個(gè)答案進(jìn)行處理,得到與所述每個(gè)答案對(duì)應(yīng)的第一中間語義向量;通過待訓(xùn)練的第二神經(jīng)網(wǎng)絡(luò)對(duì)所述問答訓(xùn)練集中的每個(gè)問題進(jìn)行處理,得到與所述每個(gè)問題對(duì)應(yīng)的第二中間語義向量;再根據(jù)所述每個(gè)答案的第一中間語義向量與所述每個(gè)答案對(duì)應(yīng)的問題的第二中間語義向量確定所述第一中間語義向量與所述第二中間語義向量之間的差異;再根據(jù)所述差異調(diào)整所述第一神經(jīng)網(wǎng)絡(luò)和所述第二神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)參數(shù),從而訓(xùn)練得到所述神經(jīng)網(wǎng)絡(luò),以使訓(xùn)練得到的神經(jīng)網(wǎng)絡(luò)根據(jù)輸入的答案獲取與答案對(duì)應(yīng)的問題。
對(duì)于方法實(shí)施例,為了簡單描述,故將其都表述為一系列的動(dòng)作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本發(fā)明實(shí)施例并不受所描述的動(dòng)作順序的限制,因?yàn)橐罁?jù)本發(fā)明實(shí)施例,某些步驟可以采用其他順序或者同時(shí)進(jìn)行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說明書中所描述的實(shí)施例均屬于優(yōu)選實(shí)施例,所涉及的動(dòng)作并不一定是本發(fā)明實(shí)施例所必須的。
本發(fā)明實(shí)施例還提供了一種計(jì)算機(jī)設(shè)備,例如可以是移動(dòng)終端、個(gè)人計(jì)算機(jī)(pc)、平板電腦、服務(wù)器等。下面參考圖6,其示出了適于用來實(shí)現(xiàn)本發(fā)明實(shí)施例的終端設(shè)備或服務(wù)器的計(jì)算機(jī)設(shè)備500的結(jié)構(gòu)示意圖。如圖6所示,計(jì)算機(jī)設(shè)備500包括一個(gè)或多個(gè)第一處理器、第一通信元件等,所述一個(gè)或多個(gè)第一處理器例如:一個(gè)或多個(gè)中央處理單元(cpu)501,和/或一個(gè)或多個(gè)圖像處理器(gpu)513等,第一處理器可以根據(jù)存儲(chǔ)在只讀存儲(chǔ)器(rom)502中的可執(zhí)行指令或者從存儲(chǔ)部分508加載到隨機(jī)訪問存儲(chǔ)器(ram)503中的可執(zhí)行指令而執(zhí)行各種適當(dāng)?shù)膭?dòng)作和處理。本實(shí)施例中,第一只讀存儲(chǔ)器502和隨機(jī)訪問存儲(chǔ)器503統(tǒng)稱為第一存儲(chǔ)器。第一通信元件包括通信組件512和/或通信接口509。其中,通信組件512可包括但不限于網(wǎng)卡,所述網(wǎng)卡可包括但不限于ib(infiniband)網(wǎng)卡,通信接口509包括諸如lan卡、調(diào)制解調(diào)器等的網(wǎng)絡(luò)接口卡的通信接口,通信接口509經(jīng)由諸如因特網(wǎng)的網(wǎng)絡(luò)執(zhí)行通信處理。
第一處理器可與只讀存儲(chǔ)器502和/或隨機(jī)訪問存儲(chǔ)器503中通信以執(zhí)行可執(zhí)行指令,通過第一通信總線504與通信組件512相連、并經(jīng)通信組件512與其他目標(biāo)設(shè)備通信,從而完成本發(fā)明實(shí)施例提供的任一項(xiàng)問答知識(shí)庫的生成方法對(duì)應(yīng)的操作,例如,對(duì)文檔數(shù)據(jù)進(jìn)行拆分處理,得到多個(gè)知識(shí)片段;通過神經(jīng)網(wǎng)絡(luò)對(duì)每個(gè)知識(shí)片段進(jìn)行映射處理,得到與所述每個(gè)知識(shí)片段對(duì)應(yīng)的問題,從而生成得到所述問答知識(shí)庫。
此外,在ram503中,還可存儲(chǔ)有裝置操作所需的各種程序和數(shù)據(jù)。cpu501或gpu513、rom502以及ram503通過第一通信總線504彼此相連。在有ram503的情況下,rom502為可選模塊。ram503存儲(chǔ)可執(zhí)行指令,或在運(yùn)行時(shí)向rom502中寫入可執(zhí)行指令,可執(zhí)行指令使第一處理器執(zhí)行上述通信方法對(duì)應(yīng)的操作。輸入/輸出(i/o)接口505也連接至第一通信總線504。通信組件512可以集成設(shè)置,也可以設(shè)置為具有多個(gè)子模塊(例如多個(gè)ib網(wǎng)卡),并在通信總線鏈接上。
以下部件連接至i/o接口505:包括鍵盤、鼠標(biāo)等的輸入部分506;包括諸如陰極射線管(crt)、液晶顯示器(lcd)等以及揚(yáng)聲器等的輸出部分507;包括硬盤等的存儲(chǔ)部分508;以及包括諸如lan卡、調(diào)制解調(diào)器等的網(wǎng)絡(luò)接口卡的通信接口509。驅(qū)動(dòng)器510也根據(jù)需要連接至i/o接口505??刹鹦督橘|(zhì)511,諸如磁盤、光盤、磁光盤、半導(dǎo)體存儲(chǔ)器等等,根據(jù)需要安裝在驅(qū)動(dòng)器510上,以便于從其上讀出的計(jì)算機(jī)程序根據(jù)需要被安裝入存儲(chǔ)部分508。
需要說明的,如圖6所示的架構(gòu)僅為一種可選實(shí)現(xiàn)方式,在具體實(shí)踐過程中,可根據(jù)實(shí)際需要對(duì)上述圖6的部件數(shù)量和類型進(jìn)行選擇、刪減、增加或替換;在不同功能部件設(shè)置上,也可采用分離設(shè)置或集成設(shè)置等實(shí)現(xiàn)方式,例如gpu和cpu可分離設(shè)置或者可將gpu集成在cpu上,通信元件可分離設(shè)置,也可集成設(shè)置在cpu或gpu上,等等。這些可替換的實(shí)施方式均落入本發(fā)明的保護(hù)范圍。
特別地,根據(jù)本發(fā)明實(shí)施例,上文參考流程圖描述的過程可以被實(shí)現(xiàn)為計(jì)算機(jī)軟件程序。例如,本發(fā)明實(shí)施例包括一種計(jì)算機(jī)程序產(chǎn)品,其包括有形地包含在機(jī)器可讀介質(zhì)上的計(jì)算機(jī)程序,計(jì)算機(jī)程序包含用于執(zhí)行流程圖所示的方法的程序代碼,程序代碼可包括對(duì)應(yīng)執(zhí)行本發(fā)明實(shí)施例提供的方法步驟對(duì)應(yīng)的指令,例如,對(duì)文檔數(shù)據(jù)進(jìn)行拆分處理,得到多個(gè)知識(shí)片段;通過神經(jīng)網(wǎng)絡(luò)對(duì)每個(gè)知識(shí)片段進(jìn)行映射處理,得到與所述每個(gè)知識(shí)片段對(duì)應(yīng)的問題,從而生成得到所述問答知識(shí)庫。在這樣的實(shí)施例中,該計(jì)算機(jī)程序可以通過通信元件從網(wǎng)絡(luò)上被下載和安裝,和/或從可拆卸介質(zhì)511被安裝。在該計(jì)算機(jī)程序被第一處理器執(zhí)行時(shí),執(zhí)行本發(fā)明實(shí)施例的方法中限定的上述功能。
本發(fā)明實(shí)施例還提供了一種計(jì)算機(jī)設(shè)備,例如可以是移動(dòng)終端、個(gè)人計(jì)算機(jī)(pc)、平板電腦、服務(wù)器等。下面參考圖7,其示出了適于用來實(shí)現(xiàn)本發(fā)明實(shí)施例的終端設(shè)備或服務(wù)器的計(jì)算機(jī)設(shè)備600的結(jié)構(gòu)示意圖。如圖7所示,計(jì)算機(jī)設(shè)備600包括一個(gè)或多個(gè)第二處理器、第二通信元件等,所述一個(gè)或多個(gè)第二處理器例如:一個(gè)或多個(gè)中央處理單元(cpu)601,和/或一個(gè)或多個(gè)圖像處理器(gpu)613等,第二處理器可以根據(jù)存儲(chǔ)在只讀存儲(chǔ)器(rom)602中的可執(zhí)行指令或者從存儲(chǔ)部分608加載到隨機(jī)訪問存儲(chǔ)器(ram)603中的可執(zhí)行指令而執(zhí)行各種適當(dāng)?shù)膭?dòng)作和處理。本實(shí)施例中,第二只讀存儲(chǔ)器602和隨機(jī)訪問存儲(chǔ)器603統(tǒng)稱為第二存儲(chǔ)器。第二通信元件包括通信組件612和/或通信接口609。其中,通信組件612可包括但不限于網(wǎng)卡,所述網(wǎng)卡可包括但不限于ib(infiniband)網(wǎng)卡,通信接口609包括諸如lan卡、調(diào)制解調(diào)器等的網(wǎng)絡(luò)接口卡的通信接口,通信接口609經(jīng)由諸如因特網(wǎng)的網(wǎng)絡(luò)執(zhí)行通信處理。
第二處理器可與只讀存儲(chǔ)器602和/或隨機(jī)訪問存儲(chǔ)器603中通信以執(zhí)行可執(zhí)行指令,通過第二通信總線604與通信組件612相連、并經(jīng)通信組件612與其他目標(biāo)設(shè)備通信,從而完成本發(fā)明實(shí)施例提供的任一項(xiàng)神經(jīng)網(wǎng)絡(luò)的訓(xùn)練方法對(duì)應(yīng)的操作,例如,通過待訓(xùn)練的第一神經(jīng)網(wǎng)絡(luò)對(duì)問答訓(xùn)練集中的每個(gè)答案進(jìn)行處理,得到與所述每個(gè)答案對(duì)應(yīng)的第一中間語義向量;通過待訓(xùn)練的第二神經(jīng)網(wǎng)絡(luò)對(duì)所述問答訓(xùn)練集中的每個(gè)問題進(jìn)行處理,得到與所述每個(gè)問題對(duì)應(yīng)的第二中間語義向量;根據(jù)所述每個(gè)答案的第一中間語義向量與所述每個(gè)答案對(duì)應(yīng)的問題的第二中間語義向量確定所述第一中間語義向量與所述第二中間語義向量之間的差異;根據(jù)所述差異調(diào)整所述第一神經(jīng)網(wǎng)絡(luò)和所述第二神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)參數(shù),從而訓(xùn)練得到所述神經(jīng)網(wǎng)絡(luò)。
此外,在ram603中,還可存儲(chǔ)有裝置操作所需的各種程序和數(shù)據(jù)。cpu601或gpu613、rom602以及ram603通過第二通信總線604彼此相連。在有ram603的情況下,rom602為可選模塊。ram603存儲(chǔ)可執(zhí)行指令,或在運(yùn)行時(shí)向rom602中寫入可執(zhí)行指令,可執(zhí)行指令使第二處理器執(zhí)行上述通信方法對(duì)應(yīng)的操作。輸入/輸出(i/o)接口605也連接至第二通信總線604。通信組件612可以集成設(shè)置,也可以設(shè)置為具有多個(gè)子模塊(例如多個(gè)ib網(wǎng)卡),并在通信總線鏈接上。
以下部件連接至i/o接口605:包括鍵盤、鼠標(biāo)等的輸入部分606;包括諸如陰極射線管(crt)、液晶顯示器(lcd)等以及揚(yáng)聲器等的輸出部分607;包括硬盤等的存儲(chǔ)部分608;以及包括諸如lan卡、調(diào)制解調(diào)器等的網(wǎng)絡(luò)接口卡的通信接口609。驅(qū)動(dòng)器610也根據(jù)需要連接至i/o接口605。可拆卸介質(zhì)611,諸如磁盤、光盤、磁光盤、半導(dǎo)體存儲(chǔ)器等等,根據(jù)需要安裝在驅(qū)動(dòng)器610上,以便于從其上讀出的計(jì)算機(jī)程序根據(jù)需要被安裝入存儲(chǔ)部分608。
需要說明的,如圖7所示的架構(gòu)僅為一種可選實(shí)現(xiàn)方式,在具體實(shí)踐過程中,可根據(jù)實(shí)際需要對(duì)上述圖7的部件數(shù)量和類型進(jìn)行選擇、刪減、增加或替換;在不同功能部件設(shè)置上,也可采用分離設(shè)置或集成設(shè)置等實(shí)現(xiàn)方式,例如gpu和cpu可分離設(shè)置或者可將gpu集成在cpu上,通信元件可分離設(shè)置,也可集成設(shè)置在cpu或gpu上,等等。這些可替換的實(shí)施方式均落入本發(fā)明的保護(hù)范圍。
特別地,根據(jù)本發(fā)明實(shí)施例,上文參考流程圖描述的過程可以被實(shí)現(xiàn)為計(jì)算機(jī)軟件程序。例如,本發(fā)明實(shí)施例包括一種計(jì)算機(jī)程序產(chǎn)品,其包括有形地包含在機(jī)器可讀介質(zhì)上的計(jì)算機(jī)程序,計(jì)算機(jī)程序包含用于執(zhí)行流程圖所示的方法的程序代碼,程序代碼可包括對(duì)應(yīng)執(zhí)行本發(fā)明實(shí)施例提供的方法步驟對(duì)應(yīng)的指令,例如,通過待訓(xùn)練的第一神經(jīng)網(wǎng)絡(luò)對(duì)問答訓(xùn)練集中的每個(gè)答案進(jìn)行處理,得到與所述每個(gè)答案對(duì)應(yīng)的第一中間語義向量;通過待訓(xùn)練的第二神經(jīng)網(wǎng)絡(luò)對(duì)所述問答訓(xùn)練集中的每個(gè)問題進(jìn)行處理,得到與所述每個(gè)問題對(duì)應(yīng)的第二中間語義向量;根據(jù)所述每個(gè)答案的第一中間語義向量與所述每個(gè)答案對(duì)應(yīng)的問題的第二中間語義向量確定所述第一中間語義向量與所述第二中間語義向量之間的差異;根據(jù)所述差異調(diào)整所述第一神經(jīng)網(wǎng)絡(luò)和所述第二神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)參數(shù),從而訓(xùn)練得到所述神經(jīng)網(wǎng)絡(luò)。在這樣的實(shí)施例中,該計(jì)算機(jī)程序可以通過通信元件從網(wǎng)絡(luò)上被下載和安裝,和/或從可拆卸介質(zhì)611被安裝。在該計(jì)算機(jī)程序被第二處理器執(zhí)行時(shí),執(zhí)行本發(fā)明實(shí)施例的方法中限定的上述功能。
可能以許多方式來實(shí)現(xiàn)本發(fā)明的方法和裝置、設(shè)備。例如,可通過軟件、硬件、固件或者軟件、硬件、固件的任何組合來實(shí)現(xiàn)本發(fā)明實(shí)施例的方法和裝置、設(shè)備。用于方法的步驟的上述順序僅是為了進(jìn)行說明,本發(fā)明實(shí)施例的方法的步驟不限于以上具體描述的順序,除非以其它方式特別說明。此外,在一些實(shí)施例中,還可將本發(fā)明實(shí)施為記錄在記錄介質(zhì)中的程序,這些程序包括用于實(shí)現(xiàn)根據(jù)本發(fā)明實(shí)施例的方法的機(jī)器可讀指令。因而,本發(fā)明還覆蓋存儲(chǔ)用于執(zhí)行根據(jù)本發(fā)明實(shí)施例的方法的程序的記錄介質(zhì)。
本發(fā)明實(shí)施例的描述是為了示例和描述起見而給出的,而并不是無遺漏的或者將本發(fā)明限于所公開的形式,很多修改和變化對(duì)于本領(lǐng)域的普通技術(shù)人員而言是顯然的。選擇和描述實(shí)施例是為了更好說明本發(fā)明的原理和實(shí)際應(yīng)用,并且使本領(lǐng)域的普通技術(shù)人員能夠理解本發(fā)明從而設(shè)計(jì)適于特定用途的帶有各種修改的各種實(shí)施例。