python lcut精确分词_jieba分词-Python中文分词领域的佼佼者
1. jieba的江湖地位
NLP(自然语言)领域现在可谓是群雄纷争,各种开源组件层出不穷,其中一支不可忽视的力量便是jieba分词,号称要做最好的 Python 中文分词组件。
“最好的”这三个字可不是空穴来风,jieba在开源社区的受欢迎程度非常之高。
jieba项目目前的github star数已经达到24k,其他热门分词组件像HanLP star数20k、ansj_seg star数5.6k、pkuseg-python star数5k。可见jieba已经稳居中文分词领域c位。
jieba的主要功能是做中文分词,可以进行简单分词、并行分词、命令行分词,当然它的功能不限于此,目前还支持关键词提取、词性标注、词位置查询等。
更让人愉悦的是jieba虽然立足于python,但同样支持其他语言和平台,诸如:C++、Go、R、Rust、Node.js、PHP、 iOS、Android等。所以jieba能满足各类开发者的需求。
2. 如何学jieba
据我所知,jieba最靠谱的文档是github项目的readme,因为它似乎还没有独立的使用文档。但由于使用起来简单,看readme也能快速上手。https://github.com/fxsjy/jieba
国内各大博客有关于jieba的使用教程,但需要甄别下准确度和时效性,因为jieba项目一直在更新。
当然本文不是纯粹的种草文章,会简单介绍下jieba的使用方法。
3. 安装jieba
jieba支持pip或者conda安装,直接在命令行执行:pip install jieba
不出意外,应该能很快安装好。
你也可以下载jieba安装包再安装,jieba的pypi地址:http://pypi.python.org/pypi/jieba/
4. 分词初体验
分词是NLP处理的第一步,也是最基本的任务,分词的好坏直接决定了后面语义分析的精准度。
所谓分词就是将一段表述里的词汇进行分解,比如“我爱中国”,分解后有三个词:我、爱、中国,词性分别是名词、动词、名词。
jieba库中用于分词的方法有三个:
jieba.cut
给定中文字符串,分解后返回一个迭代器,需要用for循环访问。
参数解释:
「strs」:需要分词的字符串;
「cut_all」:用来控制是否采用全模式;
「HMM」:用来控制是否使用 HMM 模型;
「use_paddle」:用来控制是否使用paddle模式下的分词模式,paddle模式采用延迟加载方式,通过enable_paddle接口安装paddlepaddle-tiny,并且import相关代码;
这里区分全模式和精确模式,举个例子先看看区别:# 全模式
seg_list = jieba.cut("中国上海是一座美丽的国际性大都市", cut_all=True)
print("Full Mode: " + "/ ".join(seg_list))
# 返回结果
Full Mode: 中国/ 上海/ 是/ 一座/ 美丽/ 的/ 国际/ 国际性/ 大都/ 大都市/ 都市
# 精确模式
seg_list = jieba.cut("中国上海是一座美丽的国际性大都市", cut_all=False)
print("Full Mode: " + "/ ".join(seg_list))
# 返回结果
Default Mode: 中国/ 上海/ 是/ 一座/ 美丽/ 的/ 国际性/ 大都市
可以看到,全模式把句子中所有的可以成词的词语都扫描出来, 会出现一词多用、一词多意。精确模式将句子最精确的切分开,每个词都只有一种含义。
jieba.cut方法默认是精确模式。
还有一个参数控制paddle模式,会更加精确,使用这个的前提是你需要先安装paddlepaddle-tiny。
安装命令:
pip install paddlepaddle-tiny==1.6.1
详情可以去官网看下,这里不举例。
jieba.cut_for_search
该方法和cut一样,分解后返回一个迭代器,需要用for循环访问。不过它是搜索引擎模式,在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。
参数解释:
「strs」:需要分词的字符串;
「HMM」:是否使用 HMM 模型,默认值为 True。该方法适合用于搜索引擎构建倒排索引的分词,粒度比较细。# 搜索引擎模式
seg_list = jieba.cut_for_search("中国上海是一座美丽的国际性大都市,拥有复旦大学、上海交通大学等知名高等学府")
print(", ".join(seg_list))
# 返回结果
Search Mode: 中国, 上海, 是, 一座, 美丽, 的, 国际, 国际性, 大都, 都市, 大都市, ,, 拥有, 复旦, 大学, 复旦大学, 、, 上海, 交通, 大学, 上海交通大学, 等, 知名, 高等, 学府, 高等学府
jieba.lcut
和jieba.cut使用方法一样,不过返回的是列表。
cut和cut_for_search方法都是支持繁体字的。
5. 添加自定义词典
如果是对专业新闻或者小说进行分词,会有很多的新词汇,jieba库里没有就没办法识别,那么就需要添加自定义的词汇,比如:奥利给。
添加自定义词汇的方法:jieba.load_userdict(file_name)参数是文本文件,txt、csv都可以。
自定义词典文件的词汇格式是一个词占一行,每一行分三部分:词语、词频(可省略)、词性(可省略),用空格隔开,顺序不可颠倒。比如:
以"奥利给,管虎执导的八佰是一部让人热血沸腾的好电影。" 这段话为例, 如果不添加自定义词典,很多词没办法识别出来。# 不添加自定义词典
seg_list = jieba.cut("奥利给,管虎执导的八佰是一部让人热血沸腾的好电影")
print("/ ".join(seg_list))
# 返回结果
奥利/ 给/ ,/ 管虎/ 执导/ 的/ 八佰是/ 一部/ 让/ 人/ 热血沸腾/ 的/ 好/ 电影
添加自定义词典后,新词、人名、电影名都可以识别出来# 载入词典
jieba.load_userdict("dict.txt")
seg_list = jieba.cut("奥利给,管虎执导的八佰是一部让人热血沸腾的好电影")
print("/ ".join(seg_list))
# 返回结果
奥利给/ ,/ 管虎/ 执导/ 的/ 八佰/ 是/ 一部/ 让/ 人/ 热血沸腾/ 的/ 好/ 电影
6. 结论
jieba无疑是一款优秀的分词工具,而且在不断地优化成长。前面讲了一些基本的使用,大家还可以尝试使用停用词、提取关键词、词性标注、词位置查询等功能,也是十分的便捷。
python lcut精确分词_jieba分词-Python中文分词领域的佼佼者相关推荐
- python 分词工具训练_Python中文分词工具大合集:安装、使用和测试
这篇文章事实上整合了前面两篇文章的相关介绍,同时添加一些其他的Python中文分词相关资源,甚至非Python的中文分词工具,仅供参考. 首先介绍之前测试过的8款中文分词工具,这几款工具可以直接在AI ...
- python 分词工具训练_中文分词入门和分词工具汇总攻略
[注意]如果寻找分词和文本分析软件,为了完成内容分析和其他文本研究任务,直接使用集搜客分词和文本分析软件就可以了.本文是为了讲解集搜客分词和文本分析的实现原理,是给产品设计者和开发者看的. 最近在整理 ...
- Lucene分词器,使用中文分词器,扩展词库,停用词
2019独角兽企业重金招聘Python工程师标准>>> Lucene分词器,使用中文分词器,扩展词库,停用词 博客分类: 搜索引擎,爬虫 停止词:lucene的停止词是无功能意义的词 ...
- 分词器以及ik中文分词器
文章目录 分词器以及ik中文分词器 概念 ik分词器的安装 环境准备 设置jdk环境变量 下载maven安装包并解压 设置path 验证maven是否安装成功 下载IK分词器并安装 使用IK分词器 查 ...
- python lcut精确分词_Python jieba库分词模式实例用法
在中文分词中,jiebe库是最为常见的,主要的原因还是它独特的支持分词模式如:精确模式.全模式.搜索引擎模式.也对应着三种方式,包括jieba.cut()方法.jieba.lcut()方法.jieba ...
- python中文分词工具_结巴中文分词工具的安装使用 Python分词教程
结巴分词 中文分词是中文文本处理的一个基础性工作,结巴分词利用进行中文分词.其基本实现原理有三点: 1.基于Trie树结构实现高效的词图扫描,生成句子中汉字所有可能成词情况所构成的有向无环图(DAG) ...
- python中文分词统计_python 实现中文分词统计
总是看到别人用Python搞各种统计,前端菜鸟的我也来尝试了一把.有各种语义分析库在,一切好像并不是很复杂.不过Python刚开始看,估计代码有点丑. 一.两种中文分词开发包 thulac (http ...
- 【python 走进NLP】利用jieba技术中文分词并写入txt
简单介绍: 近年来,随着NLP自然语言处理技术的日益成熟,开源实现的分词工具也越来越多,比如NLTK:其在英文分词较为成熟,分词效果较好,在处理中文分词方面则显得力不足:在处理中文分词时,Jieba这 ...
- Python在Jupyter上使用HMM进行中文分词,将新闻文本分词后提取其中的高频词
首先,需要三个.txt文件: 需要提取高频词的搜狐新闻文本news.txt(需要5积分,不能白嫖,气四~) 训练HMM的trainCorpus.txt(需要5积分,不能白嫖,气四~) 停顿词stopw ...
最新文章
- 机器学习算法(3:决策树算法)
- 企业该如何实现数字化转型?
- Spring3+MyBatis3整合无法输出SQL语句问题的解决
- 编程思想之多线程与多进程——以操作系统的角度述说线程与进程
- Netty 服务 接收新数据
- 管理项目的问题跟踪器的提示
- 商业智能BI和报表的区别?
- 概率论由相关性求数学期望和方差的公式_2020.3.30 | 考研数学—概率论与数理统计:各章节考试重点...
- 学python要什么基础-要学Python编程,需要什么样的基础呢?想找这方面工作
- 更改Xcode项目名及app名称
- 1156 Sexy Primes (20 分)(质数 模拟
- 2021中国开源年会无锡城市分会场开源点亮无锡
- static变量的生存期问题
- PHP pdo查询sqlite,PHP PDO 操作 sqlite数据库 案例
- 1.试用期个人工作总结(篇一)
- 软件版本各阶段英文名称
- mumu模拟器PUBG显示服务器,刺激战场使用MuMu模拟器最新的过检测方法
- hiveserver2 的HA 配置
- 计算机专业暑假计划,考研计算机:最适合复习的暑假黄金期来了
- 【codeforces 776B】Sherlock and his girlfriend
热门文章
- 草图:设计流程的开始
- 视频剪辑,教你最简单的方法转换视频格式
- (八)ElasticSearch之文档映射
- 优秀软件及网站推荐推荐(一)
- react angular vue流行度对比
- 计算机软件理论基础集合论,从数理逻辑观点看计算机专业的理论基础探讨.doc...
- 魁拔Ⅲ战神崛起: 我的小鱼你醒了, 还认识早晨吗?
- 区块链课堂|从0开始了解区块链,通过代币学智能合约开发(线上课程)
- TOP 测试网系列活动正式启动!
- 浙江工商大学计算机考研调剂,浙江工商大学计算机学院2013考研调剂信息