python 中文分词工具
python 中文分词工具
- jieba,https://github.com/fxsjy/jieba
- jieba_fast,https://github.com/deepcs233/jieba_fast
- nltk,https://github.com/nltk/nltk
- FoolNLTK,https://github.com/rockyzhengwu/FoolNLTK/blob/master/README_CH.md
- thulac,https://github.com/thunlp/THULAC-Python
- genius,https://github.com/duanhongyi/genius
- snownlp,https://github.com/isnowfy/snownlp
- pynlpir,https://github.com/tsroten/pynlpir
jieba
“结巴”中文分词:https://github.com/fxsjy/jieba
算法
1)基于前缀词典实现高效的词图扫描,生成句子中汉字所有可能成词情况所构成的有向无环图 (DAG);
2)采用了动态规划查找最大概率路径, 找出基于词频的最大切分组合;
3)对于未登录词,采用了基于汉字成词能力的 HMM 模型,使用了 Viterbi 算法。
1、分词
支持三种分词模式:
精确模式,试图将句子最精确地切开,适合文本分析;
全模式,把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义;
搜索引擎模式,在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。
import jiebaseg1 = jieba.cut("好好学学python,有用。", cut_all=True)
print('全模式:', ' '.join(seg1))
seg2 = jieba.cut("好好学学python,有用。", cut_all=False)
print("精确模式(也是默认模式):", ' '.join(seg2))
seg3 = jieba.cut_for_search("好好学学python,有用。")
print("搜索引擎模式:", ' '.join(seg3))
print("\n")seg_list1 = jieba.lcut("好好学学python,有用。", cut_all=True)
print(seg_list1)
seg_list2 = jieba.lcut("好好学学python,有用。", cut_all=False)
print(seg_list2)
seg_list_search = jieba.lcut_for_search("好好学学python,有用。")
print(seg_list_search)
输出:
全模式: 好好 好好学 好学 学学 python 有用
精确模式(也是默认模式): 好好 学学 python , 有用 。
搜索引擎模式: 好好 学学 python , 有用 。['好好', '好好学', '好学', '学学', 'python', '', '有用', '', '']
['好好', '学学', 'python', ',', '有用', '。']
['好好', '学学', 'python', ',', '有用', '。']
特别地:
jieba.cut 以及 jieba.cut_for_search 返回的结构都是一个可迭代的 generator,可以使用 for 循环来获得分词后得到的每一个词语,或者用jieba.lcut 以及 jieba.lcut_for_search 直接返回 list。
2、词性标注
import jieba.posseg as psegwords = pseg.cut("好好学习,天天向上。")
for word, flag in words:print('%s %s' % (word, flag))
输出:
好好学习 n
, x
天天向上 l
。 x
3、关键词抽取
基于 TF-IDF 算法的关键词抽取
语法:
jieba.analyse.extract_tags(sentence, topK=20, withWeight=False, allowPOS=())
sentence 为待提取的文本
topK 为返回几个 TF/IDF 权重最大的关键词,默认值为 20
withWeight 为是否一并返回关键词权重值,默认值为 False
allowPOS 仅包括指定词性的词,默认值为空,即不筛选
import jieba.analysekeyword = jieba.analyse.extract_tags('流云在天边,行囊在眼前,有一条通往太阳的路无边又无沿。')
print(keyword)keywords = jieba.analyse.extract_tags('流云在天边,行囊在眼前,有一条通往太阳的路无边又无沿。',topK=5, withWeight=True)
print(keywords)
输出:
['流云', '行囊', '天边', '无边', '通往', '太阳', '眼前', '一条']
[('流云', 1.33032263925), ('行囊', 1.20652280124125), ('天边', 1.1546548197325), ('无边', 1.02799048121375), ('通往', 0.90122942182)]
基于 TextRank 算法的关键词抽取
语法:
jieba.analyse.textrank(sentence, topK=20, withWeight=False, allowPOS=(‘ns’, ‘n’, ‘vn’, ‘v’)) 直接使用,接口相同,注意默认过滤词性。
论文:
Mihalcea R, Tarau P. TextRank: Bringing Order into Texts[J]. Emnlp, 2004:404-411.
基本思想:
将待抽取关键词的文本进行分词
以固定窗口大小(默认为5,通过span属性调整),词之间的共现关系,构建图
计算图中节点的PageRank,注意是无向带权图
import jieba.analysekeyword = jieba.analyse.textrank('流云在天边,行囊在眼前,有一条通往太阳的路无边又无沿。')
print(keyword)keywords = jieba.analyse.textrank('流云在天边,行囊在眼前,有一条通往太阳的路无边又无沿。',topK=30, withWeight=True)
print(keywords)
输出:
['行囊', '流云']
[('行囊', 1.0), ('流云', 0.9961264494011037)]
jieba_fast
使用cpython重写了jieba分词库中计算DAG和HMM中的vitrebi函数,速度得到大幅提升。
https://github.com/deepcs233/jieba_fast
python 中文分词工具相关推荐
- 『开发技术』Python中文分词工具SnowNLP教程
介绍一个好用多功能的Python中文分词工具SnowNLP,全称Simplified Chinese Text Processing.在实现分词的同时,提供转换成拼音(Trie树实现的最大匹配)及繁体 ...
- python100例 分词-Python中文分词工具之结巴分词用法实例总结【经典案例】
本文实例讲述了Python中文分词工具之结巴分词用法.分享给大家供大家参考,具体如下: 结巴分词工具的安装及基本用法,前面的文章<Python结巴中文分词工具使用过程中遇到的问题及解决方法> ...
- 资源 | Python中文分词工具大合集
跟着博主的脚步,每天进步一点点 这篇文章事实上整合了之前文章的相关介绍,同时添加一些其他的Python中文分词相关资源,甚至非Python的中文分词工具,仅供参考. 首先介绍之前测试过的8款中文分词工 ...
- Python中文分词工具大合集:安装、使用和测试
转自:AINLP 这篇文章事实上整合了之前文章的相关介绍,同时添加一些其他的Python中文分词相关资源,甚至非Python的中文分词工具,仅供参考. 首先介绍之前测试过的8款中文分词工具,这几款工具 ...
- python中文分词工具jieba_Python 流行的中文分词工具之一 jieba
jieba分词是Python 里面几个比较流行的中文分词工具之一.为了理解分词工具的工作原理,以及实现细节对jieba进行了详细的阅读. 读代码之前,我有几个问题是这样的: 分词工具的实现都有哪几个步 ...
- python中文分词工具_结巴中文分词工具的安装使用 Python分词教程
结巴分词 中文分词是中文文本处理的一个基础性工作,结巴分词利用进行中文分词.其基本实现原理有三点: 1.基于Trie树结构实现高效的词图扫描,生成句子中汉字所有可能成词情况所构成的有向无环图(DAG) ...
- 【数据平台】python中文分词工具jieba
1.官网: https://pypi.python.org/pypi/jieba/ https://github.com/fxsjy/jieba 自动安装:pip install jieba 2.特点 ...
- jieba库 python2.7 安装_Python中文分词工具大合集:安装、使用和测试
这篇文章事实上整合了前面两篇文章的相关介绍,同时添加一些其他的Python中文分词相关资源,甚至非Python的中文分词工具,仅供参考. 首先介绍之前测试过的8款中文分词工具,这几款工具可以直接在AI ...
- python 分词工具训练_Python中文分词工具大合集:安装、使用和测试
这篇文章事实上整合了前面两篇文章的相关介绍,同时添加一些其他的Python中文分词相关资源,甚至非Python的中文分词工具,仅供参考. 首先介绍之前测试过的8款中文分词工具,这几款工具可以直接在AI ...
最新文章
- Windows下Eclipse配置基于MinGW的C/C++开发环境
- 如何卸载office201032位_微软官方安装卸载修复工具、恶意软件删除工具,了解下!...
- 服务器ldap认证配置
- IEEE向华为发出禁令,北大清华学者相继宣布退出IEEE!
- tm1650中文资料_TM1616,TM1650,TM1651 SOP16原厂直销,技术支持
- java 革命_JAVA数据库连接池的革命 -- 从BoneCP到HikariCP(转)
- PJSIP学习笔记——从simple_pjsua.c示例程序了解PJSUA-LIB的基本使用流程
- 货币化物联网:实现收益
- Ubuntu 安装 Clang 编译器
- 手机uc怎么放大页面_怎么选择大功率手机信号放大器?
- WIN7安装.Net Framework 4报错的解决方法
- C语言洛谷P1957口算练习题
- eclipse转Androidstudio AAPT: error: file failed to compile.
- python中 // 和 / 和 %
- java求矩阵条件数_数值分析:矩阵求逆-奇异性、条件数
- 关于HTML学习重点-绝对布局和相对布局总结
- 投影机RS-232串口接口大全
- 核心单词Word List 40
- myeclipse下用axis2开发web service
- 警告:面临潜在的安全风险_HTML5网站展示:48个潜在的Flash演示
热门文章
- 1.01.21盒子模型,浮动,定位
- 计算方法--函数插值
- 通读cheerio API
- B2B2C多商户商城源码/分销商城/多用户商城系统/商家入驻商城系统
- 发现自己很失败。。。
- console用法java_Java Console printf(String, Object)用法及代码示例
- macbook黑屏_MacBook维修 苹果笔记本电脑进水不开机
- python中numpy数组的合并_基于Python中numpy数组的合并实例讲解
- DDR扫盲——DDR与DDR2、DDR3的区别
- 天锋w2019_天锋W2019竟然仿的这么像,这是要让三星气吐血吗?