一.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分词的更多相关文章

  1. 自然语言处理之中文分词器-jieba分词器详解及python实战

    (转https://blog.csdn.net/gzmfxy/article/details/78994396) 中文分词是中文文本处理的一个基础步骤,也是中文人机自然语言交互的基础模块,在进行中文自 ...

  2. python jieba分词(添加停用词,用户字典 取词频

    中文分词一般使用jieba分词 1.安装 pip install jieba 2.大致了解jieba分词 包括jieba分词的3种模式 全模式 import jieba seg_list = jieb ...

  3. widows下jieba分词的安装

    在切词的时候使用到jieba分词器,安装如下: 切入到结巴包,执行 python setup.py install 安装后,可以直接在代码中引用: import jieba

  4. 【原】关于使用jieba分词+PyInstaller进行打包时出现的一些问题的解决方法

    错误现象: 最近在做一个小项目,在Python中使用了jieba分词,感觉非常简洁方便.在Python端进行调试的时候没有任何问题,使用PyInstaller打包成exe文件后,就会报错: 错误原因分 ...

  5. Lucene.net(4.8.0) 学习问题记录五: JIEba分词和Lucene的结合,以及对分词器的思考

    前言:目前自己在做使用Lucene.net和PanGu分词实现全文检索的工作,不过自己是把别人做好的项目进行迁移.因为项目整体要迁移到ASP.NET Core 2.0版本,而Lucene使用的版本是3 ...

  6. python结巴(jieba)分词

    python结巴(jieba)分词 一.特点 1.支持三种分词模式: (1)精确模式:试图将句子最精确的切开,适合文本分析. (2)全模式:把句子中所有可以成词的词语都扫描出来,速度非常快,但是不能解 ...

  7. pypinyin, jieba分词与Gensim

    一 . pypinyin from pypinyin import lazy_pinyin, TONE, TONE2, TONE3 word = '孙悟空' print(lazy_pinyin(wor ...

  8. 使用pynlpir增强jieba分词的准确度

    在使用jieba分词时,发现分词准确度不高.特别是一些专业词汇,比如堡垒机,只能分出堡垒,并不能分出堡垒机.这样导致的问题是很多时候检索并不准确. 经过对比测试,发现nlpir进行分词效果更好.但是n ...

  9. 自然语言处理之jieba分词

    在处理英文文本时,由于英文文本天生自带分词效果,可以直接通过词之间的空格来分词(但是有些人名.地名等需要考虑作为一个整体,比如New York).而对于中文还有其他类似形式的语言,我们需要根据来特殊处 ...

随机推荐

  1. [OpenCV开发]OpenCV图像编码和解码 imencode和imdecode使用,用于网络传输图片

    在很多应用中,经常会直接把图片的二进制数据进行交换,比如说利用 socket 通信传送图片二进制数据,或者直接用内存数据库(例如 Redis)来传递图片二进制数据. 这个时候,当你的应用程序读到内存里 ...

  2. pod 常用指令

    //只安装新增的库,已经安装的库不更新 pod install --verbose --no-repo-update //只更新指定库名的第三个库,其他库不更新 pod update 库名 --ver ...

  3. Extjs locked无效,使用enableLocking即可

    一.前言 在使用 extjs 做表格时,由于表格的列太多,我们需要设置一些固定列来查看数据,所以我们需要用到 locked 属性.普通加载 columns 的列是有效的,如果是动态加载的话,使用 lo ...

  4. docker安装MongoDB创建用户,并用工具Robo连接简单CRUD

    搜索mongo docker search mongo 拉取mongo[这里默认为latest] docker pull mongo 查看本地镜像 启动容器[就是安装,-v后面的参数表示把数据文件挂载 ...

  5. Valgrind工具------可以分析内存泄漏

    Valgrind 是个开源的工具,功能很多.例如检查内存泄漏工具---memcheck. 安装: 1)官网下载:http://www.valgrind.org/downloads/ , 下载tar.b ...

  6. poj3660(floyd最短路)

    题目链接:https://vjudge.net/problem/POJ-3660 题意:给出一个有向图,n个结点,每个结点的权值为[1,n]中的一个独特数字,m条边,如果存在边a->b,说明a的 ...

  7. 开始使用 Ubuntu(字体渲染去模糊+软件安装+优化配置+常见错误)(29)

    1. 中文字体渲染美化 + 去模糊 步骤: 1. 解压安装 lulinux_fontsConf_181226.tar.gz,按里面的安装说明操作: 2. 开启字体渲染: 打开 unity-tweak- ...

  8. STM32之串口硬件连接图

    笔记本USB转串口实物连接图: 电路连接图:

  9. php中比较复杂但又常用的字符串函数

    php系统核心库自带的函数中,字符串比数组函数较为简单,但还是有一些较为复杂但又很常用的函数,比如下面的这些函数 explode()函数 用一个字符串来分割另一个字符串,返回结果是一个数组 explo ...

  10. Python进阶:并发编程之Futures

    区分并发和并行 并发(Concurrency). 由于Python 的解释器并不是线程安全的,为了解决由此带来的 race condition 等问题,Python 便引入了全局解释器锁,也就是同一时 ...