前言
本文分为三部分,第一部分是安装两个中文分词工具包,第二部分是对中文字符串进行分词,第三部分是进一步对中文文本进行分词。
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