一種基于循環(huán)神經(jīng)網(wǎng)絡(luò)的中文人名識別方法
【專利摘要】本發(fā)明提供了一種基于循環(huán)神經(jīng)網(wǎng)絡(luò)的中文人名識別方法,本發(fā)明包括:S1、語料預(yù)處理;S2、詞向量訓(xùn)練,利用word2vec工具進(jìn)行詞向量訓(xùn)練;S3、中文人名識別模型訓(xùn)練,利用S1處理后得到的數(shù)據(jù)以及S2訓(xùn)練得到的詞向量對神經(jīng)網(wǎng)絡(luò)模型進(jìn)行訓(xùn)練。S4、人名識別以及后處理,利用S3訓(xùn)練得到的模型在測試語料上進(jìn)行人名識別,并利用上下文規(guī)則,擴散算法對模型識別出來的人名進(jìn)行后處理,最后得到人名。利用本發(fā)明能有效的降低在中文人名識別時特征選取的復(fù)雜性,通過詞向量充分利用中文文本中蘊含的豐富的句法和語法信息,從而增加模型的泛化能力,并且同時識別了日本人名和外國音譯人名,擴大了中文人名識別的廣度。
【專利說明】
一種基于循環(huán)神經(jīng)網(wǎng)絡(luò)的中文人名識別方法
技術(shù)領(lǐng)域
[0001] 本發(fā)明涉及自然語言處理、深度學(xué)習(xí)以及命名實體識別等領(lǐng)域,尤其是一種適用 于中文文本中的中國人名、日本人民和外國音譯人名的識別方法。
【背景技術(shù)】
[0002] 隨著互聯(lián)網(wǎng)技術(shù)的快速發(fā)展,新信息急劇膨脹,從海量數(shù)據(jù)中提取出有用信息的 需求愈加迫切。如何從大規(guī)模的,非結(jié)構(gòu)化的語言文本中快速有效的獲得有用的信息和知 識已經(jīng)成為自然語言處理領(lǐng)域的研究熱點。而中文信息與英文等語言相比,漢語缺少分隔 標(biāo)記,為命名實體識別增加了難度。但是命名實體識別在信息抽取、機器翻譯和文本分類等 領(lǐng)域有重要影響。而命名實體識別任務(wù)中由于人名的隨意性使得人名識別是最為困難的任 務(wù),此外,中文人名在未登錄詞中占有較大的比重,因此,解決中文人名識別能夠有效的提 高未登錄詞的識別的效果,從而顯著地提高信息抽取、機器翻譯等系統(tǒng)的性能。
[0003] 目前,中文人名識別的方法中比較成熟的方法主要有兩種:基于統(tǒng)計的方法和基 于機器學(xué)習(xí)的方法。
[0004] 基于規(guī)則的方法需要對語料進(jìn)行分析,并根據(jù)人名的特點人工構(gòu)造規(guī)則,然后通 過定義好的規(guī)則對語料進(jìn)行匹配,匹配到的結(jié)果即被認(rèn)為是人名。此種方法無需標(biāo)注語料 且實現(xiàn)比較簡單,合理和全面的規(guī)則集可以在實驗中取得很好的識別效果,但我們不可能 窮舉出所有的規(guī)則,因此人工構(gòu)造的規(guī)則集一般僅適合當(dāng)前語料,移植性較差,缺乏泛化能 力。
[0005] 基于機器學(xué)習(xí)的方法主要將人名識別問題轉(zhuǎn)化為序列標(biāo)注問題或者分類問題,通 過對訓(xùn)練語料的學(xué)習(xí)構(gòu)建模型,然后使用訓(xùn)練好的模型對測試文件進(jìn)行人名識別,該方法 性能的好壞主要在于特征的選取,好的特征可以提高系統(tǒng)的性能。因此該方法在特征的選 取上會耗費大量的時間。此外特征需要人工手動選取,人工干預(yù)過多,特征選取的不好將會 導(dǎo)致特征稀疏等問題,影響系統(tǒng)的性能。
[0006] 因此如何減少人工干預(yù),降低特征選取的復(fù)雜性,提高系統(tǒng)的泛化能力成為當(dāng)前 中文人名識別亟待解決的問題。此外,目前中文人名識別系統(tǒng)主要針對中國人名進(jìn)行識別, 而對于日本人名、外國音譯人名以及少數(shù)民族音譯人名涉及較少,對于中文人名識別的廣 度急需提高。
【發(fā)明內(nèi)容】
[0007] 鑒于上述問題,本發(fā)明目的是提供一種基于循環(huán)神經(jīng)網(wǎng)絡(luò)的中文人名識別方法。 該方法利用大規(guī)模的中文文本訓(xùn)練詞向量,并僅使用蘊含豐富語義信息的詞向量作為循環(huán) 神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練特征,避免人工干預(yù),有效的降低了特征選取的復(fù)雜性。此外該方法在有 限訓(xùn)練語料的前提下可以通過擴充詞向量的訓(xùn)練文本豐富詞向量信息,從而增加模型的泛 化能力。此外,該方法添加了對日本人名、外國音譯人名以及少數(shù)民族音譯人名的識別功 能,擴大了中文人名識別的廣度。
[0008] 本發(fā)明的技術(shù)方案:
[0009] -種基于循環(huán)神經(jīng)網(wǎng)絡(luò)的中文人名識別方法,步驟如下:
[0010] 步驟1:對訓(xùn)練語料進(jìn)行預(yù)處理:
[0011] 步驟(a):利用中文分詞工具對訓(xùn)練語料進(jìn)行分詞,并建立詞詞典;詞詞典中為每 一個詞分配序號,序號從1號開始編號,〇號保留用來表示沒有出現(xiàn)在詞詞典中的詞;
[0012] 步驟(b):先利用步驟(a)中的詞詞典對分詞后的訓(xùn)練語料進(jìn)行數(shù)字化處理,將結(jié) 果保存到數(shù)字化文本中;再為每一個詞分配分類標(biāo)簽,將結(jié)果保存到分類標(biāo)簽文本中;
[0013] 步驟2:詞向量訓(xùn)練:先利用中文分詞工具對大規(guī)模中文文本進(jìn)行分詞,再使用 W〇rd2vec對分詞后的大規(guī)模中文文本進(jìn)行訓(xùn)練得到詞向量文件,并根據(jù)步驟1中得到的詞 詞典對詞向量文件進(jìn)行篩選,僅保留分詞詞典中存在詞的詞向量,并存入詞向量矩陣文本 中。在循環(huán)神經(jīng)網(wǎng)絡(luò)模型中,使用詞向量表示詞,而詞向量是可以事先通過大規(guī)模的中文文 本訓(xùn)練得到,同時詞向量中還會包含大規(guī)模中文文本中的句法、語義等豐富的信息。因此本 文使用大規(guī)模中文文本訓(xùn)練得到的詞向量去替換神經(jīng)網(wǎng)絡(luò)模型中的初始詞向量,通過此操 作,神經(jīng)網(wǎng)絡(luò)模型在初始階段,詞向量就已經(jīng)包含了豐富的信息,模型在已知豐富信息的前 提下,接收訓(xùn)練語料進(jìn)行模型的訓(xùn)練可以大大的提高系統(tǒng)的性能。
[0014] 步驟3:中文人名識別模型訓(xùn)練;將步驟1生成的數(shù)字化文本、分類標(biāo)簽文本以及步 驟2生成的詞向量矩陣文本作為循環(huán)神經(jīng)網(wǎng)絡(luò)模型的輸入,進(jìn)行中文人名識別模型的訓(xùn)練。
[0015] 步驟a):首先根據(jù)循環(huán)神經(jīng)網(wǎng)絡(luò)模型的窗口參數(shù)win的大小,將當(dāng)前詞t的前win/2 和后win/2個詞所對應(yīng)的詞向量進(jìn)行首尾相接,組合成新的詞向量表示當(dāng)前詞,記為w( t); [0016] 步驟b):將待處理的句子按照mini-batch原則進(jìn)行分塊。
[0017] 步驟c):使用循環(huán)神經(jīng)網(wǎng)絡(luò)模型對步驟b)中的每一個塊進(jìn)行訓(xùn)練;將步驟a)中得 到的詞向量w(t)和前一步隱藏層的輸出作為當(dāng)前層的輸入,通過激活函數(shù)變換得到隱藏 層,如公式所示:
[0018] s(t) = f (w(t)u+s(t-l)w)
[0019] 式中,f為神經(jīng)單元節(jié)點的激活函數(shù),w(t)表示當(dāng)前詞t的詞向量,s(t-l)表示前一 步隱藏層的輸出,w和u分別表示前一步隱藏層與當(dāng)前隱藏層的權(quán)重矩陣和輸入層與當(dāng)前隱 藏層的權(quán)重矩陣,s(t)表示當(dāng)前步隱藏層的輸出。
[0020] 然后,利用隱藏層輸出得到輸出層的值,如公式所示:
[0021] y(t)=g(s(t)v)
[0022]式中,g為softmax激活函數(shù),v表示當(dāng)前隱藏層與輸出層的權(quán)重矩陣,y(t)為當(dāng)前 詞t的預(yù)測值。
[0023]步驟d):對步驟c)中獲得的預(yù)測值y(t)與真實值進(jìn)行比較,若兩者的差值高于某 一設(shè)定閾值時,就會通過逆向反饋神經(jīng)網(wǎng)絡(luò)對各層之間的權(quán)重矩陣進(jìn)行調(diào)整。
[0024]步驟e):循環(huán)神經(jīng)網(wǎng)絡(luò)模型中學(xué)習(xí)率自調(diào)整,在訓(xùn)練過程中,模型經(jīng)過每次迭代之 后都會對開發(fā)集進(jìn)行結(jié)果測試,如果在設(shè)定的迭代次數(shù)內(nèi)都未在開發(fā)集上獲得更好的效 果,則對學(xué)習(xí)率進(jìn)行減半,進(jìn)行下一次迭代操作。至學(xué)習(xí)率低于所設(shè)閾值停止訓(xùn)練,模型達(dá) 到收斂狀態(tài)。
[0025] 步驟4:人名識別及后處理:
[0026]步驟a:使用中文分詞工具對測試語料進(jìn)行分詞,并使用步驟1中得到的詞詞典對 分詞后的測試語料進(jìn)行數(shù)字化操作,得到數(shù)字化文本。
[0027] 步驟b:利用步驟3訓(xùn)練得到中文人名識別模型,對步驟a得到的數(shù)字化文本進(jìn)行測 試,并將識別的中文人名作為候選人名。
[0028] 步驟c:使用上下文規(guī)則篩選候選人名,過濾不符合規(guī)則的人名
[0029]步驟d:使用基于篇章的全局?jǐn)U散算法召回已經(jīng)識別出而在上下文信息不足或者 上下文信息過擬合的位置中未被識別的人名。
[0030]步驟e:使用基于篇章的局部擴散算法召回有名無姓、有姓無名的人名,將經(jīng)過篩 選后的人名定為最終人名。
[0031]本發(fā)明的有益效果:本發(fā)明能有效的降低在中文人名識別時特征選取的復(fù)雜性, 充分利用大規(guī)模中文文本中蘊含的豐富的句法和語法信息,從而增加模型的泛化能力,在 識別中國人名的同時,還對日本人名和外國音譯人名進(jìn)行了識別,擴大了中文人名識別的 廣度。
【附圖說明】
[0032] 圖1為本發(fā)明語料預(yù)處理、詞向量訓(xùn)練以及中文人名識別模型訓(xùn)練流程圖。
[0033] 圖2為本發(fā)明人名識別及其后處理流程圖。
[0034]圖3為本發(fā)明實驗效果圖。
【具體實施方式】
[0035]以下結(jié)合附圖和技術(shù)方案,進(jìn)一步說明本發(fā)明的【具體實施方式】。
[0036]圖1顯示了中文人名識別模型的預(yù)處理、詞向量訓(xùn)練以及中文人名識別模型訓(xùn)練 流程。
[0037]圖2表示了后處理的流程,下面綜合圖1對本發(fā)明加以詳細(xì)說明。
[0038]下面以1998年《人民日報》作為數(shù)據(jù)集,用一個具體實例對本發(fā)明加以詳細(xì)說明。 [0039] 步驟1、對1998年《人民日報》數(shù)據(jù)預(yù)處理:具體子步驟如下:
[0040] 利用分詞工具nihao分詞對語料進(jìn)行分詞處理,得到詞詞典。然后利用詞詞典對分 詞后的每一個詞進(jìn)行數(shù)字化處理并分配分類標(biāo)簽,最終每一個詞都有一個數(shù)字編號和一個 分類標(biāo)簽。(以句子"清朝著名學(xué)者郭嵩燾曾說"為例):
[0041]
[0042]
[0043] 步驟2:word2vec詞向量訓(xùn)練:使用分詞工具nihao分詞對2000年《人民日報》語料 進(jìn)行分詞,并利用w〇rd2vec工具對分詞后的語料進(jìn)行詞向量訓(xùn)練,獲得每一個詞的上下文 信息表示,比如上例中姓氏"郭"的詞向量表示為〈0.229802-0.477945-0.478067 1.801231 1.433267 0.143571-0.641199 1.334321…〉。結(jié)合步驟1中得到的詞詞典對詞向量進(jìn)行過 濾,將結(jié)果存入詞向量矩陣文本中。
[0044] 在詞向量的訓(xùn)練過程中,我們采用CB0W模型進(jìn)行訓(xùn)練,滑動窗口大小為5,詞向量 維度為1〇〇。
[0045] 步驟3:模型訓(xùn)練及參數(shù)選擇:我們采用循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)作為模型。中文人名識 別中需要識別的類型有中國姓氏,中國名字,日本姓氏,日本名字和音譯人名五種,加上一 個負(fù)類,所以我們模型的預(yù)測類別為6類,經(jīng)過多次實驗,我們選擇9層神經(jīng)網(wǎng)絡(luò)模型,輸入 層有500維(滑動窗口 5,詞向量100維),隱藏層節(jié)點個數(shù)為100,預(yù)測類別為6。我們利用反向 傳播以及梯度下降算法,借助于《人民日報》訓(xùn)練集中的標(biāo)注數(shù)據(jù)訓(xùn)練該模型,并在訓(xùn)練的 過程中對學(xué)習(xí)率和詞向量進(jìn)行自學(xué)習(xí)調(diào)整。
[0046] 關(guān)于模型超參數(shù)選擇如下表所示:
[0048] 步驟4:人名識別及后處理:首先,對測試語料進(jìn)行分詞,并使用步驟1得到的詞詞 典進(jìn)行數(shù)字化操作,然后利用步驟3訓(xùn)練得到中文人名識別模型,在數(shù)字化之后的測試語料 上進(jìn)行測試,將中文人名識別模型識別出的人名作為候選。然后,利用上下文規(guī)則篩選候選 人名,過濾不符合規(guī)則的人名。最后,利用基于篇章的全局?jǐn)U散算法召回已經(jīng)識別出而在上 下文信息不足或者上下文信息過擬合的位置中未識別的人名,并且利用基于篇章的局部擴 散算法召回有名無姓、有姓無名的人名,最終確定人名。
【主權(quán)項】
1. 一種基于循環(huán)神經(jīng)網(wǎng)絡(luò)的中文人名識別方法,其特征在于,步驟如下: 步驟1:對訓(xùn)練語料進(jìn)行預(yù)處理: 步驟(a):利用中文分詞工具對訓(xùn)練語料進(jìn)行分詞,并建立詞詞典;在詞詞典中為每一 個詞分配序號,序號從1號開始編號,〇號保留用來表示沒有出現(xiàn)在詞詞典中的詞; 步驟(b):先利用步驟(a)中的詞詞典對分詞后的訓(xùn)練語料進(jìn)行數(shù)字化處理,將結(jié)果保 存到數(shù)字化文本中;再為每一個詞分配分類標(biāo)簽,將結(jié)果保存到分類標(biāo)簽文本中; 步驟2:詞向量訓(xùn)練:先利用中文分詞工具對大規(guī)模中文文本進(jìn)行分詞,再使用 W〇rd2vec對分詞后的大規(guī)模中文文本進(jìn)行訓(xùn)練得到詞向量文件,并根據(jù)步驟1中得到的詞 詞典對詞向量文件進(jìn)行篩選,僅保留分詞詞典中存在詞的詞向量,并存入詞向量矩陣文本 中; 步驟3:中文人名識別模型訓(xùn)練:將步驟1生成的數(shù)字化文本、分類標(biāo)簽文本以及步驟2 生成的詞向量矩陣文本作為循環(huán)神經(jīng)網(wǎng)絡(luò)模型的輸入,進(jìn)行中文人名識別模型的訓(xùn)練; 步驟a):根據(jù)循環(huán)神經(jīng)網(wǎng)絡(luò)模型的窗口參數(shù)win的大小,將當(dāng)前詞t的前win/2和后win/ 2個詞所對應(yīng)的詞向量進(jìn)行首尾相接,組合成新的詞向量表示當(dāng)前詞,記為w( t); 步驟b):將待處理的句子按照mini-batch原則進(jìn)行分塊; 步驟c):使用循環(huán)神經(jīng)網(wǎng)絡(luò)模型對步驟b)中的每一個塊進(jìn)行訓(xùn)練;將步驟a)中得到的 詞向量w(t)和前一步隱藏層的輸出作為當(dāng)前層的輸入,通過激活函數(shù)變換得到隱藏層,如 公式所示: s(t) = f (w(t)u+s(t-l )w) 式中,f為神經(jīng)單元節(jié)點的激活函數(shù),W(t)表示當(dāng)前詞t的詞向量,S(t-l)表示前一步隱 藏層的輸出,w和u分別表示前一步隱藏層與當(dāng)前隱藏層的權(quán)重矩陣和輸入層與當(dāng)前隱藏層 的權(quán)重矩陣,s(t)表示當(dāng)前步隱藏層的輸出; 再利用隱藏層輸出得到輸出層的值,如公式所示: y(t) = g(s(t)v) 式中,g為sof tmax激活函數(shù),v表示當(dāng)前隱藏層與輸出層的權(quán)重矩陣,y (t)為當(dāng)前詞t的 預(yù)測值; 步驟d):對步驟c)中獲得的預(yù)測值y(t)與真實值進(jìn)行比較,若兩者的差值高于某一設(shè) 定閾值時,通過逆向反饋神經(jīng)網(wǎng)絡(luò)對各層之間的權(quán)重矩陣進(jìn)行調(diào)整; 步驟e):循環(huán)神經(jīng)網(wǎng)絡(luò)模型中學(xué)習(xí)率自調(diào)整,在訓(xùn)練過程中,循環(huán)神經(jīng)網(wǎng)絡(luò)模型經(jīng)過每 次迭代后,對開發(fā)集進(jìn)行結(jié)果測試,如果在設(shè)定的迭代次數(shù)內(nèi)都未在開發(fā)集上獲得更好的 效果,則對學(xué)習(xí)率進(jìn)行減半,進(jìn)行下一次迭代操作;至學(xué)習(xí)率低于所設(shè)閾值停止訓(xùn)練,循環(huán) 神經(jīng)網(wǎng)絡(luò)模型達(dá)到收斂狀態(tài); 步驟4:人名識別及后處理: 步驟a:使用中文分詞工具對測試語料進(jìn)行分詞,并使用步驟1中得到的詞詞典對分詞 后的測試語料進(jìn)行數(shù)字化操作,得到數(shù)字化文本; 步驟b:利用步驟3訓(xùn)練得到中文人名識別模型,對步驟a得到的數(shù)字化文本進(jìn)行測試, 并將識別的中文人名作為候選人名; 步驟c:使用上下文規(guī)則篩選候選人名,過濾不符合規(guī)則的人名; 步驟d:使用基于篇章的全局?jǐn)U散算法召回已經(jīng)識別出而在上下文信息不足或者上下 文信息過擬合的位置中未被識別的人名; 步驟e:使用基于篇章的局部擴散算法召回有名無姓、有姓無名的人名,將經(jīng)過篩選后 的人名定為最終人名。
【文檔編號】G06N3/02GK105868184SQ201610308475
【公開日】2016年8月17日
【申請日】2016年5月10日
【發(fā)明人】黃德根, 徐新峰
【申請人】大連理工大學(xué)