Download presentation
Presentation is loading. Please wait.
1
汉语分词:最大匹配方法 (6学时) 陈文亮 2016年3月14日
2
UTF-8编码 UTF-8是不定长的,根据左侧位1的个数来决定占用了几个字节,中文一般占 2-4个字节
0xxxxxxx占1个字节 110xxxxx 10xxxxxx占2个字节 1110xxxx 10xxxxxx 10xxxxxx占3个字节 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx占4个字节
3
1.分词任务 中文分词的目的是将汉字序列切分为词序列 举例说明: 输入句子:他是研究生物化学的。
可能的分词:他 是 研究生 物化 学 的 。 他 是 研究生 物 化学 的 。 他 是 研究 生物 化学 的 。 合理答案:他 是 研究 生物 化学 的 。
4
2.最大匹配算法 从左到右寻找词的最大匹配(每次都从字典中贪心的找一个最长的词)
我们有一个词典,用于存放所有可能的词语,即除了单字,分词结果中 的每个词均要在词典中出现。 文件的格式: 词总个数\t词的最大长度 word1 word2 … 如果你打开乱码…… UTF8文件记事本下显示乱码,可以在浏览器(或其他高级编辑器)中打开
5
2.最大匹配算法 从当前位置开始,向右截取最大长度,组成当前词; 和字典中的词逐一进行匹配; 若匹配成功,则进行下次匹配,下次匹配的当前位置则为这次词后面的 那个字。 如果未能匹配,就缩短长度(长度减一)重新截取,直到当前词与词典 中的词匹配或者当前词是单字;
6
2.最大匹配算法 举例: 给定句子:我是中国人 字典:中国、中国人 指定:词的最大长度m=3
7
2.最大匹配算法 句子:我是中国人 第一轮: 第一次:"我是中"是选取的词,在词典中未找到匹配项
第二次:"我是"是选取的词,在词典中未找到匹配项 第三次:"我"是选取的词,是单字,匹配成功
8
2.最大匹配算法 句子:我 是中国人 第二轮: 第一次:"是中国"是选取的词,在词典中未找到匹配项
第二次:"是中"是选取的词,在词典中未找到匹配项 第三次:"是"是选取的词,是单字,匹配成功
9
2.最大匹配算法 句子:我 是 中国人 第三轮: 第一次:"中国人"是选取的词,在词典中找到匹配项,匹配成功
至此,短句中所有字匹配结束,该短句分词结束。
10
3.分词算法评价 给定人工标注的分词答案,评价某一算法给出的结果。 正确率(Precision) =正确识别的个体总数 / 识别出的个体总数
召回率(Recall) = 正确识别的个体总数 / 测试集中存在的个体总数 F值 = 正确率 * 召回率 * 2 / (正确率 + 召回率) 思考:评价程序应该怎么写?
11
3.分词算法评价 例子: 句子:我是中国人 分词:我是 中国人 答案:我 是 中国人 识别出的个体总数:2 正确识别的个体总数:1
识别出的个体总数: 正确识别的个体总数:1 测试集中存在的个体总数:3 正确识别的个体总数:1 正确率(Precision) = 1/2 = 50.00% 召回率(Recall) = 1/3 = 33.33% F值 = (1/2) * (1/3) * 2 / (1/2 + 1/3) = 40.00%
12
4.语料数据格式 corpus.sentence.txt格式
13
4.语料数据格式 corpus.answer.txt格式
14
5.编程作业 要求:编程平台不限(windows、linux),编程语言不限(C、 C++)
任务:使用最大匹配算法、字典文件(corpus.dict.txt),对语料 (corpus.sentence.txt)进行分词 --将分词的结果输出到文件corpus.out.txt中; --对比corpus.answer.txt和corpus.out.txt,给出算法的P/R/F指标 输出:一个corpus.out.txt文件(格式参照corpus.answer.txt) P/R/F指标(格式类似于:Precision = 36 / 100 = 36.00%)
Similar presentations