python 结巴分词学习
https://www.toutiao.com/a6643201326710784520/
2019-01-06 10:14:00
结巴分词(自然语言处理之中文分词器)
jieba分词算法使用了基于前缀词典实现高效的词图扫描,生成句子中汉字所有可能生成词情况所构成的有向无环图(DAG), 再采用了动态规划查找最大概率路径,找出基于词频的最大切分组合,对于未登录词,采用了基于汉字成词能力的HMM模型,使用了Viterbi算法。
jieba分词支持三种分词模式:
1. 精确模式, 试图将句子最精确地切开,适合文本分析:
2. 全模式,把句子中所有的可以成词的词语都扫描出来,速度非常快,但是不能解决歧义;
3. 搜索引擎模式,在精确模式的基础上,对长词再词切分,提高召回率,适合用于搜索引擎分词。
一 结巴分词的安装
pip3 install jieba
二 结巴分词的主要功能
1. jieba.cut:该方法接受三个输入参数:参数1:需要分词的字符串; 参数2:cut_all参数用来控制是否采用全模式,默认为精确模式;cut_all=True 全模式cut_all=false 精确(默认)模式参数3:HMM参数用来控制是否适用HMM模型
2. jieba.cut_for_search:该方法接受两个参数:参数1:需要分词的字符串;参数2:是否使用HMM模型,
该方法适用于搜索引擎构建倒排索引的分词,粒度比较细。
3. jieba.cut 以及jieba.cut_for_search
返回的结构都是可以得到的generator(生成器)
4. jieb.lcut 以及 jieba.lcut_for_search
直接返回list
5.jieba.Tokenizer(dictionary=DEFUALT_DICT)
新建自定义分词器,
可用于同时使用不同字典,
jieba.dt为默认分词器,所有全局分词相关函数都是该分词器的映射。
三 结巴分词的三种模式
import jieba
text='赵丽颖主演的正午阳光剧,知否知否应是绿肥红瘦'
1 全模式 cut_all=True
seq_list=jieba.cut(text,cut_all=True)
print(seq_list) #<generator object Tokenizer.cut at 0x0000026EB6F0CD58>
print(list(seq_list))
'''
['赵', '丽', '颖', '主演', '的', '正午', '阳光', '剧', '', '', '知', '否', '知', '否', '应', '是', '绿肥', '绿肥红瘦']
'''
2 精确模式 (默认模式) cut_all =False
# 02精确模式
seq_list=jieba.cut(text,cut_all=False)
print(list(seq_list))
'''
['赵丽颖', '主演', '的', '正午', '阳光', '剧', ',', '知否', '知否', '应', '是', '绿肥红瘦']
'''
3 搜索引擎模式 cut_for_search
seq_list=jieba.cut_for_search(text,)
print(list(seq_list))
'''
['赵丽颖', '主演', '的', '正午', '阳光', '剧', ',', '知否', '知否', '应', '是', '绿肥', '绿肥红瘦']
'''
四 自定义分词器(jieba.Tokenizer)
1 创建词典内容的格式
一个词语占一行(分三部分)
格式: 词语 词频 词性
如:张三 5李四 10 eng
2 自定义词典的导入(load_userdict)
text='赵丽颖主演的正午阳光剧,知否知否应是绿肥红瘦'
# 自定义词典
jieba.load_userdict('自定义词典.txt')
sep_list=jieba.lcut(text)
print('userdict>>>',sep_list)
userdict>>> ['赵丽颖', '主演', '的', '正午', '阳光剧', ',', '知否', '知否', '应是', '绿肥红瘦']
五 利用jieba 进行关键词的抽取
1 基于TF-IDF算法的关键词抽取
详解自然语言处理之TF-IDF模型和python实现
2 python 实现关键提取
jieba.analyse.extract_tags(text,topK=20,withWeight=False,allowPOS=())
'''text:为待提取的文本;topK:返回几个TF/IDF权重最大的关键字,默认值为20;withWeight:是否一并返回关键词权重值,默认False;
'''
jieba.analyse.TFIDF(idf_path=None) #新建tf-idf实例,idf_path为IDF实例
五 使用结巴的词云实例
1 数据准备
文档:
死了都要爱.txt
dream ispossible.txt
图片:(红心.jpg)
# 数据获取
with open('死了都要爱.txt','r',encoding='utf8')as f:text=f.read()
# with open('dream is possible.txt','r',encoding='utf8')as f:
# text=f.read()
#图片获取
mask=np.array(Image.open('红心.jpg'))
2 数据清洗
屏蔽不需要的数据和分词
# 数据清洗
# 屏蔽死了都要爱
STOPWORDS.add('死了都要爱')
sep_list=jieba.lcut(text,cut_all=False)
sep_list=" ".join(sep_list) #转为字符串
自定义画布
wc=WordCloud(font_path=font,#使用的字体库margin=2,mask=mask,#背景图片background_color='white', #背景颜色max_font_size=25,max_words=200,stopwords=STOPWORDS, #屏蔽的内容
)
生成词语,保存图片
wc.generate(text) #制作词云
wc.to_file('新增图片.jpg') #保存到当地文件
3 数据展示
plt.imshow(wc,interpolation='bilinear')
plt.axis('off')
plt.show()
完整代码和效果展示
完整代码
图片一(未分词):
图片二(分词效果)
python 结巴分词学习相关推荐
- 学习笔记(2)Python——结巴分词
结巴分词模块的简单应用 张华平NShort中文分词算法是目前大规模中文分词的主流算法,下面将介绍以其为核心的结巴分词算法.该模块在Python中使用机及其简单.不需要及其繁琐的安装步骤. 结巴分词支持 ...
- python结巴分词去掉停用词、标点符号、虚词_NLP自然语言处理入门-- 文本预处理Pre-processing...
引言 自然语言处理NLP(nature language processing),顾名思义,就是使用计算机对语言文字进行处理的相关技术以及应用.在对文本做数据分析时,我们一大半的时间都会花在文本预处理 ...
- Python 结巴分词(1)分词
利用结巴分词来进行词频的统计,并输出到文件中. 结巴分词github地址:结巴分词 结巴分词的特点: 支持三种分词模式: 精确模式,试图将句子最精确地切开,适合文本分析: 全模式,把句子中所有的可以成 ...
- python结巴分词实例_python 结巴分词(jieba)详解
"结巴"中文分词:做最好的 Python 中文分词组件 "Jieba" (Chinese for "to stutter") Chinese ...
- python 结巴分词(jieba)详解
[转自:https://www.cnblogs.com/jackchen-Net/p/8207009.html] "结巴"中文分词:做最好的 Python 中文分词组件 " ...
- python—结巴分词的原理理解,Hmm中的转移概率矩阵和混淆矩阵。
结巴分词的过程: jieba分词的python 代码 结巴分词的准备工作 开发者首先根据大量的人民日报训练了得到了字典库.和Hmm中的转移概率矩阵和混淆矩阵. 加载字典, 生成trie树 为什么要加载 ...
- python结巴分词代码_python结巴分词SEO的应用详解
本帖最后由 为人生而奋斗 于 2019-10-15 16:19 编辑 结巴分词在SEO中可以应用于分析/提取文章关键词.关键词归类.标题重写.文章伪原创等等方面,用处非常多. 具体结巴分词项目:htt ...
- python结巴分词 每个词一行,python结巴分词词云图
导入结巴分词 from wordcloud import WordCloud import jieba # 词频计算 import jieba.analyse as analyse from scip ...
- python结巴分词
# coding=utf-8 ''' Created on 2018年3月19日 @author: chenkai 结巴分词 支持三种分词模式: 精确模式: 试图将句子最精确地切开,适合文本分析: 全 ...
- python 结巴分词(jieba)学习
来源:http://www.gowhich.com/blog/147?utm_source=tuicool&utm_medium=referral 源码下载的地址:https://github ...
最新文章
- Hibernate连接数据库
- python定制框架知识点_python框架中flask知识点总结
- 飞鸽传书发现这个讲稿对现场
- 多生产者多消费者linux内核,Linux多线程实现“生产者和消费者”
- 基于modelsim-SE的简单仿真流程—上
- 都说 Linux 是吃内存大户,可你知道具体是哪些进程吃掉了吗?
- 浅谈java 之 Map
- Win系统 - NETSH WINSOCK RESET
- VB.NET数据库中插入数据
- GPRS tunnelling protocol GTP协议
- GPU设备架构全面解析(持续更新ing)
- 【随记】Dialog dismiss无法正常关闭问题
- 快捷方式和活动桌面小贴
- python操作word生成目录_Python操作Word批量生成文章
- java蓝桥杯练习 蜜蜂飞舞
- TM4C123系列ARM单片机开发入门介绍
- 窗口分析函数_12_生成累计百分比排名
- linux还原防火墙设置,Linux防火墙设置
- 初识python评课稿_pythonrange函数
- 20 w 新闻数据集分享
热门文章
- 智慧家居·万物互联:我的智能花盆DIY之旅(ESP32)
- 不是吧!你还不懂DHT协议?
- 计算机语言发展ppt,计算机语言的发展.ppt
- layui 表单样式无效
- 0517 libdroid MyDriver2-397 easy_go攻防世界
- 小组作业:学生信息管理系统需求分析
- 小米AI音响的拆解及简要系统分析
- 解决extremeComponents中文按拼音排序问题
- 32位java jre_jre-7u4-windows-i586.exe|java 1.7.0(Java TM 7)JRE7 32位_最火软件站
- 如何编写优秀的单元测试用例