基于神经网络的汉语自动分词系统的设计与分析

基于神经网络的汉语自动分词系统的设计与分析

尹 锋
(湖南省科技信息研究所,长沙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.0230.9810.9770.9660.0160.9490.0420.9330.0150.014
例句2:0.9570.9440.0650.9680.9680.0110.0120.0040.0050.006
例句3:0.9620.0260.9660.9750.9690.9380.9210.0350.0230.027
例句4:0.0480.9490.9700.0700.9490.0120.0070.0090.0060.007
例句5:0.9750.0640.9570.9540.9980.0430.0560.0000.0010.001

表2 训练1500次的网络输出值

例句1:0.0060.9950.9950.9920.0030.9880.0090.9850.0050.005
例句2:0.9900.9880.0130.9940.9900.0010.0010.0000.0010.001
例句3:0.9920.0040.9920.9960.9920.9870.9840.0090.0060.007
例句4:0.0090.9890.9940.0120.9890.0010.0000.0010.0020.001
例句5:0.9930.0130.9920.9910.9990.0080.0110.0000.0000.000

表3 训练3000次的网络输出值

例句1:0.0040.9960.9960.9940.0020.9920.0060.9900.0030.003
例句2:0.9930.9910.0080.9960.9930.0000.0000.0000.0010.001
例句3:0.9950.0020.9940.9970.9940.9910.9890.0060.0040.004
例句4:0.0060.9930.9950.0080.9930.0010.0000.0000.0010.001
例句5:0.9950.0080.9950.9940.9990.0060.0070.0000.0000.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:
PEY1Y2Y3Y4Y5
600.9999510.9864340.0002960.0138760.000717
1000.9998420.9979711.0000000.0001150.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输出值

Y1Y2Y3Y4Y5Y6Y7Y8
0.9999510.9864340.0002960.0138760.0007170.0000000.0000000.000000
0.0000001.0000000.0001000.0043770.9997330.0025130.0009710.000007
0.0069580.9834630.0034001.0000000.0000220.9999740.9787140.000842
0.0000120.9962410.0026870.9993691.0000000.0000900.0111230.000000
0.0019070.0002351.0000000.0060621.0000000.0000120.0169960.000000
0.0000000.9931220.9993070.0014450.0002960.0000000.0000700.000000
0.9999050.9866920.0003670.9999310.0000860.0000180.0007070.000012
0.9999600.9914590.0057150.9999890.9963880.0004760.0094740.000000
0.9997380.9924420.9983800.9999890.9876910.0241410.0000280.00000
0.9999780.0045860.9572070.9986150.9700330.9576520.9790560.001547

表6 实验4输出值

Y1Y2Y3Y4Y5Y6Y7Y8
0.9997351.0000000.0040210.0251240.0000000.0000000.0000080.000000
0.0000001.0000000.0035410.0003441.0000000.0000000.0000000.000000
0.0165470.9999710.0000630.9896420.0114520.9946210.0000000.003385
0.0125430.9999680.0018720.9757571.0000000.0049180.0000110.000000
0.0016300.0026041.0000000.0084481.0000000.0025500.0000000.000000
1.0000000.9973371.0000000.0000000.0010470.0000000.0116500.000000
1.0000000.9976280.0000250.9458630.0000420.0146980.0000060.000000
1.0000001.0000000.0000000.9996410.9997870.0001170.0013780.000000
1.0000001.0000000.0000000.9998130.9985910.0001980.0013780.000000
1.0000000.0000080.9815240.9988930.9952660.9972610.9980890.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余篇,并有多项科研成果。
 
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值