jieba分词的几种形式
1、精确模式:试图将句子最精确地分开,适合文本分析
seg_list = jieba.cut(test_text, cut_all=False)
seg_list = " ".join(seg_list)
print("cut_all=False:", seg_list)
输出:
cut_all=False: 我 今天下午 打篮球
2、全模式:把句子中所有的可以成词的词语都扫描出来,速度非常快,但是不能解决歧义
seg_list2 = jieba.cut(test_text, cut_all=True)
seg_list2 = " ".join(seg_list2)
print("cut_all=True:", seg_list2)
输出:
cut_all=True: 我 今天 今天下午 天下 下午 打篮球 篮球
我们可以发现,分词结果中有个 “天下”,显然这不是我们想要的词语,这属于噪声词。
3、搜索引擎模式:在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词
seg_list3 = jieba.cut_for_search(test_text)
seg_list3 = " ".join(seg_list3)
print("cut_for_search:", seg_list3)
输出:
cut_for_search: 我 今天 天下 下午 今天下午 篮球 打篮球
命令行进行分词
python -m jieba input.txt > output.txt
词性分析
import jieba.posseg as posseg text = "征战四海只为今日一胜,我不会再败了。"
# generator形式形如pair(‘word’, ‘pos’)的结果
seg = posseg.cut(text)
print([se for se in seg]) # list形式的结果
seg = posseg.lcut(text)
print(seg)
[pair('征战', 'v'), pair('四海', 'ns'), pair('只', 'd'), pair('为', 'p'), pair('今日', 't'), pair('一', 'm'), pair('胜', 'v'), pair(',', 'x'), pair('我', 'r'), pair('不会', 'v'), pair('再败', 'v'), pair('了', 'ul'), pair('。', 'x')]
[pair('征战', 'v'), pair('四海', 'ns'), pair('只', 'd'), pair('为', 'p'), pair('今日', 't'), pair('一', 'm'), pair('胜', 'v'), pair(',', 'x'), pair('我', 'r'), pair('不会', 'v'), pair('再败', 'v'), pair('了', 'ul'), pair('。', 'x')]
关键词抽取
关键词抽取有两种算法,基于TF-IDF和基于TextRank:
import jieba.analyse as analyse
text = "征战四海只为今日一胜,我不会再败了。"
# TF-IDF
tf_result = analyse.extract_tags(text, topK=5) # topK指定数量,默认20
print(tf_result)
# TextRank
tr_result = analyse.textrank(text, topK=5) # topK指定数量,默认20
print(tr_result)
['一胜', '再败', '征战', '四海', '今日']
['一胜', '再败', '征战', '四海', '今日']
完整用法
分词
jieba分词有三种不同的分词模式:精确模式、全模式和搜索引擎模式:
jieba.cut(sentence,cut_all=False,HMM=True) # 精确模式
jieba.cut(sentence,cut_all=True,HMM=True) # 全模式
jieba.cut_for_search (sentence, HMM=True) # 搜索引擎模式
对应的,函数前加l即是对应得到list结果的函数:
jieba.lcut(sentence,cut_all=False,HMM=True) # 精确模式
jieba.lcut(sentence,cut_all=True,HMM=True) # 全模式
jieba.lcut_for_search (sentence, HMM=True) # 搜索引擎模式
sentence = "征战四海只为今日一胜,我不会再败了。"
#---------------result----------------
'今天天气 真 好' # 精确模式
'今天 今天天气 天天 天气 真好' # 全模式
'今天 天天 天气 今天天气 真 好' # 搜索引擎模式
精确模式是最常用的分词方法,全模式会将句子中所有可能的词都列举出来,搜索引擎模式则适用于搜索引擎使用。具体的差别可在下一节工作流程的分析中详述。
在上述每个函数中,都有名为HMM的参数。这一项表示是否在分词过程中利用HMM进行新词发现。关于HMM,本文附录中将简述相关知识。
另外分词支持自定义字典,词典格式和 dict.txt 一样,一个词占一行;每一行分三部分:词语、词频(可省略)、词性(可省略),用空格隔开,顺序不可颠倒。
具体使用方法为:
jieba.load_userdict(file_name) # 载入自定义词典
jieba.add_word(word, freq=None, tag=None) # 在程序中动态修改词典
jieba.del_word(word)
jieba.suggest_freq(segment, tune=True) # 调节单个词语的词频,使其能/不能被分词开
关键词抽取
关键词抽取的两个函数的完整参数为:
jieba.analyse.extract_tags(sentence, topK=20, withWeight=False, allowPOS=(), withFlag=False)
# topK 表示返回最大权重关键词的个数,None表示全部
# withWeight表示是否返回权重,是的话返回(word,weight)的list
# allowPOS仅包括指定词性的词,默认为空即不筛选。
jieba.analyse.textrank(self, sentence, topK=20, withWeight=False, allowPOS=('ns', 'n', 'vn', 'v'), withFlag=False)
# 与TF-IDF方法相似,但是注意allowPOS有默认值,即会默认过滤某些词性。
并行分词
可以通过
jieba.enable_parallel(4) # 开启并行分词模式,参数为并行进程数,默认全部
jieba.disable_parallel() # 关闭并行分词模式
来打开或关闭并行分词功能。
个人感觉一般用不到,大文件分词需要手动实现多进程并行,句子分词也不至于用这个。
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 ...
- jieba分词wordcloud词云
1.jieba库的基本介绍 (1).jieba是优秀的中文分词第三方库 中文文本需要通过分词获得单个的词语 jieba是优秀的中文分词第三方库,需要额外安装 jieba库提供三种分词模式,最简单只需掌 ...
- jieba(杰巴)分词的三种模式
jieba(结巴)是一个强大的分词库,完美支持中文分词,做为最好的Python中文分词组件. 安装:pip install jieba 特点 支持三种分词模式: 1.精确模式,试图将句子最精确地切开, ...
- 自然语言处理之jieba分词
在处理英文文本时,由于英文文本天生自带分词效果,可以直接通过词之间的空格来分词(但是有些人名.地名等需要考虑作为一个整体,比如New York).而对于中文还有其他类似形式的语言,我们需要根据来特殊处 ...
- $好玩的分词——python jieba分词模块的基本用法
jieba(结巴)是一个强大的分词库,完美支持中文分词,本文对其基本用法做一个简要总结. 安装jieba pip install jieba 简单用法 结巴分词分为三种模式:精确模式(默认).全模式和 ...
- jieba分词流程及部分源码解读(一)
首先我们来看一下jieba分词的流程图: 结巴中文分词简介 1)支持三种分词模式: 精确模式:将句子最精确的分开,适合文本分析 全模式:句子中所有可以成词的词语都扫描出来,速度快,不能解决歧义 搜索引 ...
- 自然语言处理课程(二):Jieba分词的原理及实例操作
上节课,我们学习了自然语言处理课程(一):自然语言处理在网文改编市场的应用,了解了相关的基础理论.接下来,我们将要了解一些具体的.可操作的技术方法. 作为小说爱好者的你,是否有设想过通过一些计算机工具 ...
- Jieba分词包(一)——解析主函数cut
1. 解析主函数cut Jieba分词包的主函数在jieba文件夹下的__init__.py中,在这个py文件中有个cut的函数,这个就是控制着整个jieba分词包的主函数. cut函数的定义如 ...
随机推荐
- Linux中内存、CPU使用情况查看
1.背景 在实际生产中我们为了保证系统能稳定运行,我们经常要查看当前的CPU和系统使用情况 建议使用top,简单丰富,快捷 2.使用free查看内存使用情况 3.使用 top查看内存.cpu内存占比 ...
- css 过渡样式 transition
过渡顾名思义就是就是样式改变的一个过程变化 简介 transition: property duration timing-function delay; 值 描述 transition-proper ...
- 将一个Linux系统中的文件或文件夹复制到另一台Linux服务器上(scp的使用)
一.复制文件: (1)将本地文件拷贝到远程scp 文件名 用户名@计算机IP或者计算机名称:远程路径(2)从远程将文件拷回本地scp 用户名@计算机IP或者计算机名称:文件名 本地路径 二.复制文件夹 ...
- Android Studio常见问题集锦
Android studio无法在可视化页面预览XML布局文件 修改res/values/styles.xml文件中name=“AppTheme”的style,在Theme.AppCompat.Lig ...
- 关于简单的数据双向绑定原理,defineProperty 和Proxy演示
双向绑定,也就是说js中的数据传到页面,页面中的内容到js,实现同步更新,简单的演示可以直接复制下放HTML代码运行. 在这个例子中,我们使用defineProperty ,Object.define ...
- 5G UE能力-UE capability information解析(ENDC)
本文主要以EN-DC(双连接),mmw(毫米波)的接入过程中的为例,其他以此类推,整理不易,望多推荐 第一次UE能力问询 第一次能力问询主要是基站向UE问询4G和3G能力 第一次UE能力上报 第一次U ...
- SpringBoot + Spring Cloud Eureka 服务注册与发现
什么是Spring Cloud Eureka Eureka是Netflix公司开发的开源服务注册发现组件,服务发现可以说是微服务开发的核心功能了,微服务部署后一定要有服务注册和发现的能力,Eureka ...
- OpenWrt 编译分割
本文主要参考:http://macbruins.com/2011/05/08/downloading-sources-for-building-openwrt/ OpenWrt系统在buildroot ...
- C语言中的 “>>”与“<<”
1. ">>" int x = 16; printf("%d\n", x >> 1); 先将x转成二进制 10000, 不读最后一位, ...
- Day02_Vue.js与Webpack
Vue.js与Webpack 1 vue.js介绍 1.vue.js是什么? Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架.与其它大型框架不同的是,Vue 被设 ...