zoukankan      html  css  js  c++  java
  • 中文分词实验总结

    汉语分词实验总结

    目录

    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 imes P imes R}{P+R} ]

    参考资料

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

  • 相关阅读:
    FZU 1894 志愿者选拔
    POJ 2823 Sliding Window
    POJ 3038 Flying Right
    xStream 的简单使用 xml to bean
    欧拉函数
    POJ题目分类
    POJ1039 Pipe
    linux进程间通信之消息队列
    欧几里得GCD及扩展
    win7的vmware中安装ubuntu 13.04看不到共享目录
  • 原文地址:https://www.cnblogs.com/fengyubo/p/6770189.html
Copyright © 2011-2022 走看看