python3.6实现中文分词统计-自然语言处理小项目

前言

    本文分为三部分,第一部分是安装两个中文分词工具包,第二部分是对中文字符串进行分词,第三部分是进一步对中文文本进行分词。

Part 1 安装中文分词工具
背景:已经安装了python3.6,设置好环境变量,安装了pip模块
界面:进入windows的管理员命令模式
pip install thulac        #安装清华大学的thulac中文词法分析包
pip install jieba          #安装最好的中文词法分析包jieba

Part 2 对字符串分词
import jieba;
seg_list = jieba.cut( "我来到北京清华大学" , cut_all=False)
    # jieba文件夹下的__init__.py中有个cut的函数,它是控制整个jieba分词包的主函数。 def cut(sentence,cut_all=False,HMM=True), sentence是需要分词的句子样本;cut_all是分词的模式,jieba分词有全模式(true)和精准模式(false)两种;HMM就是隐马尔可夫链,这个是在分词的理论模型中用到的,默认是开启的。
print  "/ " .join(seg_list)
# str.join(sequence), 用于将sequence序列中的元素以指定的字符str连接生成一个新的字符串。

Part 3  对文本文件分词
#! python3
# -*- coding: utf-8 -*-
import jieba    #导入结巴模块
from collections import Counter     #导入collections模块的Counter类

#对文本文件txt进行分词,并统计词频,再显示结果
def get_words(txt):
#S1 对文本进行分词
    list = jieba.cut(txt)   #结巴模块的cut函数用于中文分词
#S2 统计词频
    c = Counter()   #创建空的Counter计数器,关于counter的知识可参考本博客的另一篇博文,位于python文件夹内
    for x in list:  #分词结果中循环提取词语
        if len(x) > 1 and x != '\r\n':  #略掉只有一个字的词语和回车、换行
            c[x] += 1   #统计每个单词的计数值
#S3 将结果可视化
    print('常用词频统计结果')
    for(k,v) in c.most_common(100):     #只取出现值最高的前100个词语
        print('%s%s %s  %d' % ('  '*(5-len(k)), k, '*'*int(v/3), v))    #前5个位置打印空格或词语,有右对齐的效果

#读取某文本文件(默认uft-8格式)
with open('C:\\Python36\\test.txt','r') as f :
    txt = f.read()
#对该文件进行分词,并统计词频,显示结果
get_words(txt)


参考:
https://blog.csdn.net/puqutogether/article/details/40740473        Jieba分词包(一)——解析主函数cut
http://www.runoob.com/python/att-string-join.html                                Python join()方法
https://segmentfault.com/a/1190000011769662                            python 实现中文分词统计
https://blog.csdn.net/onestab/article/details/78307765                  Python jieba 中文分词与词频统计
http://thulac.thunlp.org                                                                    THULAC:一个高效的中文词法分析工具包
https://github.com/fxsjy/jieba jieba 

猜你喜欢

转载自blog.csdn.net/yeziand01/article/details/80622814
今日推荐