您的位置:首页 > 编程语言 > Python开发

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

2018-06-08 14:33 218 查看
版权声明:可以 https://blog.csdn.net/yeziand01/article/details/80622814

前言

    本文分为三部分,第一部分是安装两个中文分词工具包,第二部分是对中文字符串进行分词,第三部分是进一步对中文文本进行分词。
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分词包(一)——解析主函数cuthttp://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  阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: