摘 要:为提高医药文献中文分词的准确率,根据医药文献的特点,研究了中文分词的算法.首先介绍了基于字符串匹配的分词方法、基于理解的分词方法、基于统计的分词方法和基于匹配与统计结合分词方法,并在设计思想上对各算法进行了比较.在此基础上,运用C语言,VC6.0平台实现各算法,并对医药文献进行分词实验.实验结果显示,基于字符串匹配的最大正向匹配法取得了较好的性能.
关 键 词:医药文献;中文分词;字符串匹配
中图分类号:TP311文献标识码:A文章编号:1009-3044(2012)17-4138-03
ResearchofChineseWordSegmentationonMedicalDocuments
ZHOUJian-xin,ZHANGQi-rui
(CollegeofMedicalInformationEngineering,GuangdongPharmaceuticalUniversity,Guangzhou510006,China)
Abstract:ToimprovetheaccuracyofChinesewordsegmentationonmedicaldocuments,theChinesesegmentationmethodsbasedonthecharacteristicsofthemedicalliteraturearestudied.Firstly,thewordsegmentationalgorithmsbasedonstringmatching,basedonsemantic,basedonstatisticsandbasedonbiningstringmatchingwithstatisticsarerespectivelyintroduced.Then,theparisonsofalgorithmideasaremadeforvariousalgorithms.ThesystemisrealizedwithClanguageonVC6.0platform.TheexperimentresultsshowthattheForwardMaximumMatchingalgorithmbasedonstringmatchingmakesbetterperformance.
Keywords:medicaldocuments,Chinesewordsegmentation,stringmatching
随着经济的迅速发展,地球环境不断地遭受着破坏.然而,疾病也由此不断地出现.为了避免更多疾病的发生,许多研究者越来越重视研究医药方面的知识,这中间产生了大量的中文信息资源,中文信息处理就显得极为重要.
1中文分词算法
1.1基于字符串匹配分词方法
机械分词方法又叫基于字符串匹配的分词方法,它是按照一定的策略将待分析的汉字串与一个“充分大的”机器词典中的词条进行区配,若在词典中找到某个字符串,则匹配成功(识别出一个词)[1].按照扫描方向的不同,可以分为正向匹配和逆向匹配;按照不同长度优先匹配的情况,可以分为最大(最长)匹配和最小(最短)匹配;按照是否与词性标注过程相结合,又可以分为单纯分词方法和分词与标注相结合的一体化方法[2].
有关论文范文主题研究: | 关于数据库的文章 | 大学生适用: | 本科论文、高校毕业论文 |
---|---|---|---|
相关参考文献下载数量: | 50 | 写作解决问题: | 怎么写 |
毕业论文开题报告: | 论文模板、论文设计 | 职称论文适用: | 期刊目录、职称评初级 |
所属大学生专业类别: | 怎么写 | 论文题目推荐度: | 优秀选题 |
1.1.1正向最大匹配法
基本思想:选取固定长个汉字的符号串作为最大符号串,最大符号串为9,把最大符号串与词典中的单词条目相匹配,如果不能匹配,就去掉一个汉字继续匹配,直到在词典中找到相应的单词为止.匹配方向是从左向右,减字方向是从右向左.
算法流程如下:
第1步初始化字符串并设置最大符号串长度为9;
检测设P1为待分析字符串,初始值为空;P2为分词结果字符串,初始值为空;M为候选子串,初始值为空;
第2步若P1不为空,从P1左边取出候选子串M;
若P1为空,输出P2作为分词结果;
第3步查词典,若M在词表中,将M加入到P2中,并将M从P1中去掉,转第2步;
若M不在词表中,将M的最右边一个字去掉,转第3步;
注:为了更好地理解,文字算法流程解释里面设定P1、P2、M分别代替分析字符串、分词结果字符串,候选子串这三个值.
1.1.2逆向最大匹配法
基本思想:选取固定长个汉字的符号串作为最大符号串,最大符号串为9,把最大符号串与词典中的单词条目相匹配,如果不能匹配,就去掉一个汉字继续匹配,直到在词典中找到相应的单词为止.匹配方向是从右向左,减字方向是从左向右.
算法流程与正向最大匹配法相似,只是匹配方向为从右向左.
1.1.3双向匹配法
基本思想:先确定切分点,然后先进行最大正向匹配的方法分一次,然后再用最大逆向匹配的方法分一次,直到分到切分点为止.首先匹配方向是从左向右,减字方向是从右向左,然后匹配方向是从左向右,减字方向是从右向左.总的匹配方向是文本的头跟尾向切分点方向匹配.
算法流程如下:
第1步①初始化字符串并设置最大符号串长度为9;
②找出切分点,切分点等于文章的字符数/2,对切分点进行奇偶处理,再对切分点后的词进行最大正向匹配;
③若匹配成功,则Px为切分点分词结果字符串,确定切分点,转第1步的④;
若匹配失败,则推前一个字符,再进行最大正向匹配,转第1步的②;
④检测设P1P1’为待分析字符串,初始值为空;
P2P2’为分词结果字符串,初始值为空;
MM’为候选子串,初始值为空;
第2步若P1不为空,从P1左边取出候选子串M;
若P1为空,输出P2作为分词结果;
第3步若M在词表中,将M加入到P2中,并将M从P1中去掉,转去第2步,第2步完毕后再转第4步;
若M不在词表中,将M的最左边一个字去掉,转去第3步;
第4步若P1’不为空,从P1’右边取出候选子串M’;
若P1’为空,输出P2’作为分词结果;
第5步若M’在词表中,将M’加入到P2’中,并将M’从P1’中去掉,先转第4步,第4步完毕后再转第2步;若M’不在词表中,将M’的最左边一个字去掉,转第5步.
1.2基于统计的分词方法
基本思想:主要是先取待测字符串,然后统计每个字符串的词频从而确定词频高的字符串作为词,然后再匹配.
算法流程如下:
第1步初始化字符串并设置词汇的最大字符串长度为5;
第2步从首个字符开始取词;
第3步按字符串长度2、3、4、5,分别取词存放在统计词库(数据库)中,统计词出现的频率,计数;
若长度为2的字符串为空,转去第5步;
若长度为2的字符串不为空,转去第4步;
第4步重新遍历原文章,取下一个字符,转去第3步;
第5步重新遍历原文章,以数据库统计后的词进行匹配;
1.3基于匹配与统计结合的方法
在使用字符串匹配的方法过程中,准确性高,但匹配所需要的时间由词典的词汇量多少决定,因此,在词典里面的词汇量比较大的时候,用的时间比较多.而在基于统计的分词方法中不需要通过匹配词典去分词,只需要统计文章词语的词频,因此文章字数越多,准确性越高,所用的时间比较少.因此该文尝试把两种分词方法进行结合.
基本思想:主要是先取待测字符串,然后统计每个字符串的词频从而确定词频高的字符串作为词,然后再匹配(前面是跟统计的方法一样的),文章匹配时是利用数据库里面原有的词典与统计后的统计词典结合来匹配,匹配过程中遇到原有的词典与统计词典相矛盾时,优先原有的词典.
算法流程如下:
第1步初始化字符串并设置词汇的最大字符串长度为5;
第2步从首个字符开始取词;
第3步按字符串长度2、3、4、5,分别取词存放在统计词库(数据库)中,统计词出现的频率,计数;
若长度为2的字符串为空,转去第5步;
若长度为2的字符串不为空,转去第4步;
第4步重新遍历原文章,取下一个字符,转去第3步;
第5步重新遍历原文章,以最大正向匹配的方法根据数据库统计后的词与词典相结合的词库进行匹配,匹配时优先原本词典里的词库.
2测试结果
该文使用C语言,在VC6.0平台上,实现了上述五种算法,并在搜集的小型医药文献数据集上做了实验,实验结果如下:1)测试文档一的实验结果如图1所示,实验结果显示:
在处理同一篇文章的条件下,双向切分算法所需要的平均时间最少.
在处理同一篇文章的条件下,最大正向匹配算法和双向切分算法的正确率最高.
在此测试中,初步认为双向切分算法是最适合医药文献分词.
图1测试文档一实验结果
2)测试文档二的实验结果如图2所示,实验结果显示:
在处理同一篇文章的条件下,最大正向匹配法所需要的平均时间最少;
在处理同一篇文章的条件下,最大正向匹配算法的正确率最高;
在此测试中,初步认为最大正向匹配算法是最适合医药文献分词;
3)测试文档三的实验结果如图3所示,实验结果显示:
①在处理同一篇文章的条件下,双向切分算法所需要的平均时间最少;
②在处理同一篇文章的条件下,最大正向匹配算法的正确率最高;
③在此测试中,最大正向匹配算法跟双向切分算法都是比较适合医药文献的中文分词;
图2测试文档二实验结果
图3测试文档三实验结果
4)实验结果汇总如图4所示,实验结果分析如图5所示.从实验结果中可以看出:基于匹配与统计结合分词的时间最长;基于统计算法分词的正确率最低;在基于字符串匹配中,虽然最大正向匹配所用的时间略长于最大逆向匹配算法跟双向切分算法,但是它的正确率最高,实验结果显示,最大正向匹配算法最适合医药文献的分词.
图4实验结果汇总
图5实验结果分析
3结论
通过算法的设计、实现、测试与比较,分析数据,得出结论:最适合医药文献中文分词算法是最大正向匹配算法.