基於神經網絡的漢語自動分詞系統的設計與分析

基於神經網絡的漢語自動分詞系統的設計與分析

尹 鋒
(湖南省科技信息研究所,長沙410001)
Design and Analysis of Chinese Automatic Segmenting
System Based on Neural Network


Yin Feng

(Institute of S&T Information of Hunan Province, Changsha 410001)
 

  
漢語自動分詞是目前中文信息處理中的難點,是中文自然語言理解、文獻標引、智能檢索和機器翻譯中最基本的一步。十餘年來,國內推出了數十種自動分詞方法,取得了一定進展。以非線性並行處理爲主流的神經網絡理論的發展爲漢語自動分詞研究開闢了新途徑。
  本文從分析神經網絡的基本原理和自動分詞技術入手,闡述應用神經網絡技術進行漢語自動分詞研究的基本方法和步驟,並給出實驗結果與分析。

  
神經網絡是在模擬人腦結構和行爲的基礎上,用大量簡單的處理單元廣泛連接組成的複雜網絡,其研究成果顯示了人工神經網絡的主要特徵爲連續時間非線性動力學、網絡的全局作用、大規模並行分佈處理及高度的魯棒性和學習聯想能力。
  根據人工神經網絡對生物神經系統的不同組織層次和抽象層次的模擬,神經網絡已經出現40餘種模型。從信息加工和分詞處理的角度看,在神經元所具有的各種機能中,最重要的是在突觸處許多輸入在空間和時間上進行加權的性質,以及神經元細胞的閾值作用。
  下文將要引用的BP模型,是最常見的反向傳播神經網絡。它引入了中間隱含層神經元,整體上由三個神經元層次組成,各層次的神經元之間形成全互連連接,各層次內的神經元之間沒有連接。
  BP模型的結構如圖1所示。 

摘要  應用神經網絡進行漢語自動分詞研究是中文信息處理領域的重要課題。本文從分析神經網絡的一個主要模型和算法入手,闡述了基於神經網絡的漢語自動分詞系統的設計方法,較詳細地介紹了該系統的實驗結果,並給出了必要的分析。
關鍵詞  神經網絡 漢語分詞

 

Abstract Applying neural network to Chinese word automatic segmenting is an important problem in Chinese information handling field.By analyzing a major model and algorithm of neural network,this paper expounded the designing method of Chinese automatic segmenting system based on neural network,and detailed its experimental result and gave the necessary analysis.
Keywords Chinese word segmenting,neural network.

1 引  言

 

2 神經網絡的模型與算法

 

qbxb-09.gif (19677 bytes)

圖1 BP模型

  BP學習算法要求神經元特性函數是可微的,如S形函數,故誤差後向傳播可以用LMS法則進行。
  令某一訓練輸入矢量爲Xk,網絡實際輸出爲Yk,Xk=(xk1,xk2,…,xkn)T,Yk=(yk1,yk2,…,ykm)T,對應輸入Xk的理想輸出爲Y′k,輸出誤差爲

qbxb-10.gif (2145 bytes)

j爲輸出層中第j個神經元。由最速下降法知各層神經元的權係數的迭代方程爲

W(k+1)=W(k)-μΔE

將(3)式代入(4)式,有

qbxb-12.gif (2620 bytes)

qbxb-13.gif (3441 bytes)

    qbxb-14.gif (3286 bytes)

因爲ykj=fj(netkj)
故有

qbxb-15.gif (1886 bytes)

若是輸出層,那麼  qbxb-16.gif (1719 bytes)

         qbxb-17.gif (3341 bytes)
其中       
qbxb-18.gif (1857 bytes)

若是隱含層

qbxb-19.gif (4043 bytes)

qbxb-20.gif (5058 bytes)

qbxb-21.gif (4790 bytes)

 

3 神經網絡分詞系統的設計

 

k (2)qbxb-11.gif (5638 bytes)爲S形多層神經網絡的δ法則,即BP算法。
  對多層網絡進行訓練時,首先要提供一組訓練樣本,其中的每個樣本由輸入樣本和理想輸出對組成。當網絡的所有實際輸出與其理想輸出一致時,表明訓練結束。否則,通過修正權值,使網絡的理想輸出與實際輸出一致。
  BP算法的學習過程,是由正向傳播和反向傳播組成。在正向傳播過程中,輸入信息從輸入層經隱含層逐層處理,並傳向輸出層,每一層的神經元狀態隻影響下一層的神經元狀態。如果在輸出層不能得到期望的輸出,則轉入反向傳播,將誤差信號沿原來的連接通路返回,通過修改各層神經元的權值,使得誤差信號最小。
  BP模型把一組樣本的I/O問題變爲一個非線性優化問題,使用了優化中最普通的梯度下降法。用迭代運算求解權相應於學習記憶問題,加入隱節點使優化問題的可調參數增加,從而可得到更精確的解。如果把這種神經網絡看成一個從輸入到輸出的映射,則這個映射是一個高度非線性的映射。

  
利用神經網絡原理進行分詞,最基本點是要解決分詞知識的輸入、學習和理解。爲此,必須建立神經網絡的輸入模型、學習模型、動態網絡和輸出解釋模型。


qbxb-22.gif (9612 bytes)

圖2 數據採集模型框圖

3.1 建立輸入模型
  
爲了使神經網絡能夠接受外部數據,首先要建立輸入模型。該模型首先從輸入文字流中取出語句,進行規整處理(如限定句子的字長、加語句分隔符等),然後對接收的語句進行漢字編碼壓縮,再進行切分格式轉換,把漢語句子變成神經網絡能夠識別、學習和存儲的編碼形式,送至神經網絡接口。模型框圖如圖2。
  本模型的核心是編碼壓縮和切分格式轉換。漢語分詞的難點是歧義字段的切分,本文以歧義字段作研究重點,並確定分詞的基本語境爲一個句子。
  採集的文本樣例以帶歧義的字段爲主,如:

  (1)他-烤-白薯。
  (3)今天-空位子-很多。
  (5)這個-糖果-真-好喫!
  (7)他-在-熱-水。
  (9)他-從-馬上-下-來。
  (11)她-一陣-風-似-地-跑-了。
  (13)他-的-確切-意圖-是-什麼?
  (15)把-手-伸-出-來!
  (17)物理-學-起來-很難。
  (19)校-學生會-發表-公告。
  (21)美-國會-採取-步驟。
  (23)他-在-莊稼-地裏-間-麥苗。
  (25)他-將-來-上海-工作。
  (27)用-方塊圖-形式-加-以-描述。
  (29)獨立-自主-和-平等-原則。
  (31)這-只-歌-太-平淡-無-味。
  (33)什麼-東西-拍賣-完-了?
  (35)由-原子-結合-成-分子。
(2)他-喫-烤白薯。
(4)如今-天空-總是-很-藍。
(6)放了-糖-果真-好喫。
(8)他-用-熱水-洗澡。
(10)他-的-馬-上-坡-了。
(12)傍晚-刮-陣風。
(14)他-的確-切菜-了。
(16)大門-把手-壞-了。
(18)物理學-是-一門-基礎-科學。
(20)該-學生-會-發表-文章-的。
(22)美國-會-動用-武力。
(24)他-在-裏間-搞-衛生。
(26)將來-上海-更-美好。
(28)把-方塊-圖形-拚接-起-來。
(30)人類-要求-自主-和平。
(32)天下-並-沒有-太平。
(34)乒乓球-拍-賣-完-了。
(36)把-原子-合成-分子。


  本文采集的樣本基本上囊括了國內公開發表的有關漢語分詞的論文所提出的典型歧義語句,樣本空間具有一定的代表性。

3.2 學習模型與學習方式
  
由前述內容可知,BP是目前應用最廣泛的一種網絡,BP算法是一個很有效的算法,可解決諸如學習、識別、分類和模式識別等問題。
  本文建立的BP學習模型其主要參數是:
  (1)輸入層結點數:若每個漢字用13bits,並限定句子(有自然分隔標誌)長度爲n個字,則神經元的輸入結點數爲13n。
  (2)隱含層結點數:一般比輸入神經元數目少,但不能太少,否則限制了神經網絡存儲各種模式的能力。可考慮選13α(α=0.2—0.8),具體數值由實驗確定。我們在實驗中選取α爲0.5或0.8。
  (3)輸出層結點數:按句子最大要求,本文暫選10個。
  分詞網絡學習方式及學習過程如下:學習開始時,將內部連接權,閾值初始化,並根據實驗結果確定隱含層數及α,網絡各單元之間的連接權及單元閾值隨機地賦予。每給網絡提供一輸入輸出模式對,首先進行前向傳播並計算出各單元的實際輸出,求出各單元的參考誤差。當各單元的參考誤差都求出後,進行連接權和各單元閾值的調整,從而完成一項迭代。對下一模式對,重複上述過程。當選擇的n句(模式對)對各自的迭代都完成後,又重複對第一模式的迭代。這樣循環下去,直到輸出層單元的誤差滿足要求爲止。
  神經網絡的分詞系統所具有的學習機制,使它可根據用戶的要求隨意地增添或刪除某些權重鏈接,以達到維護知識庫的目的。在神經網絡中,允許輸入偏離學習樣本,只要輸入模式接近於某一學習樣本的輸入模式,則輸出亦會接近學習樣本的輸出模式,這種性質使得神經網絡系統具有聯想記憶的能力。神經網絡學習的過程是一個由簡到繁、逐漸完成知識積累的過程。

3.3 動態網的生成
  
對未經訓練的詞語和規則,神經網絡可以通過重構實現自適應和自學習,以獲取新的知識。從這個意義上說,分詞網絡始終處於一個動態發展與完善的過程。
  新知識加入動態網通過聯接規則進行。聯接模型如圖3所示。  

qbxb-23.gif (5524 bytes)

輸入特徵向量 聯接規則 規則權Wij輸出切分可能性

圖3 知識規則聯接模型


  圖3中的輸入神經元對應於輸入特徵向量空間的一組向量值;隱含神經元表示一組聯接規則,其輸入對應於規則的左部條件,輸出對應於規則右部所採取的動作(即輸入語句的切分模式);輸出神經元的輸出表示輸入特徵向量屬於某種切分方式的可能性估計。輸出神經元與隱含神經元間的聯接權wij表示規則左部條件爲真時,規則的右部結論成立的可能性度量。即神經網絡表示的規則形式爲:
  If(x1 and x2,or xi)
  Then ci with strength wij
其中wij權重可以爲正值,也可能爲負值,取決於規則支持其右部結論成立爲真還是爲假。對於一個具體的分詞問題,首先從訓練樣本中學習一組規則,然後把這些規則映射成神經網絡的權重、偏置以及一組輸出激活函數,從而使神經網絡能夠表示分詞知識,還可以進行不精確的並行推理。更爲重要的是,神經網絡可以隨着外界環境的變化,通過自學習自組織機制,獲取新的分詞知識。
  例如,下述分詞規則轉換爲連接網絡:
  (1)如果交集字串與其直接後繼字組成形容詞,則將該歧義詞的首字單切,否則確認該歧義詞爲詞。
  樣例1:這支歌太平淡無味了。
  切分爲:這支-歌-太-平淡-無味-了。
  (2)如果歧義字串中的直接前趨詞是數詞,則歧義字段的首字單切。
  樣例2:他一陣風似地跑了。
  切分爲:他-一陣-風-似-地-跑-了。
  (3)如果歧義字段的前趨詞中有介詞,則歧義字段的首字單切,否則該歧義字段成詞。
  樣例3:他從馬上下來。
  切分爲:他-從-馬上-下來。
  (4)如果歧義字段的後繼詞有趨向動詞或助詞,則尾字單切,否則該歧義字段成詞。
  樣例4:物理學起來很難。
  切分爲:物理-學-起來-很難。
  (以上四條利用句法知識正確切分)
  (5)如果歧義字段後繼名詞的義項中含有“數學式子”或“釦子”這類義素,則歧義字段的尾字單切,否則該歧義字段成詞。
  樣例5:他學會了解方程。
  切分爲:他-學會-了-解-方程。
  系統將這些體現某種規則的樣例經過轉換程序變換爲神經網絡的輸入元素,然後對樣例進行訓練。表1、表2和表3分別列出上述5句樣例訓練100次、1500次和3000次的網絡輸出值。可以看出,切分處的輸出值隨學習次數的增加而增加(趨近於1),非切分處的輸出值隨學習次數的增加而減少,並趨向於0。
  分佈性是神經網絡之所以能夠觸動人工智能中知識獲取這個瓶頸問題的關鍵所在。與傳統人工智能的信息處理方式相異,神經網絡是用大量神經元的互連及對各連接權值的分佈來表示特定的概念或知識,在進行知識獲取時,它只要求系統提供範例(或實例)及相應的解;通過特定的學習算法對樣本進行學習,經過網絡內部自適應算法不斷修改權值分佈以達到要求,把人類求解實際問題的啓發式知識和經驗分佈到網絡的互連及權值分佈上。

3.4 建立輸出解釋模型
  
該模型屬於系統分詞輸出的後處理。神經網絡經過大量地學習訓練,在某種意義講,具備一定的“智能”,但它工作的結果不能用自然語言表達,其輸出值爲0、1和二者之間的數據。怎樣評判這些數據的含義呢?根據大量的實驗,我們把網絡輸出值中小於0.3大於等於0的作爲0看待,等於大於0.7的數值視作1。
  

表1 訓練100次的網絡輸出值

例句1: 0.023 0.981 0.977 0.966 0.016 0.949 0.042 0.933 0.015 0.014
例句2: 0.957 0.944 0.065 0.968 0.968 0.011 0.012 0.004 0.005 0.006
例句3: 0.962 0.026 0.966 0.975 0.969 0.938 0.921 0.035 0.023 0.027
例句4: 0.048 0.949 0.970 0.070 0.949 0.012 0.007 0.009 0.006 0.007
例句5: 0.975 0.064 0.957 0.954 0.998 0.043 0.056 0.000 0.001 0.001

表2 訓練1500次的網絡輸出值

例句1: 0.006 0.995 0.995 0.992 0.003 0.988 0.009 0.985 0.005 0.005
例句2: 0.990 0.988 0.013 0.994 0.990 0.001 0.001 0.000 0.001 0.001
例句3: 0.992 0.004 0.992 0.996 0.992 0.987 0.984 0.009 0.006 0.007
例句4: 0.009 0.989 0.994 0.012 0.989 0.001 0.000 0.001 0.002 0.001
例句5: 0.993 0.013 0.992 0.991 0.999 0.008 0.011 0.000 0.000 0.000

表3 訓練3000次的網絡輸出值

例句1: 0.004 0.996 0.996 0.994 0.002 0.992 0.006 0.990 0.003 0.003
例句2: 0.993 0.991 0.008 0.996 0.993 0.000 0.000 0.000 0.001 0.001
例句3: 0.995 0.002 0.994 0.997 0.994 0.991 0.989 0.006 0.004 0.004
例句4: 0.006 0.993 0.995 0.008 0.993 0.001 0.000 0.000 0.001 0.001
例句5: 0.995 0.008 0.995 0.994 0.999 0.006 0.007 0.000 0.000 0.000

  在分詞樣例及其規則輸入時,本文規定:“1”爲切分標誌,“0”爲不切分。因此輸出值的解釋與此對應。而且,分詞結果在NN網絡中以0、1及二者之間的數值形式表現,必須轉換爲文本形式方能閱讀。
  例如,“物理學起來很難。”NN切分的網絡輸出爲:
  0.006779 0.993081 0.995886 0.008780 0.993026 0.001010 0.000322
大於等於0.7判爲1,小於0.3判爲0,於是其網絡輸出失量是:0110100,對應着:物理-學-起來-很難。

4 實 驗 與 分 析

 

表4


  
實驗從以下幾方面進行:

4.1 隱含層結點數對切分精度的影響
  
實驗1:網絡爲三層結構,輸入層130個單元,輸出層10個單元,隱含層取60個單元。首先把切分樣例訓練3000次,然後取10個句子[前述樣本空間中(2)-(11)句]試分,切分結果完全正確。
  實驗2:把隱含層單元增加到100個,試分10句,有一處切分出錯。
  他-喫-烤白薯。 切分成:他-喫-烤-白薯。
  網絡輸出精度對比如表4:
PE Y1 Y2 Y3 Y4 Y5
60 0.999951 0.986434 0.000296 0.013876 0.000717
100 0.999842 0.997971 1.000000 0.000115 0.000149
  上表中,PE爲100時,Y3輸出值是1.000000,“烤白薯”錯分成“烤-白薯”,說明增加隱含層結點時,訓練次數必須提高,否則分詞精度下降。

4.2 網絡層數對分詞精度的影響
  
實驗3:把網絡層次增加一層,Hidden 1取80點,Hidden 2取50點,取全部學習樣本,訓練3000次,轉換程序不能完全將網絡輸出轉爲文本形式,說明輸出值中出現了大於0.30而小於0.70的數,分詞精度未達期望值。
  實驗4:提高訓練次數至10000次,重新對神經網絡進行訓練,輸出值達到期望。取10句樣本測試,有一處未分出。
  他-的-馬-上-坡-了。輸出爲:他-的-馬上-坡-了。
  

表5 實驗1輸出值

Y1 Y2 Y3 Y4 Y5 Y6 Y7 Y8
0.999951 0.986434 0.000296 0.013876 0.000717 0.000000 0.000000 0.000000
0.000000 1.000000 0.000100 0.004377 0.999733 0.002513 0.000971 0.000007
0.006958 0.983463 0.003400 1.000000 0.000022 0.999974 0.978714 0.000842
0.000012 0.996241 0.002687 0.999369 1.000000 0.000090 0.011123 0.000000
0.001907 0.000235 1.000000 0.006062 1.000000 0.000012 0.016996 0.000000
0.000000 0.993122 0.999307 0.001445 0.000296 0.000000 0.000070 0.000000
0.999905 0.986692 0.000367 0.999931 0.000086 0.000018 0.000707 0.000012
0.999960 0.991459 0.005715 0.999989 0.996388 0.000476 0.009474 0.000000
0.999738 0.992442 0.998380 0.999989 0.987691 0.024141 0.000028 0.00000
0.999978 0.004586 0.957207 0.998615 0.970033 0.957652 0.979056 0.001547

表6 實驗4輸出值

Y1 Y2 Y3 Y4 Y5 Y6 Y7 Y8
0.999735 1.000000 0.004021 0.025124 0.000000 0.000000 0.000008 0.000000
0.000000 1.000000 0.003541 0.000344 1.000000 0.000000 0.000000 0.000000
0.016547 0.999971 0.000063 0.989642 0.011452 0.994621 0.000000 0.003385
0.012543 0.999968 0.001872 0.975757 1.000000 0.004918 0.000011 0.000000
0.001630 0.002604 1.000000 0.008448 1.000000 0.002550 0.000000 0.000000
1.000000 0.997337 1.000000 0.000000 0.001047 0.000000 0.011650 0.000000
1.000000 0.997628 0.000025 0.945863 0.000042 0.014698 0.000006 0.000000
1.000000 1.000000 0.000000 0.999641 0.999787 0.000117 0.001378 0.000000
1.000000 1.000000 0.000000 0.999813 0.998591 0.000198 0.001378 0.000000
1.000000 0.000008 0.981524 0.998893 0.995266 0.997261 0.998089 0.009473
  實驗4與實驗1比較,對同一批測試樣本而言,雖然有一處未分,但網絡單元輸出精度提高,見表5和表6。
  表5中有6處輸出1.0,表6有14處輸出1.0,說明網絡的學習次數與隱含層的增加成正比。如果二個隱含層的網絡的學習次數與一個隱含層網絡的學習次數相同,前者的分詞精度明顯低於後者。

4.3 樣本數量和學習次數對分詞精度的影響
  
實驗5:把樣本縮減爲30句,網絡結構同實驗1,訓練3000次,然後對10句樣本進行測試,分詞輸出符合期望值。
  實驗6:網絡結構同實驗2,學習樣本和學習次數均與上同,只是隱含層結點由50改爲100。訓練後,對10句樣本進行測試,網絡輸出值不完全符合期望,經分析,發現最後一句出錯。
網絡輸出爲:

 

qbxb-25.GIF (6827 bytes)

qbxb-24.gif (5660 bytes)
其中,“她”、“一”、“風”和“地”的輸出值介於0.3至0.7之間,屬於拒分狀態。
參考期望值應爲:
說明隱含層結點增加後,學習次數要相應增加,才能達到期望精度。
  此外,我們還做了網絡的自適應性測試,即比照學習樣例,對測試語句的結構和句型以及詞彙作適當變動,然後輸入網絡進行試分,結果是切分正確率下降,不可分辨率上升,說明句型變化和陌生詞彙的增加與神經網絡切分精度成反比。

5 結 束 語

 


  
綜上所述,神經網絡分詞方法還存在着局部極小、學習算法收斂速度慢、網絡層數及隱含節點選取無確定原則、新加入樣本對已學完樣本有一定影響等問題。但是,與其他分詞方法相比,神經網絡具有的自學習、自組織、並行、非線性處理方式使得它具備知識表達簡潔、學習功能強、開放性好、知識庫容易維護和更新,以及分詞速度快、精確度較高等特點,因此,這是一種發展前景看好的分詞方法。

  收稿日期:1997年5月26日
  作者簡介:尹 鋒,男,1954年生,湖南大學計算機系畢業,工學碩士。現任湖南省科技信息研究所計算機中心主任,副研究員。主要從事人工智能、計算機網絡和查新檢索研究,發表論文30餘篇,並有多項科研成果。
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章