zoukankan      html  css  js  c++  java
  • Python 结巴分词

    今天的任务是对txt文本进行分词,有幸了解到"结巴"中文分词,其愿景是做最好的Python中文分词组件。有兴趣的朋友请点这里。

    jieba支持三种分词模式:

      *精确模式,试图将句子最精确地切开,适合文本分析;

      *全模式,把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义;

      *搜索引擎模式,在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。

    主要采用以下算法:

      *基于Trie树结构实现高效的词图扫描,生成句子中汉字所有可能成词情况所构成的有向无环图(DAG)

      *采用了动态规划查找最大概率路径, 找出基于词频的最大切分组合

      *对于未登录词,采用了基于汉字成词能力的HMM模型,使用了Viterbi算法

    下面是我做的小尝试,对txt文本进行分词,并对获取的分词进行计数,最后将结果写入result.txt中。代码如下:

    # -*- coding: utf-8 -*-
    #----------------------------------------------------- 
    #   功能:将txt文本进行分词处理
    #   作者:chenbjin 
    #   日期:2014-07-14
    #   语言:Python 2.7.6  
    #   环境:linux(ubuntu)
    #        jieba(Must be installed)
    #   使用:python fenci.py file.txt
    #-----------------------------------------------------
    import jieba
    import sys
    reload(sys)
    sys.setdefaultencoding('utf8')
    
    def fenci(argv) :
        filename = argv[1]
        f = open(filename,'r+')
        file_list = f.read()
        f.close()
    
        seg_list = jieba.cut(file_list,cut_all=True)
    
        tf={}
        for seg in seg_list :
            #print seg
            seg = ''.join(seg.split())
            if (seg != '' and seg != "
    " and seg != "
    
    ") :
                if seg in tf :
                    tf[seg] += 1
                else :
                    tf[seg] = 1
    
        f = open("result.txt","w+")
        for item in tf:
            #print item
            f.write(item+"  "+str(tf[item])+"
    ")
        f.close()
    
    if __name__ == '__main__' : fenci(sys.argv)

     参考资料:

      1.结巴中文分词:https://github.com/fxsjy/jieba

      2.Demo of jieba:http://jiebademo.ap01.aws.af.cm/

  • 相关阅读:
    nginx 配置文件简介
    nginx 二进制安装
    nginx 简介  http://nginx.org
    全栈https
    运维工程师如果将web服务http专变为https
    12个JQuery小贴士
    AccessHelper 需修改
    MysqlHelper 需要重写
    Func<T,TResult>泛型委托
    DataConvertJson
  • 原文地址:https://www.cnblogs.com/chenbjin/p/3843800.html
Copyright © 2011-2022 走看看