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 中文分词工具相关推荐

  1. 『开发技术』Python中文分词工具SnowNLP教程

    介绍一个好用多功能的Python中文分词工具SnowNLP,全称Simplified Chinese Text Processing.在实现分词的同时,提供转换成拼音(Trie树实现的最大匹配)及繁体 ...

  2. python100例 分词-Python中文分词工具之结巴分词用法实例总结【经典案例】

    本文实例讲述了Python中文分词工具之结巴分词用法.分享给大家供大家参考,具体如下: 结巴分词工具的安装及基本用法,前面的文章<Python结巴中文分词工具使用过程中遇到的问题及解决方法> ...

  3. 资源 | Python中文分词工具大合集

    跟着博主的脚步,每天进步一点点 这篇文章事实上整合了之前文章的相关介绍,同时添加一些其他的Python中文分词相关资源,甚至非Python的中文分词工具,仅供参考. 首先介绍之前测试过的8款中文分词工 ...

  4. Python中文分词工具大合集:安装、使用和测试

    转自:AINLP 这篇文章事实上整合了之前文章的相关介绍,同时添加一些其他的Python中文分词相关资源,甚至非Python的中文分词工具,仅供参考. 首先介绍之前测试过的8款中文分词工具,这几款工具 ...

  5. python中文分词工具jieba_Python 流行的中文分词工具之一 jieba

    jieba分词是Python 里面几个比较流行的中文分词工具之一.为了理解分词工具的工作原理,以及实现细节对jieba进行了详细的阅读. 读代码之前,我有几个问题是这样的: 分词工具的实现都有哪几个步 ...

  6. python中文分词工具_结巴中文分词工具的安装使用 Python分词教程

    结巴分词 中文分词是中文文本处理的一个基础性工作,结巴分词利用进行中文分词.其基本实现原理有三点: 1.基于Trie树结构实现高效的词图扫描,生成句子中汉字所有可能成词情况所构成的有向无环图(DAG) ...

  7. 【数据平台】python中文分词工具jieba

    1.官网: https://pypi.python.org/pypi/jieba/ https://github.com/fxsjy/jieba 自动安装:pip install jieba 2.特点 ...

  8. jieba库 python2.7 安装_Python中文分词工具大合集:安装、使用和测试

    这篇文章事实上整合了前面两篇文章的相关介绍,同时添加一些其他的Python中文分词相关资源,甚至非Python的中文分词工具,仅供参考. 首先介绍之前测试过的8款中文分词工具,这几款工具可以直接在AI ...

  9. python 分词工具训练_Python中文分词工具大合集:安装、使用和测试

    这篇文章事实上整合了前面两篇文章的相关介绍,同时添加一些其他的Python中文分词相关资源,甚至非Python的中文分词工具,仅供参考. 首先介绍之前测试过的8款中文分词工具,这几款工具可以直接在AI ...

最新文章

  1. Windows下Eclipse配置基于MinGW的C/C++开发环境
  2. 如何卸载office201032位_微软官方安装卸载修复工具、恶意软件删除工具,了解下!...
  3. 服务器ldap认证配置
  4. IEEE向华为发出禁令,北大清华学者相继宣布退出IEEE!
  5. tm1650中文资料_TM1616,TM1650,TM1651 SOP16原厂直销,技术支持
  6. java 革命_JAVA数据库连接池的革命 -- 从BoneCP到HikariCP(转)
  7. PJSIP学习笔记——从simple_pjsua.c示例程序了解PJSUA-LIB的基本使用流程
  8. 货币化物联网:实现收益
  9. Ubuntu 安装 Clang 编译器
  10. 手机uc怎么放大页面_怎么选择大功率手机信号放大器?
  11. WIN7安装.Net Framework 4报错的解决方法
  12. C语言洛谷P1957口算练习题
  13. eclipse转Androidstudio AAPT: error: file failed to compile.
  14. python中 // 和 / 和 %
  15. java求矩阵条件数_数值分析:矩阵求逆-奇异性、条件数
  16. 关于HTML学习重点-绝对布局和相对布局总结
  17. 投影机RS-232串口接口大全
  18. 核心单词Word List 40
  19. myeclipse下用axis2开发web service
  20. 警告:面临潜在的安全风险_HTML5网站展示:48个潜在的Flash演示

热门文章

  1. 1.01.21盒子模型,浮动,定位
  2. 计算方法--函数插值
  3. 通读cheerio API
  4. B2B2C多商户商城源码/分销商城/多用户商城系统/商家入驻商城系统
  5. 发现自己很失败。。。
  6. console用法java_Java Console printf(String, Object)用法及代码示例
  7. macbook黑屏_MacBook维修 苹果笔记本电脑进水不开机
  8. python中numpy数组的合并_基于Python中numpy数组的合并实例讲解
  9. DDR扫盲——DDR与DDR2、DDR3的区别
  10. 天锋w2019_天锋W2019竟然仿的这么像,这是要让三星气吐血吗?