中文分词实验总结

汉语分词实验总结

目录

  1. 正向最大匹配实现
  2. 逆向最大匹配实现
  3. 算法评测标准
  4. 参考资料

1. 正向最大匹配实现(Forward Maximum Matching,FMM)

# !/usr/bin/python
# -*- coding: utf-8 -*-

def fmm(dictionary, sentence, max_len):
    segmentation = list()
    beg = 0
    for i in range(1, len(sentence) + 1):
        end = i
        word = sentence[beg:end]
        if word in dictionary or end - beg > max_len:
            segmentation.append(word)
            beg = i
    return segmentation

if __name__ == "__main__":
    dictionary = ["我", "吃"]
    sentence = "我吃苹果"
    print(fmm(dictionary, sentence, 1))

2. 逆向最大匹配实现(Backward Maximum Matching,BMM)

# !/usr/bin/python
# -*- coding: utf-8 -*-

def bmm(dictionary, sentence, max_len):
    segmentation = list()
    end = len(sentence)
    for i in range(len(sentence) - 1, -1, -1):
        beg = i
        word = sentence[beg:end]
        if word in dictionary or end - beg > max_len:
            segmentation.insert(0, word)
            end = i
    return segmentation

if __name__ == "__main__":
    dictionary = ["我", "吃"]
    sentence = "我吃苹果"
    print(bmm(dictionary, sentence, 1))

3. 算法评测标准

\[准确率 = \frac{正确识别的个体总数}{识别出的个体总数} \\ 召回率 = \frac{正确识别的个体总数}{测试集中存在的个体总数} \]

不妨举这样一个例子\(^{[1]}\)
某池塘有1400条鲤鱼,300只虾,300只鳖。现在以捕鲤鱼为目的。Seaeagle撒一大网,逮着了700条鲤鱼,200只虾,100只鳖。那么,这些指标分别如下:

\[正确率 = \frac{700}{700 + 200 + 100} = 70\% \\ 召回率 = \frac{700}{1400} = 50\% \\ F-measure = \frac{70\% * 50\% * 2}{70\% + 50\%} = 58.3\% \]

不妨看看如果Seaeagle把池子里的所有的鲤鱼、虾和鳖都一网打尽,这些指标又有何变化:

\[正确率 = \frac{1400}{1400 + 300 + 300} = 70\% \\ 召回率 = \frac{1400}{1400} = 100\% \\ F-measure = \frac{70\% * 100\% * 2 }{70\% + 100\%} = 82.35\% \]

由此可见,正确率是评估捕获的成果中目标成果所占得比例;
召回率,顾名思义,就是从关注领域中,召回目标类别的比例;
F值,则是综合这二者指标的评估指标,用于综合反映整体的指标。

4. 中文分词评价标准

查准率 (Precision, P ): 测试结果中正确结果的个数占系统所有输出结果的比例。假设系统输出N 个,其中,正确的结果为n个,那么,

\[P = \frac{n}{N} \]

查全率 (Recall, R ): 测试结果中正确结果的个数占标准答案总数的比例。假设系统输出N 个结果,其中,正确的结果为n个,而标准答案的个数为M 个,那么,

\[R = \frac{n}{M} \]

F-1值 (F-Measure): 正确率与找回率的综合值。计算公式为:

\[F1 = \frac{2\times P\times R}{P+R} \]

参考资料

[1] 正确率、召回率和F值, ChinaUnix博客, http://blog.chinaunix.net/uid-23028928-id-2567754.html

posted @ 2017-05-24 22:01  健康平安快乐  阅读(916)  评论(0编辑  收藏  举报