自然语言理解大作业指南中文的分词-词性标注系统赵海上海交通大学计算机科学与工程系zhaohai@cs.sjtu.edu.cn2目标•根据提供的训练语料,训练一个或两个模型•在此获得的模型下,依据某个解码算法能对于输入的中文文本进行词切分和词性标注3格式•输入的训练文件格式举例,由以下类似格式的各行构成的文本文件:–中国/NR进出口/NN银行/NN与/CC中国/NR银行/NN加强/VV合作/NN•输入的测试文件格式–中国进出口银行与中国银行加强合作•要求训练出的模型能够在适当的算法支撑下对以上的测试输入进行切分并且标注词性,输出的各式和训练文件相同•所有提交的系统只接受命令行格式的输入和输入,推荐命令行格式:•Training:–Your_program_traininput.train.fileoutput.model•Test–Your_program_testoutput.modelinput.testoutput.test4评估度量•使用比较标准答案和测试输出的f-score判定你的输出成绩F=2RP/(R+P)R=测试输出中正确的词次数/正确答案中的词次数P=测试输出中正确的词次数/测试输出中的词次数只有切分和词性都对才能算完全正确一次如果切分对,但是词性错,算正确0.5次只要切分错,则完全干不能得分5评估度量•假设我们拥有一个标准答案的句子–中国/NR进出口/NN银行/NN与/CC中国/NR银行/NN加强/VV合作/NN•你的程序对应输出–中国/NR进出/NN口/NN银行/NN与/CC中国/NN银行/NN加强/VV合作/NN•则–测试输出中正确的词个数=6.5(第二个中国切分正确,但是词性错误)–测试输出中的词个数=9–正确答案中的词个数=8•所以–R=6.5/8–P=6.5/9–F=2RP/(R+P)=76.47%6日程表•本指南发布的同时,训练集提供下载•在本指南发布1个月内,各组完成模型的训练和解码器的编写调试•在提交截止时间前3天内提供测试文件7提交•至少需要提交如下4部分内容(请压缩打包上传,并命名为提交组编号):–你的系统的完整源代码,和至少一个平台的可执行文件–文档1:说明你的代码结构、编译选项、环境设置以及运行设置–文档2:说明的系统的工作原理,包括分类器或者其他机器学习工具的选择、特征选取,解码算法等等–处理好的测试文件,遵循和训练集同样的格式8分组和评分•自由分组,每组限1-6人–1-2人将获得110%的得分–2-5人将获得100%的得分–6人将获得90%的得分•不能在规定时间前提供分组信息的同学将由助教分配•每组的贡献分配由组员协商决定,出现争议的时候由助教裁判。•不提供贡献比例的分组视同该组每位成员贡献相同。9分组和评分•给出最高f-score得分的组将获得本项作业满分100,最低分的组将获得60分。其它组按照一个线性插值得到相应的分数。•可以使用其它的开源工具(但是要在文档中注明!),不影响你的评分•编译错误或者不能通过、文档不完整不清晰和格式错误将导致额外的分数损失10注意•所提供的输出的测试文件和所提供的程序输出不匹配的小组成绩为0分11提示•将训练集拆开少数部分出来作为开发集,评估你自己系统的性能•自己写一个打分程序用于当前的开发12技术指南•回忆课堂上提到的关于这两个处理任务的解决策略。重新看看相关的课件。•你可以采取两个策略完成这个系统–层次模型:训练两个模型,第一个模型用来分词,第二个模型用来在第一个模型的输出基础上进行词性标记–联合学习模型:在一个模型中一次性完成分词和词性标注•考虑这篇论文:~jiangwenbin/papers/error_correction.pdf13技术指南•互联网上有现成的分词和词性标注工具,你可以考虑使用这些工具,在一些开源工具的基础上完成你的系统•如果你使用了已有的开源系统,你需要在文档中注明,提供作者和互联网链接地址•需要注意的是:要求提供一个可训练的模型,并且严格符合所提供的训练集的语言规范。如果你不加修改地直接使用一个其它切分或者词性标准的工具来进行处理,将很可能导致灾难性的结果14技术指南:分词•假定你使用两部模型,第一步完成分词•建议的步骤如下–参考我的论文•~zhaohai/pubs/CSB-SIGHAN5_20071015-rev.pdf–建议的学习模型:CRFs–使用来自TakuKudo的CRF++–问题形式化方法和特征集均可参考上述论文15技术指南:词性标注•建议的学习模型–HMM或者–最大熵Markov模型•解码算法–Viterbi算法•参考论文––该论文为了最佳性能,提到使用两遍解码,为了效率,你可以只考虑一遍解码•提示:互联网上有很多可训练的词性标注工具,你可以找到并通过格式修改来使用。