一種基于雙向遞歸神經(jīng)網(wǎng)絡(luò)的分詞方法
【專利摘要】本發(fā)明涉及自然語言處理領(lǐng)域,特別涉及一種基于雙向遞歸神經(jīng)網(wǎng)絡(luò)的分詞方法,本發(fā)明通過現(xiàn)有的詞典和人工校正的半自動方法來標(biāo)注訓(xùn)練樣本,在進行分詞時應(yīng)用了雙向遞歸神經(jīng)網(wǎng)絡(luò)的技術(shù)對每一個字的類型概率進行預(yù)測,在分類概率的基礎(chǔ)上結(jié)合前后文找出總體上概率最優(yōu)的分類序列,將分類序列中相鄰的屬于詞的前、中、后部分的字作為一個整體切分出來;克服了單向遞歸神經(jīng)網(wǎng)絡(luò)預(yù)測過程中信息不對稱的問題,使得待識別的自然語言序列的分類判斷結(jié)果即依賴了前文信息又依賴了后文信息;使得分詞判斷的準(zhǔn)確率更高,對新詞的識別效果顯著,為信息分析提供一種有效的分詞途徑。
【專利說明】
一種基于雙向遞歸神經(jīng)網(wǎng)絡(luò)的分詞方法
技術(shù)領(lǐng)域
[0001] 本發(fā)明自然語言處理領(lǐng)域,特別涉及一種基于雙向遞歸神經(jīng)網(wǎng)絡(luò)的分詞方法。
【背景技術(shù)】
[0002] 隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,產(chǎn)生了海量的數(shù)據(jù)信息,人們對于信息分析和信息處理 的需求越來越多,在這些海量的及時準(zhǔn)確的分析出人們關(guān)心的數(shù)據(jù),就是大數(shù)據(jù)分析的價 值所在。面對巨大的數(shù)據(jù)在進行相應(yīng)的數(shù)據(jù)分析,首先需要進行分詞處理,即將連貫的文字 分解為一個個特定語言含義的單元組成的序列,這樣的處理在中文、韓文或者日文的信息 處理中表現(xiàn)的最為突出,因為中文等語言在進行表達時句子中的文字不像英文等語言的單 詞與單詞之間具有空格隔開,而是連貫書寫的。在進行中文信息分析時分詞處理是首要的 步驟。
[0003] 目前隨著信息的發(fā)展,人們對于信息分析的準(zhǔn)確性和及時性要求越來越高,對于 分詞的需求也在進一步提高,傳統(tǒng)的分詞處理大致分為以下幾種技術(shù):第一、基于語義理解 的分詞方法,基于語義的理解方法類似人對語義的理解過程需要進行詞性標(biāo)注等系列復(fù)雜 的操作,由于語言的復(fù)雜性,該方法的操作性差,難以大規(guī)模應(yīng)用。第二、基于詞典匹配,基 于詞典匹配的大致原理是通過一個維度足夠大的詞典將現(xiàn)有的詞匯收入其中,在進行分詞 時通過將待分詞文本與詞典詞匯進行匹配,在詞典中收錄的詞匯分成一個詞語單元,將其 他的文字分為單個的字,基于詞典匹配的缺點在于缺乏靈活性,無法發(fā)現(xiàn)新詞;第三、基于 統(tǒng)計的分詞方法,基于統(tǒng)計的分詞方法的大致原理為:通過計算相鄰字共同出現(xiàn)概率,如果 相鄰字的共同出現(xiàn)概率高于設(shè)置的閾值就可以認為是一個固定搭配的詞語,而將其作為一 個分詞單元。目前基于統(tǒng)計的分詞方法所得到的分詞結(jié)果較優(yōu),應(yīng)用也最廣泛,但是單純的 基于統(tǒng)計的分詞方法,計算量大且使用的上下文信息有限,具有一定的局限性,難以進一步 提高分詞質(zhì)量,且分詞的效率也較低。
[0004] 目前現(xiàn)有的分詞工具所普遍存在的問題在于:對于新詞的發(fā)現(xiàn)識別效果較差,分 詞結(jié)果難以實現(xiàn)全局優(yōu)化。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明的目的在于克服現(xiàn)有技術(shù)中所存在的上述不足,提供一種基于雙向遞歸神 經(jīng)網(wǎng)絡(luò)的分詞方法,通過雙向遞歸神經(jīng)網(wǎng)絡(luò)充分聯(lián)系上下文信息,結(jié)合詞典匹配和統(tǒng)計分 詞的優(yōu)勢,對于新詞的發(fā)現(xiàn)和切分具有突出的效果。
[0006] 為了實現(xiàn)上述發(fā)明目的,本發(fā)明提供了以下技術(shù)方案:
[0007] -種基于雙向遞歸神經(jīng)網(wǎng)絡(luò)的分詞方法,包含以下實現(xiàn)步驟:
[0008] (1)選取文本進行標(biāo)注,通過現(xiàn)有的詞典來標(biāo)注文本中的詞,按照詞的結(jié)構(gòu)將詞中 文字分段標(biāo)注為開始部分、中間部分和結(jié)尾部分,詞典中未收錄的字標(biāo)注為單獨部分
[0009] (2)將訓(xùn)練樣本對應(yīng)的文本序列,先正向再反向輸入所述雙向遞歸神經(jīng)網(wǎng)絡(luò)中,來 訓(xùn)練所述雙向遞歸神經(jīng)網(wǎng)絡(luò);
[0010] (3)將待分詞文本輸入訓(xùn)練好的所述雙向遞歸神經(jīng)網(wǎng)絡(luò)中,由所述雙向遞歸神經(jīng) 網(wǎng)絡(luò)預(yù)測出每個字的分類概率;
[0011] (4)通過解碼算法計算出概率最優(yōu)化的分類序列,按照該最優(yōu)化的分類概率序列, 將相鄰的屬于詞的開始、中間、結(jié)束部分或者開始、結(jié)束部分對應(yīng)的字作為詞語整體切分出 來。
[0012] 具體的,所述步驟(2)中,在進行雙向遞歸神經(jīng)網(wǎng)絡(luò)訓(xùn)練時,輸入神經(jīng)網(wǎng)絡(luò)前,將訓(xùn) 練文本以標(biāo)點符號為基準(zhǔn)分解成片段,以每個片段的開始和結(jié)束為所述雙向遞歸神經(jīng)網(wǎng)絡(luò) 的遞歸開始和結(jié)束,將序列片段先正向再反向輸入到雙向遞歸神經(jīng)網(wǎng)絡(luò)中,所述雙向遞歸 神經(jīng)網(wǎng)絡(luò)每個時刻的輸入信息除了包括本時刻的輸入信號以外還包括上一時刻遞歸神經(jīng) 網(wǎng)絡(luò)的輸出信號;
[0013 ]所述雙向遞歸神經(jīng)網(wǎng)絡(luò)在預(yù)測出對應(yīng)時刻字的分類概率時,g無依賴了該時刻遞歸 神經(jīng)網(wǎng)絡(luò)的正向輸出也依賴該時刻雙向遞歸神經(jīng)網(wǎng)絡(luò)的反向輸出,這樣在結(jié)合前后文的情 況下,分類預(yù)測的結(jié)果更加準(zhǔn)確。
[0014]具體的,本發(fā)明所述雙向遞歸神經(jīng)網(wǎng)絡(luò)采用如下的向前算法計算公式:
[0021] I為向量化的字的維度,H為隱含層的神經(jīng)元個數(shù),K是輸出層神經(jīng)元的個數(shù),其中 X!為t時刻向量化的字在第i維度的取值,為正向輸入(文字序列從頭至尾正向輸入所述 , n 神經(jīng)網(wǎng)絡(luò))時t時刻所述雙向遞歸神經(jīng)網(wǎng)絡(luò)的隱含層神經(jīng)元的輸入,^4為反向輸入(文字序 列從尾至頭反向輸入所述神經(jīng)網(wǎng)絡(luò))時t時刻所述雙向遞歸神經(jīng)網(wǎng)絡(luò)隱含層神經(jīng)元的輸入, 4為正向輸入時t時刻隱含層神經(jīng)元的輸出,%,為反向輸入時t時刻隱含層神經(jīng)元的輸出, h U 0〇為隱含層神經(jīng)元輸入到輸出的函數(shù),為(先正向再反向輸入)t時刻輸出層神經(jīng)元的輸 入,g為t時刻輸出層神經(jīng)元的輸出,為一個概率值,表示第k個神經(jīng)元的輸出值相對于 K個神經(jīng)元輸出值總和的比值。
[0022] 具體的,$和$+1是各個維度值均為0的向量,T為輸入序列的長度。
[0023] 進一步的,本發(fā)明將通過字典映射表,將待處理序列中的字轉(zhuǎn)換成對應(yīng)的向量數(shù) 據(jù)后輸出所述雙向遞歸神經(jīng)網(wǎng)絡(luò)中。
[0024] 進一步的,所述步驟(4)中,所述解碼算法包含以下規(guī)則條件:a、片段開始的字的 分類結(jié)果為詞的開始部分或者單獨部分;b、片段結(jié)尾的字的分類結(jié)果為詞的結(jié)束部分或者 單獨部分;c、在前一個字分類結(jié)果確定為詞的開頭部分時,當(dāng)前字的分類為中間或者結(jié)束 部分,d、在前一個字分類結(jié)果確定為詞的中間部分時,當(dāng)前字的分類為中間或者結(jié)束部分, e、在前一個字分類結(jié)果確定為詞的結(jié)束部分時,當(dāng)前字的分類為單獨或者開始部分;上述 規(guī)則按順序適用。
[0025] 進一步的,所述步驟(4)中的解碼中,借用HMM(隱式馬爾科夫模型)的Viterbi算法 來實現(xiàn)解碼。
[0026] 與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果:本發(fā)明提供一種基于雙向遞歸神經(jīng)網(wǎng)絡(luò)的 分詞方法,使用現(xiàn)有的詞典和人工校正的半自動化方式來標(biāo)注訓(xùn)練樣本,根據(jù)具體情況將 詞中每個字依次標(biāo)注為:開始部分、中間部分或者結(jié)束部分,將訓(xùn)練樣本先正向再反向輸入 神經(jīng)網(wǎng)絡(luò)中,來訓(xùn)練所述雙向遞歸神經(jīng)網(wǎng)絡(luò),所述雙向遞歸神經(jīng)網(wǎng)絡(luò)在預(yù)測每個字的分類 類型時既結(jié)合了前文信息也結(jié)合了后文信息,這樣預(yù)測出的字的分類概率更加合理;不僅 如此本發(fā)明在所述雙向遞歸神經(jīng)網(wǎng)絡(luò)預(yù)測出每個字的分類概率的基礎(chǔ)上使用解碼算法,計 算出最優(yōu)化的分類序列,并在該分類序列的基礎(chǔ)上,將其中的相鄰的屬于詞的開始、中間和 結(jié)束的部分或者詞的開始和結(jié)束部分對應(yīng)的字作為一個整體切分出來,進而實現(xiàn)文本的分 詞過程。本發(fā)明方法結(jié)合了詞典匹配和統(tǒng)計方法分詞的優(yōu)勢,對于新詞的發(fā)現(xiàn)和切分也具 有突出的效果。
【附圖說明】:
[0027] 圖1為本基于雙向遞歸神經(jīng)網(wǎng)絡(luò)的分詞方法的實現(xiàn)過程示意圖。
[0028] 圖2為本基于雙向遞歸神經(jīng)網(wǎng)絡(luò)的分詞方法的實現(xiàn)步驟示意圖。
[0029] 圖3為本實施例1的信號流程示意圖。
[0030] 圖4為本實施例1的解碼路徑示意圖。
[0031] 圖5為實施例1的解碼過程示意圖。
【具體實施方式】
[0032] 下面結(jié)合試驗例及【具體實施方式】對本發(fā)明作進一步的詳細描述。但不應(yīng)將此理解 為本發(fā)明上述主題的范圍僅限于以下的實施例,凡基于本
【發(fā)明內(nèi)容】
所實現(xiàn)的技術(shù)均屬于本 發(fā)明的范圍。
[0033] 本發(fā)明提供一種基于雙向遞歸神經(jīng)網(wǎng)絡(luò)的分詞方法,如圖1所示,將待分詞文本輸 入到訓(xùn)練好的雙向遞歸神經(jīng)網(wǎng)絡(luò)中,通過雙向遞歸神經(jīng)網(wǎng)絡(luò)充分聯(lián)系上下文信息來預(yù)測每 個字的分類概率,在分類概率的基礎(chǔ)上結(jié)合解碼算法計算出最優(yōu)化的分類序列,并根據(jù)分 類序列將相鄰的屬于詞的開始、中間和結(jié)束的部分或者詞的開始和結(jié)束部分對應(yīng)的字作為 一個整體切分出來,進而實現(xiàn)文本的分詞過程。本發(fā)明方法結(jié)合了詞典匹配和統(tǒng)計方法分 詞的優(yōu)勢,對于新詞的發(fā)現(xiàn)和切分也具有突出的效果。
[0034]本發(fā)明方法包含如圖2所示的實現(xiàn)步驟:
[0035] (1)選取一定數(shù)量(比如說4000件文檔)的文本進行標(biāo)注,通過現(xiàn)有的詞典來標(biāo)注 文本中的詞,按照詞的結(jié)構(gòu)將詞中文字分段標(biāo)注為開始部分、中間部分和結(jié)尾部分,對于單 個的字使用半人工的方法進行校正標(biāo)注;將文本中的標(biāo)點符號標(biāo)注為隔斷符號,從而將文 本分解成以標(biāo)點符號為起始和結(jié)束的片段。通過現(xiàn)有詞典實現(xiàn)的標(biāo)注充分使用了已有的詞 典資源,為遞歸神經(jīng)網(wǎng)絡(luò)的預(yù)測結(jié)果提供了充足的訓(xùn)練語料,且可以實現(xiàn)標(biāo)注的自動化,節(jié) 省人力成本。目前可利用的開放的現(xiàn)有詞典資源豐富比如說:"北大語義詞典","聯(lián)網(wǎng)詞庫 (SogouW)" 等等。
[0036]特別的,將待標(biāo)注文本中的詞語分段標(biāo)注為開始部分(用B表示)、中間部分(用M表 示)和結(jié)束部分用(E)來表示,將單獨的字標(biāo)注為S,將標(biāo)點符號標(biāo)注為N,比如說將"我們是 中國人,我們愛中國。"在現(xiàn)有詞典中具有"我們""中國人"和"中國"則將上述句子標(biāo)注為"B ESBMENBESBE N",使用數(shù)字或者字母來進行標(biāo)注簡單易行,簡化相關(guān)計算過程。
[0037] (2)將標(biāo)注后的文本作為訓(xùn)練樣本來訓(xùn)練雙向遞歸神經(jīng)網(wǎng)絡(luò);輸入神經(jīng)網(wǎng)絡(luò)前,將 訓(xùn)練文本以標(biāo)點符號為基準(zhǔn)分解成片段,以每個片段的開始和結(jié)束為所述雙向遞歸神經(jīng)網(wǎng) 絡(luò)的遞歸開始和結(jié)束。
[0038] 漢語中以句子、段落、章節(jié)為遞進單位來組織文章;句子作為文本的基礎(chǔ)構(gòu)成單元 在分詞之中具有特別的地位,而句子中又以標(biāo)點符號為停頓將句子中邏輯分隔開來,屬于 同一個詞的組成部分不可能分居于標(biāo)點符號的兩側(cè),這是漢語或者其他語言共同的構(gòu)詞特 點,這樣在進行分詞時,只需要考慮相鄰的標(biāo)點符號以內(nèi)的內(nèi)容。
[0039]特別的,為了區(qū)分片段的起始和結(jié)束(以便區(qū)分遞歸的起始和結(jié)束)可以在文本的 開頭添加標(biāo)記符(比如為<F>,在遞歸神經(jīng)網(wǎng)絡(luò)的識別和解碼過程中具有與標(biāo)點符號相同 的功能)。
[0040] (3)將待分詞文本輸入訓(xùn)練好的所述雙向遞歸神經(jīng)網(wǎng)絡(luò)中,由所述雙向遞歸神經(jīng) 網(wǎng)絡(luò)預(yù)測出每個字的分類概率;
[0041] (4)根據(jù)所述雙向遞歸神經(jīng)網(wǎng)絡(luò)預(yù)測出的每個字的分類概率,結(jié)合條件規(guī)則(比如 包含以下規(guī)則a、片段開始的字的分類結(jié)果只能為詞的開始部分或者單獨部分;b、片段結(jié)尾 的字的分類結(jié)果只能為詞的結(jié)束部分或者單獨部分;c、在前一個字分類結(jié)果確定為詞的開 頭部分時,當(dāng)前字的分類為中間或者結(jié)束部分,d、在前一個字分類結(jié)果確定為詞的中間部 分時,當(dāng)前字的分類為中間或者結(jié)束部分,e、在前一個字分類結(jié)果確定為詞的結(jié)束部分時, 當(dāng)前字的分類為單獨或者開始部分,上述規(guī)則按順序適用。);經(jīng)過上述規(guī)則規(guī)范后得到了 每個以標(biāo)點為起始和結(jié)束的片段的最優(yōu)化分類序列。上述最優(yōu)化序列的計算過程就是解碼 過程。
[0042] 通過解碼算法計算出概率最優(yōu)化的分類序列,按照該最優(yōu)化的分類概率序列,將 相鄰的屬于詞的開始部分、K個中間部分(其中K為多0的正整數(shù))、結(jié)束部分對應(yīng)的字作為詞 語整體切分出來。進一步的,通過本發(fā)明分詞結(jié)果將切分出來的詞語與現(xiàn)有詞典進行對比, 將現(xiàn)有詞典中未收錄的詞語作為新詞添加到詞典中。為了進一步的提高新詞判斷的準(zhǔn)確 性,可以通過統(tǒng)計該詞在文章的重復(fù)出現(xiàn)次數(shù)來輔助進行新詞判斷(比如通過TF-IDF的方 法),輔助判斷的方法在本發(fā)明切分判斷的基礎(chǔ)上進行,新詞的判斷準(zhǔn)確率更高。
[0043] 具體的,所述步驟(2)中,在進行雙向遞歸神經(jīng)網(wǎng)絡(luò)訓(xùn)練時,先將文本分解成單個 字和標(biāo)點組成的序列,以標(biāo)點符號為基準(zhǔn)將文本分解成序列片段,以相鄰兩個標(biāo)點符號為 雙向遞歸的開始和結(jié)束,將序列片段中的內(nèi)容先正向再反向依次輸入到雙向遞歸神經(jīng)網(wǎng)絡(luò) 中,所述雙向遞歸神經(jīng)網(wǎng)絡(luò)每個時刻的輸入信息除了包括本時刻的輸入信號以外還包括上 一時刻遞歸神經(jīng)網(wǎng)絡(luò)的輸出信號;所述雙向遞歸神經(jīng)網(wǎng)絡(luò)在預(yù)測出對應(yīng)時刻字的分類概率 時,既依賴了該時刻遞歸神經(jīng)網(wǎng)絡(luò)的正向輸出也依賴該時刻雙向遞歸神經(jīng)網(wǎng)絡(luò)的反向輸 出,這樣在結(jié)合片段前后文的情況下,分類預(yù)測的結(jié)果更加準(zhǔn)確。
[0044] 具體的,本發(fā)明所述雙向遞歸神經(jīng)網(wǎng)絡(luò)采用如下的向前算法計算公式:
[0051] I為序列中的字向量化后的維度,H為隱含層的神經(jīng)元個數(shù),K是輸出層神經(jīng)元的個 數(shù),其中^為t時刻向量化的字在第i維度的取值,< 為正向輸入(文字序列正向輸入神經(jīng)網(wǎng) 絡(luò))時,t時刻所述雙向遞歸神經(jīng)網(wǎng)絡(luò)的隱含層神經(jīng)元的輸入(本發(fā)明方法中所述雙向遞歸 神經(jīng)網(wǎng)絡(luò)的時刻序號與輸入文字序列的位置序號相對應(yīng),比如所文字序列中處于第2位置 的字,對應(yīng)輸入第2時刻的雙向遞歸神經(jīng)網(wǎng)絡(luò)中),%為反向輸入(文字序列反向輸入神經(jīng)網(wǎng) 絡(luò))時,t時刻所述雙向遞歸神經(jīng)網(wǎng)絡(luò)的輸出層神經(jīng)元的輸入,%為正向輸入時t時刻隱含層 神經(jīng)元的輸出,$為反向輸入時t時刻隱含層神經(jīng)元的輸出,0()為隱含層神經(jīng)元輸入到輸 出的函數(shù),4為t時刻輸出層神經(jīng)元的輸入,可以看出 < 結(jié)合了 t時刻正向輸入時隱含層神 經(jīng)元的輸出信號和反向輸入時的隱含層神經(jīng)元的輸出信號),#的計算結(jié)果一直向前傳播 直到所述雙向遞歸神經(jīng)網(wǎng)絡(luò)輸出該時刻的分類結(jié)果;這樣在計算當(dāng)前時刻對應(yīng)字的分類結(jié) 果時既結(jié)合了歷史序列信息又結(jié)合了未來序列信息,依賴了以標(biāo)點符號為開始和結(jié)束的上 下文信息而非局部信息,從而使得預(yù)測結(jié)果達到了全局最優(yōu)。^為t時刻輸出層神經(jīng)元的輸 出,為一個概率值,表示第k個神經(jīng)元的輸出值相對于K個神經(jīng)元輸出值總和的比值(即為 k個神經(jīng)元對應(yīng)類型的分類概率),^丨為正向輸入時的權(quán)重系數(shù),為反向輸入時 的權(quán)重系數(shù),為正向輸入時/的權(quán)重系數(shù),p為反向輸入時的權(quán)重系數(shù),為 $的權(quán)重系數(shù),%,為%的權(quán)重系數(shù)。
[0052]具體的,%和是各個維度值均為0的向量,T為輸入片段內(nèi)的總字?jǐn)?shù)。
[0053]進一步的,本發(fā)明采用上述向前算法在所述雙向遞歸神經(jīng)網(wǎng)絡(luò)中來逐層傳輸運算 數(shù)據(jù),在輸出層獲取到識別(預(yù)測)數(shù)據(jù),當(dāng)預(yù)測結(jié)果與訓(xùn)練樣本的標(biāo)注結(jié)果具有偏差時,通 過神經(jīng)網(wǎng)絡(luò)中經(jīng)典的誤差反向傳播算法來調(diào)整神經(jīng)網(wǎng)絡(luò)中的各個權(quán)重,誤差反向傳播方法 將誤差逐級反向傳播分?jǐn)偟礁鲗拥乃猩窠?jīng)元,獲得各層神經(jīng)元的誤差信號,進而修正各 神經(jīng)元的權(quán)重。通過向前算法逐層傳輸運算數(shù)據(jù),并通過向后算法來逐漸修改各神經(jīng)元的 權(quán)重的過程就是神經(jīng)網(wǎng)絡(luò)的訓(xùn)練過程;重復(fù)上述過程,直到預(yù)測結(jié)果的正確率達到設(shè)定的 閾值,停止訓(xùn)練,此時可認為所述雙向遞歸神經(jīng)網(wǎng)絡(luò)模型已經(jīng)訓(xùn)練完成。
[0054]進一步的,本發(fā)明將通過字典映射表將待處理序列中的字轉(zhuǎn)換成對應(yīng)的向量數(shù)據(jù) 后輸出所述雙向遞歸神經(jīng)網(wǎng)絡(luò)中。所述字典映射表為一個二維的矩陣,其中每一個行向量 對應(yīng)一個字,這種行向量與字的對應(yīng)關(guān)系是構(gòu)造字典映射表時設(shè)定的。通過字典映射表將 文字轉(zhuǎn)化成向量數(shù)據(jù),打破了神經(jīng)網(wǎng)絡(luò)與自然語言的壁皇,為神經(jīng)網(wǎng)絡(luò)的使用提供了條件。
[0055] 特別的,為了提高字典映射表的效率,減少生成向量的維度,所述字典映射表可以 通過機器學(xué)習(xí)的方式來自動構(gòu)造,將每個字映射為一個二維的向量,所述二維向量中的每 個維度的值是可以連續(xù)變化的,比如說將"字"映射為"〇 . 2 0.3"而將"典"映射為"0.2 0.35",這樣的向量化方式降低了輸入神經(jīng)網(wǎng)絡(luò)的向量的維度,進而降低神經(jīng)網(wǎng)絡(luò)的規(guī)模和 復(fù)雜度,簡化運算過程,提高所述雙向遞歸神經(jīng)網(wǎng)絡(luò)的訓(xùn)練和預(yù)測效率。
[0056] 進一步的,所述步驟(4)中的解碼中,借用HMM(隱式馬爾科夫模型)的Viterbi算法 來實現(xiàn)解碼。解碼算法具體的,在一個由標(biāo)點符號分隔的序列片段中,第一個字的分類概率 只能是開始部分或者單獨部分,而為中間部分或者結(jié)尾部分的概率為〇;最后一個字的分類 概率只能是結(jié)束部分,或者單獨部分,而為開始部分或者中間部分的概率為〇。
[0057]在上述解碼過程可以實現(xiàn)新詞的切分,比如說:在網(wǎng)絡(luò)上獲取一下文本"他曾經(jīng)被 罵丑小鴨,如今屌絲變成男神成為女神收割機。",經(jīng)過雙向遞歸神經(jīng)網(wǎng)絡(luò)的預(yù)測,假如"屌 絲"一詞還未被詞典收錄,經(jīng)過傳統(tǒng)的分詞方法將得到"他/曾經(jīng)/被/罵/丑小鴨/,/如今/ 屌/絲/變成/男神/成為/女神/收割機/。/"沒有新詞識別的功能;而通過本雙向遞歸神經(jīng)網(wǎng) 絡(luò)結(jié)合上下文的信息,后輸出的分類概率比如為:"如(開始部分的概率為0.8,中間部分的 概率為〇 . 1,單獨部分的概率為〇 . 1,其他分類概率為〇),"今"(開始部分的概率為〇 . 2,中間 部分的概率為0.3,結(jié)束部分的概率為0.5,其他分類概率為0,); "屑"(開始部分的概率為 〇. 3,中間部分概率為0.3,結(jié)束部分概率為0.2,單獨部分的概率為0.2,其他分類概率為0), "絲"(開始部分的概率為〇. 3,中間部分概率為0.1,結(jié)束部分概率為0.3,單獨部分的概率為 〇. 3,其他分類概率為0); "變"(開始部分的概率為0.7,中間部分概率為0.1,結(jié)束部分概率 為0.1,單獨部分的概率為0.1,其他分類概率為0) "成"(開始部分的概率為0.1,中間部分概 率為0.1,結(jié)束部分概率為0.5,單獨部分的概率為0.3,其他分類概率為0)……,經(jīng)過本發(fā)明 方法的解碼算法可以得出最優(yōu)化的分類序列為:"如"為開始部分,"今"為結(jié)束部分,"屌"為 開始部分,"絲"為結(jié)束部分,"變"為開始部分,"成"為結(jié)束部分……,經(jīng)過本發(fā)明方法的最 終分詞結(jié)果為"他/曾經(jīng)/被/罵/丑小鴨/,/如今/屌絲/變成/男神/成為/女神/收割機/。/", 這樣達到了新詞"屌絲"的切分功能。
[0058]本發(fā)明方法實現(xiàn)的分詞功能對于專業(yè)領(lǐng)域的新詞切分同樣有效。
[0059] 實施例1
[0060]在網(wǎng)絡(luò)中獲取到以下文本:"美聯(lián)儲主席耶倫3月29日在紐約經(jīng)濟倶樂部發(fā)表講話 指出,美聯(lián)儲調(diào)整政策采取謹(jǐn)慎的態(tài)度是恰當(dāng)?shù)?,?yīng)當(dāng)?shù)鹊浇?jīng)濟繁榮時再逐漸告別零利率 區(qū)間。"先將該段文字分解為"美/聯(lián)/儲/主/席/耶/倫/3/月/29/日/在/紐/約/經(jīng)/濟/倶/ 樂/部/發(fā)/表/講/話/指/出/,/美/聯(lián)/儲/調(diào)/整/政/策/采/取/謹(jǐn)/慎/的/態(tài)/度/是/恰/當(dāng)/ 的/,/應(yīng)/當(dāng)/等/到/經(jīng)/濟/繁/榮/時/再/逐/漸/告/別/零/利/率/區(qū)/間/。"以標(biāo)點符號為 基準(zhǔn)將文本分解成"美/聯(lián)/儲/主/席/耶/倫/3/月/29/日/在/紐/約/經(jīng)/濟/倶/樂/部/發(fā)/ 表/講/話/指/出/," ; 7美/聯(lián)/儲/調(diào)/整/政/策/采/取/謹(jǐn)/慎/的/態(tài)/度/是/恰/當(dāng)/的/,", 7應(yīng)/當(dāng)/等/到/經(jīng)/濟/繁/榮/時/再/逐/漸/告/別/零/利/率/區(qū)/間/。"的片段。將上述每 個片段作為一個雙向遞歸區(qū)間輸入到雙向遞歸神經(jīng)網(wǎng)絡(luò)中,以第一片段為例來說明本發(fā)明 分詞的過程,信號流程如圖3所示(其中vec-a、vec-b、vec-c、vec-d、vec_e、vec-f、vec-g、 vec_h、vec_i、vec_j、vec_k、vec_l、vec_m......vec_z等代表詞典映射表中二維矩陣的行向 量):"美/聯(lián)/儲/主/席/耶/倫/3/月/29/日/在/紐/約/經(jīng)/濟/倶/樂/部/發(fā)/表/講/話/指/ 出/,"序列中的字經(jīng)過字典映射表轉(zhuǎn)化成對應(yīng)的向量數(shù)據(jù)后依次先正向再反向輸入對應(yīng)時 刻的雙向遞歸神經(jīng)網(wǎng)絡(luò)中,經(jīng)過所述雙向遞歸神經(jīng)網(wǎng)絡(luò)的預(yù)測輸出序列每個字的分類概 率,解碼過程在輸出分類概率的基礎(chǔ)上使用Viterbi算法計算出最優(yōu)化的概率路徑對應(yīng)分 類序列,如圖4、圖5所示,假設(shè)分類概率依次為美(B = 0.3,M = 0.4,E = 0.1,S = 0.2,N = 0), 聯(lián)(8 = 0.2,]? = 0.4,£ = 0.1,5 = 0.3小=0),儲(8 = 0.3,]\1 = 0.1,£ = 0.4,5 = 0.2小=0),主 (B = 0.4,M=0.1,E = 0.3,S = 0.2,N=0),$(B = 0.4,M=0.2,E = 0.1,S = 0.3,N=0)……最 終形成"BMEBEBEBEBESBEBEBMEBEBEBEN"的最優(yōu)化分類序列,將相鄰的BME對應(yīng)的字作為一 個整體切分出來,形成了"美聯(lián)儲/主席/耶倫/3月/29日/在/紐約/經(jīng)濟/倶樂部/發(fā)表/講 話/指出/,"的分詞結(jié)果。
【主權(quán)項】
1. 一種基于雙向遞歸神經(jīng)網(wǎng)絡(luò)的分詞方法,其特征在于,使用雙向遞歸神經(jīng)網(wǎng)絡(luò)來預(yù) 測待分詞文本中各個字的分類概率;在此基礎(chǔ)上結(jié)合解碼算法找出最優(yōu)化的分類概率序 列;將序列中相鄰的屬于詞的開始部分、K個中間部分和結(jié)束部分對應(yīng)的字作為一個詞切分 出來,其中K為彡O的正整數(shù)。2. 如權(quán)利要求1所述的方法,其特征在于,包含以下實現(xiàn)步驟: (1) 通過現(xiàn)有的詞典來標(biāo)注訓(xùn)練文本中的詞,按照詞的結(jié)構(gòu)將詞中文字分別標(biāo)注為開 始部分、中間部分和結(jié)尾部分,詞典中未收錄的字標(biāo)注為單獨部分; (2) 將訓(xùn)練樣本對應(yīng)的文本序列,先正向再反向輸入所述雙向遞歸神經(jīng)網(wǎng)絡(luò)中,來訓(xùn)練 所述雙向遞歸神經(jīng)網(wǎng)絡(luò); (3) 將待分詞文本輸入訓(xùn)練好的所述雙向遞歸神經(jīng)網(wǎng)絡(luò)中,由所述雙向遞歸神經(jīng)網(wǎng)絡(luò) 預(yù)測出每個字的分類概率; (4) 通過解碼算法計算出概率最優(yōu)化的分類序列,將分類序列中相鄰的屬于詞的開始 部分、K個中間部分、結(jié)束部分對應(yīng)的字作為詞語整體切分出來。3. 如權(quán)利要求2所述的方法,其特征在于,所述雙向遞歸神經(jīng)網(wǎng)絡(luò)采用以下向前算法公 式:I為向量化的字的維度,H為隱含層的神經(jīng)元個數(shù),K是輸出層神經(jīng)元的個數(shù),其中.<為七 時刻向量化的字在第i維度的取值,為正向輸入時t時刻所述雙向遞歸神經(jīng)網(wǎng)絡(luò)的隱含層 h 神經(jīng)元的輸入,^4為反向輸入(時t時刻所述雙向遞歸神經(jīng)網(wǎng)絡(luò)隱含層神經(jīng)元的輸入為 h h 正向輸入時t時刻隱含層神經(jīng)元的輸出,為反向輸入時t時刻隱含層神經(jīng)元的輸出,θ()為 h' 隱含層神經(jīng)元輸入到輸出的非線性激勵函數(shù),4為t時刻輸出層神經(jīng)元的輸入,g為t時刻 輸出層神經(jīng)元的輸出,為一個概率值,表示第k個輸出層神經(jīng)元的對應(yīng)分類概率;1是各個維度值均為O的向量,T為輸入序列的長度。4. 如權(quán)利要求1至3所述的方法,其特征在于,通過字典映射表來實現(xiàn)輸入雙向遞歸神 經(jīng)網(wǎng)絡(luò)的文字的向量化。5. 如權(quán)利要求4所述的方法,其特征在于,所述步驟(1)中,進行標(biāo)注時,詞的開始部分 標(biāo)注為B,中間部分標(biāo)注為M,結(jié)束部分標(biāo)注E,單獨的字標(biāo)注S,標(biāo)點符號標(biāo)注為N。6. 如權(quán)利要求4所述的方法,其特征在于,輸入神經(jīng)網(wǎng)絡(luò)前,將待處理文本以標(biāo)點符號 為基準(zhǔn)分解成片段,以每個片段的開始和結(jié)束為所述雙向遞歸神經(jīng)網(wǎng)絡(luò)的遞歸開始和結(jié) 束,所述待處理文本包括訓(xùn)練樣本和待分詞文本。7. 如權(quán)利要求4所述的方法,其特征在于,所述步驟(4)中,所述解碼算法包含以下規(guī)則 條件:a、片段開始的字的分類結(jié)果為詞的開始部分或者單獨部分;b、片段結(jié)尾的字的分類 結(jié)果為詞的結(jié)束部分或者單獨部分;c、在前一個字分類結(jié)果確定為詞的開頭部分時,當(dāng)前 字的分類為中間或者結(jié)束部分,d、在前一個字分類結(jié)果確定為詞的中間部分時,當(dāng)前字的 分類為中間或者結(jié)束部分,e、在前一個字分類結(jié)果確定為詞的結(jié)束部分時,當(dāng)前字的分類 為單獨或者開始部分;上述規(guī)則按順序適用。8. 如權(quán)利要求6所述的方法,其特征在于,所述步驟(4)中,所述解碼算法為Viterbi算 法。
【文檔編號】G06F17/27GK105893354SQ201610286223
【公開日】2016年8月24日
【申請日】2016年5月3日
【發(fā)明人】劉世林, 何宏靖
【申請人】成都數(shù)聯(lián)銘品科技有限公司