基于神经网络的汉语自动分词系统的设计与分析
尹 锋
(湖南省科技信息研究所,长沙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 神经网络的模型与算法
图1 BP模型 BP学习算法要求神经元特性函数是可微的,如S形函数,故误差后向传播可以用LMS法则进行。 j为输出层中第j个神经元。由最速下降法知各层神经元的权系数的迭代方程为 W(k+1)=W(k)-μΔE 将(3)式代入(4)式,有 则 因为ykj=fj(netkj) 若是输出层,那么 若是隐含层 则
3 神经网络分词系统的设计 k (2) ![]() 对多层网络进行训练时,首先要提供一组训练样本,其中的每个样本由输入样本和理想输出对组成。当网络的所有实际输出与其理想输出一致时,表明训练结束。否则,通过修正权值,使网络的理想输出与实际输出一致。 BP算法的学习过程,是由正向传播和反向传播组成。在正向传播过程中,输入信息从输入层经隐含层逐层处理,并传向输出层,每一层的神经元状态只影响下一层的神经元状态。如果在输出层不能得到期望的输出,则转入反向传播,将误差信号沿原来的连接通路返回,通过修改各层神经元的权值,使得误差信号最小。 BP模型把一组样本的I/O问题变为一个非线性优化问题,使用了优化中最普通的梯度下降法。用迭代运算求解权相应于学习记忆问题,加入隐节点使优化问题的可调参数增加,从而可得到更精确的解。如果把这种神经网络看成一个从输入到输出的映射,则这个映射是一个高度非线性的映射。 利用神经网络原理进行分词,最基本点是要解决分词知识的输入、学习和理解。为此,必须建立神经网络的输入模型、学习模型、动态网络和输出解释模型。 |
图2 数据采集模型框图 3.1 建立输入模型
|
输入特征向量 联接规则 规则权Wij输出切分可能性 图3 知识规则联接模型
表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句样本进行测试,网络输出值不完全符合期望,经分析,发现最后一句出错。 网络输出为:
![]() 其中,“她”、“一”、“风”和“地”的输出值介于0.3至0.7之间,属于拒分状态。 参考期望值应为: |
说明隐含层结点增加后,学习次数要相应增加,才能达到期望精度。 此外,我们还做了网络的自适应性测试,即比照学习样例,对测试语句的结构和句型以及词汇作适当变动,然后输入网络进行试分,结果是切分正确率下降,不可分辨率上升,说明句型变化和陌生词汇的增加与神经网络切分精度成反比。 5 结 束 语
综上所述,神经网络分词方法还存在着局部极小、学习算法收敛速度慢、网络层数及隐含节点选取无确定原则、新加入样本对已学完样本有一定影响等问题。但是,与其他分词方法相比,神经网络具有的自学习、自组织、并行、非线性处理方式使得它具备知识表达简洁、学习功能强、开放性好、知识库容易维护和更新,以及分词速度快、精确度较高等特点,因此,这是一种发展前景看好的分词方法。 收稿日期:1997年5月26日 作者简介:尹 锋,男,1954年生,湖南大学计算机系毕业,工学硕士。现任湖南省科技信息研究所计算机中心主任,副研究员。主要从事人工智能、计算机网络和查新检索研究,发表论文30余篇,并有多项科研成果。 |