python3 jieba分词
一.jieba库用于分词,https://github.com/fxsjy/jieba
二.分词:分词精细:全局(文本分析)<精确(快速成词)<搜素(搜素引擎分词)
#分词
str=r'今天我们中出了一个叛徒,不想领导领导的领导不是好领导'
a=jieba.cut(str,cut_all=True,HMM=False)
#分词(字符串,是否采用全局模式(默认False精确模式),是否使用HMM模式(默认True))
print(a)#返回可迭代的生成器
print(','.join(a)) b=jieba.lcut(str)#lcut_for_search直接返回列表
print(b) print(jieba.lcut_for_search(str, HMM=True))#搜索模式
---------------------------------------------------------
Building prefix dict from the default dictionary ...
<generator object Tokenizer.cut at 0x0368E8A0>
Loading model from cache C:\Users\11373\AppData\Local\Temp\jieba.cache
今天,我们,中出,了,一个,叛徒,,,不想,领导,领导,的,领导,不是,好,领导
Loading model cost 0.784 seconds.
['今天', '我们', '中出', '了', '一个', '叛徒', ',', '不想', '领导', '领导', '的', '领导', '不是', '好', '领导']
Prefix dict has been built succesfully.
['今天', '我们', '中出', '了', '一个', '叛徒', ',', '不想', '领导', '领导', '的', '领导', '不是', '好', '领导']
分词
三.导入用户字典
#导入用户的字典
#词典格式:一个词占一行;每一行分三部分:词语、词频(可省略)、词性(可省略),用空格隔开,顺序不可颠倒。
#file_name 若为路径或二进制方式打开的文件,则文件必须为 UTF-8 编码
jieba.load_userdict('dict.txt')
print(jieba.lcut(str))
--------------------------------------------------------
['今天', '我们', '中出了', '一个', '叛徒', ',', '不想', '领导领导', '的', '领导', '不是', '好', '领导']
导入用户字典
中出了
领导领导
dict.txt
四.实时操作字典
jieba.add_word('一个叛徒')#实时在字典中添加某个词
print(jieba.lcut(str))
jieba.del_word('领导')#删除字典的某个词
print(jieba.lcut(str))
jieba.suggest_freq(('一个','叛徒'),True)#可调节单个词语的词频,使其能(或不能)被分出来
print(jieba.lcut(str))
jieba.suggest_freq(('中','出'),True)
print(jieba.lcut(str))#自动计算的词频在使用 HMM 新词发现功能时可能无效。
print(jieba.lcut(str,HMM=False))#自动计算的词频在使用 HMM 新词发现功能时可能无效。
----------------------------------------------------------------------
['今天', '我们', '中出', '了', '一个叛徒', ',', '不想', '领导', '领导', '的', '领导', '不是', '好', '领导']
Loading model cost 0.751 seconds.
Prefix dict has been built succesfully.
['今天', '我们', '中出', '了', '一个叛徒', ',', '不想', '领', '导', '领', '导', '的', '领', '导', '不是', '好', '领', '导']
['今天', '我们', '中出', '了', '一个', '叛徒', ',', '不想', '领', '导', '领', '导', '的', '领', '导', '不是', '好', '领', '导']
['今天', '我们', '中出', '了', '一个', '叛徒', ',', '不想', '领', '导', '领', '导', '的', '领', '导', '不是', '好', '领', '导']
['今天', '我们', '中', '出', '了', '一个', '叛徒', ',', '不想', '领', '导', '领', '导', '的', '领', '导', '不是', '好', '领', '导']
操作字典
五.关键字提取
import jieba.analyse str='今天我们中出了一个叛徒,不想领导领导的领导不是好领导' #关键字提取
a=jieba.analyse.extract_tags(str, topK=20, withWeight=False, allowPOS=())
# (文本,为返回几个 TF/IDF 权重最大的关键词,默认值为 20,
# 为是否一并返回关键词权重值,默认值为 False,仅包括指定词性的词,默认值为空,即不筛选)
print(a) #基于 TextRank 算法的关键词抽取
# 1.将待抽取关键词的文本进行分词
# 2.以固定窗口大小(默认为5,通过span属性调整),词之间的共现关系,构建图
# 3.计算图中节点的PageRank,注意是无向带权图
b=jieba.analyse.textrank(str, topK=20, withWeight=True, allowPOS=('n','nr','ns'))
print(b)
-------------------------------------------------------------------------
['领导', '中出', '叛徒', '不想', '今天', '不是', '我们', '一个']
[('领导', 1.0), ('叛徒', 0.2510095552068219)]
关键字提取
六.其他
import jieba.posseg as pseg
import jieba
str='今天我们中出了一个叛徒,不想领导领导的领导不是好领导'
print(pseg.lcut(str))#词性标注 #并行分词,不支持windows
# jieba.enable_parallel(2)# 开启并行分词模式,参数为并发执行的进程数
# jieba.disable_parallel()# 关闭并行分词模式 #Tokenize:返回词语在原文的起止位置
result = jieba.tokenize(str,mode='search')#输入参数只接受 unicode
for i in result:
print(i)
---------------------------------------------------------------------
[pair('今天', 't'), pair('我们', 'r'), pair('中', 'f'), pair('出', 'v'), pair('了', 'ul'), pair('一个', 'm'), pair('叛徒', 'n'), pair(',', 'x'), pair('不想', 'v'), pair('领导', 'n'), pair('领导', 'n'), pair('的', 'uj'), pair('领导', 'n'), pair('不是', 'c'), pair('好', 'a'), pair('领导', 'n')]
('今天', 0, 2)
('我们', 2, 4)
('中出', 4, 6)
('了', 6, 7)
('一个', 7, 9)
('叛徒', 9, 11)
(',', 11, 12)
('不想', 12, 14)
('领导', 14, 16)
('领导', 16, 18)
('的', 18, 19)
('领导', 19, 21)
('不是', 21, 23)
('好', 23, 24)
('领导', 24, 26)
其他
python3 jieba分词的更多相关文章
- 自然语言处理之中文分词器-jieba分词器详解及python实战
(转https://blog.csdn.net/gzmfxy/article/details/78994396) 中文分词是中文文本处理的一个基础步骤,也是中文人机自然语言交互的基础模块,在进行中文自 ...
- python jieba分词(添加停用词,用户字典 取词频
中文分词一般使用jieba分词 1.安装 pip install jieba 2.大致了解jieba分词 包括jieba分词的3种模式 全模式 import jieba seg_list = jieb ...
- widows下jieba分词的安装
在切词的时候使用到jieba分词器,安装如下: 切入到结巴包,执行 python setup.py install 安装后,可以直接在代码中引用: import jieba
- 【原】关于使用jieba分词+PyInstaller进行打包时出现的一些问题的解决方法
错误现象: 最近在做一个小项目,在Python中使用了jieba分词,感觉非常简洁方便.在Python端进行调试的时候没有任何问题,使用PyInstaller打包成exe文件后,就会报错: 错误原因分 ...
- Lucene.net(4.8.0) 学习问题记录五: JIEba分词和Lucene的结合,以及对分词器的思考
前言:目前自己在做使用Lucene.net和PanGu分词实现全文检索的工作,不过自己是把别人做好的项目进行迁移.因为项目整体要迁移到ASP.NET Core 2.0版本,而Lucene使用的版本是3 ...
- python结巴(jieba)分词
python结巴(jieba)分词 一.特点 1.支持三种分词模式: (1)精确模式:试图将句子最精确的切开,适合文本分析. (2)全模式:把句子中所有可以成词的词语都扫描出来,速度非常快,但是不能解 ...
- pypinyin, jieba分词与Gensim
一 . pypinyin from pypinyin import lazy_pinyin, TONE, TONE2, TONE3 word = '孙悟空' print(lazy_pinyin(wor ...
- 使用pynlpir增强jieba分词的准确度
在使用jieba分词时,发现分词准确度不高.特别是一些专业词汇,比如堡垒机,只能分出堡垒,并不能分出堡垒机.这样导致的问题是很多时候检索并不准确. 经过对比测试,发现nlpir进行分词效果更好.但是n ...
- 自然语言处理之jieba分词
在处理英文文本时,由于英文文本天生自带分词效果,可以直接通过词之间的空格来分词(但是有些人名.地名等需要考虑作为一个整体,比如New York).而对于中文还有其他类似形式的语言,我们需要根据来特殊处 ...
随机推荐
- DSOFramer 控件(转)
1.Html电子印章.手写签名系统演示:http://www.dianju.com.cn/video.htm在线试用:http://www.dianju.com.cn/websignpiaoju/ht ...
- web框架之Django
windows下安装了Django后,在cmd里输入django-admin会返回Django的所有命令
- php类的继承(基本概念,访问权限修饰符,重写override)
类的继承 简单理解: 某个类A具有某些特征,另一个类B,也具有A类的所有特征,并且还可能具有自己的更多的一些特征,此时,我们就可以实现:B类使用A的特征信息并继续添加自己的一些特有特征信息. 基本概念 ...
- 【转帖】如果进入CPU的世界,时间会是怎样的?
如果进入CPU的世界,时间会是怎样的? 2018-02-26 20:52:46 world6 阅读数 1295更多 分类专栏: 网络 缓存服务 架构 版权声明:本文为博主原创文章,遵循CC 4.0 ...
- EFCore 通过实体Model生成创建SQL Server数据库表脚本
在我们的项目中经常采用Model First这种方式先来设计数据库Model,然后通过Migration来生成数据库表结构,有些时候我们需要动态通过实体Model来创建数据库的表结构,特别是在创建像临 ...
- 将oracle关键字作为字段名
对于关键字比如:Level.uid.group等 如果在数据库设计的时候,没有考虑oracle数据库的特殊性时,可能会使用关键字作为字段名,从而在建表的过程中,提示错误:ORA-00904: inva ...
- Hello World详解
Hello World 题目 [题目描述] 输出“Hello World!”(不输出“”). [输入格式] 啥都没有. [输出格式] Hello World! [数据规模] 输出就行了,管那么多干什么 ...
- pod宿主机挂载pv存储过程
1处的控制循环Control Loop应该是:VolumeManagerReconciler ----------------------------------------------------- ...
- 在vue中使用ElementUI
完整引用ElementUI: 安装:在需要使用到的vue项目目录下,使用npm下载安装: npm/cnpm i element-ui -S/--save <!-- 引入样式 --> < ...
- Java UpperBound
Java UpperBound /** * <html> * <body> * <P> Copyright 1994-2018 JasonInternational ...