forked from senpai-a/chinese-word-segmentation
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path说明文档.txt
67 lines (53 loc) · 3 KB
/
说明文档.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
任务定义:
使用前向最大匹配和后向最大匹配算法对连续中文文本进行分词。字典来自语料。
编写四个程序:
seg.py:
输入一行一词的字典和中文文本。使用前向最大匹配和后向最大匹配进行分词,输出一行一个词的分词结果。
de-seg.py:
输入一行一词的分词结果,输出未分词的中文文本。这个程序用于生成测试数据。
dict.py:
输入按空格分开,有形如/xx的词性标注,形如{xxx}的注音标注等的语料,提取中文单词,去重,输出一行一词的字典。
comp.py:
输入一行一词的正确分词结果和带评测分词结果,统计带评测结果的正确结果数,计算准确率、召回率和F-测度。
程序使用方法:
运行环境:windows下安装python3.6.3,将python.exe所在路径添加到操作系统环境变量Path中。
seg.py:
>python seg.py 字典文件名 需要分词的中文文本文件名
将显示工作进度,完成后显示前向最大匹配和后向最大匹配得到的结果词数。前向最大匹配的结果将保存在foreward.txt,后向最大匹配的结果保存在backward.txt.
de-seg.py:
>python de-seg.py 输入文件名 输出文件名
将一行一词的输入文件转换成连续文本输出。
dict.py:
>python dict.py 输入文件名 输出文件名
输入文件为按空格分开,有形如/xx的词性标注,形如{xxx}的注音标注等的语料,输出文件名指定的文件将保存去重后的字典。另外输出correct_seg_full.txt为去掉标注后一行一词的文件,也就是原语料的正确分词。
comp.py:
>python comp.py 正确结果文件 待评测结果文件
输入一行一词的正确分词结果和带评测分词结果,统计带评测结果的正确结果数,计算准确率、召回率和F-测度。
性能评估:
从语料的第20267行"银行信贷莫忘小企"开始,将语料分割为两个文件。1-20266行(test_dict_.txt)用于训练词典,20267-22837行(test_in_.txt)用于测试。
>python dict.py test_dict_.txt test_dict.txt
得到test_dict.txt为字典
>python dict.py test_in_.txt 1.txt
>python de-seg.py correct_seg_full.txt test_in.txt
得到test_in.txt为测试用数据
>python seg.py test_dict.txt test_in.txt
测试结果:前向最大匹配 118191个词,后向最大匹配 118187个词
计算准确率、召回率和F-测度:
>python comp.py correct_seg_full.txt foreward.txt
>python comp.py correct_seg_full.txt backward.txt
结果:
前向最大匹配:
正确结果个数:106038
全部输出结果个数:118192
正确答案个数:113371
准确率P= 0.897
召回率R= 0.935
F测度= 0.916
后向最大匹配:
正确结果个数:106220
全部输出结果个数:118188
正确答案个数:113371
准确率P= 0.899
召回率R= 0.937
F测度= 0.917
可以看到,后向最大匹配法在这个测试用例中,分词数、准确率、召回率和F-测度都小胜前向最大匹配法。