1、 1 / 13中文分词实验一、实验目的:目的:了解并掌握基于匹配的分词方法,以及分词效果的评价方法。实验要求:1、 从互联网上查找并构建不低于10万词的词典,构建词典的存储结构;2、选择实现一种机械分词方法(双向最大匹配、双向最小匹配、正向减字最大匹配法等)。3、在不低于1000个文本文件,每个文件大于1000字的文档中进行中文分词测试,记录并分析所选分词算法的准确率、分词速度。预期效果:1 平均准确率达到85% 以上二、实验方案:1. 实验平台系统:win10 软件平台:spyder语言:python2. 算法选择选择正向减字最大匹配法,参照搜索引擎-原理、技术与系统教材第62页的描述,使用
2、 python语言在spyder 软件环境下完成代码的编辑。算法流程图:2 / 13Figure Error! No sequence specified. 正向减字最大匹配算法流程3 / 13Figure Error! No sequence specified. 切词算法流程算法伪代码描述:4 / 133. 实验步骤1) 在网上查找语料和词典文本文件;2) 思考并编写代码构建词典存储结构;3) 编写代码将语料分割为1500个文本文件,每个文件的字数大于1000字;4) 编写分词代码; 5) 思考并编写代码将语料标注为可计算准确率的文本;6) 对测试集和分词结果集进行合并;7) 对分词结果进
3、行统计,计算准确率,召回率及 F值(正确率和召回率的调和平均值);8) 思考总结,分析结论。4. 实验实施我进行了两轮实验,第一轮实验效果比较差,于是仔细思考了原因, 进行了第二轮实验,修改参数,代码,重新分 词以及计算准确率,效果一下子提升了很多。5 / 13实验过程:(1) 语料来源:语料来自SIGHAN的官方主页(http:/sighan.cs.uchicago.edu/),SIGHAN是国际计 算语言学会( ACL)中文语言处理小组的简称,其英文全称为“Special Interest Group for Chinese Language Processing of the Assoc
4、iation for Computational Linguistics”,又可以理解为“SIG汉“或“SIG漢“ 。SIGHAN为我们提供了一个非商业使用(non-commercial)的免费分词语 料库获取途径。我下载的是Bakeoff 2005的中文语料。有 86925行,2368390个词语。语料形式:“没有 孩子的 世界 是 寂寞 的 , 没有 老人 的 世界 是寒冷 的 。”Figure Error! No sequence specified. notepad+对语料文本的统计结果(2) 词典:词典用的是来自网络的有373万多个词语的词典,采用的数据结构为python的一种数据结
5、构集合。6 / 13Figure Error! No sequence specified. notepad+对词典文本的统计结果(3) 分割测试数据集:将原数据分割成1500个文本文件,每个文件的词数大于1000。Figure Error! No sequence specified. 测试数据集分解截图7 / 13Figure Error! No sequence specified. 其中某文件的形式Figure Error! No sequence specified. notepad+对其中一个测试文本的统计结果(4) 编写分词代码:采用python语言和教材上介绍的算法思路,进行编
6、程。(5) 编写代码将语料标注为可计算准确率的文本: 用B代表单词的开始字,E代表结尾的字,BE代表中间的字,如果只有一个字,用E 表示。例如:原数据是: “人们 常 说 生活 是 一 部 教科书”而我将它转化为了如下格式:人 B们 E常 E说 E生 B8 / 13活 E是 E一 E部 E教 B科 BE书 E(6) 进行分词:使用之前编写的分词函数, 载入文本,进行分词,将每个文本结果输出到txt文本。Figure Error! No sequence specified. 分词结果文件9 / 13Figure 9. 测试数据的形式(文本截图)Figure 10. 分词结果(文本截图)用时17
7、 秒左右:Figure 11. 运行时间(7) 对测试集和分词结果集进行合并:将测试集和分词结果集合并是为了进10 / 13行准确率,召回率等的计算。测试集和训练集都是下面的格式:人 B们 E常 E说 E生 B活 E是 E一 E部 E教 B科 BE书 E我将他们合并为下面的格式,第二列为测试集的标注,第三列为训练集的结果:人 B B们 E E常 E E说 E E生 B B活 E E是 E E一 E BE部 E E教 B B科 BE BE书 E E(8) 对分词结果进行统计, 计算准确率P,召回率 R及 F值(正确率和召回率的调和平均值),设提取出的信息条数为C,提取出的正确信息条数为CR, 样本中的信息条数O: