Python分词模块推荐:结巴中文分词

标签: 搜索优化 程序设计 python | 发表时间:2013-02-27 21:40 | 作者:标点符
出处:http://www.biaodianfu.com

就是前面说的中文分词,这里需要介绍的是一个分词效果较好,使用起来像但方便的Python模块:结巴。

一、结巴中文分词采用的算法

  • 基于Trie树结构实现高效的词图扫描,生成句子中汉字所有可能成词情况所构成的有向无环图(DAG)
  • 采用了动态规划查找最大概率路径, 找出基于词频的最大切分组合
  • 对于未登录词,采用了基于汉字成词能力的HMM模型,使用了Viterbi算法

二、结巴中文分词支持的分词模式

目前结巴分词支持三种分词模式:

  1. 精确模式,试图将句子最精确地切开,适合文本分析;
  2. 全模式,把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义;
  3. 搜索引擎模式,在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。
使用方法如下:
# -*- coding:utf-8 -*-
import jieba

text = '我来到北京清华大学'

default_mode = jieba.cut(text)
full_mode = jieba.cut(text,cut_all=True)
search_mode = jieba.cut_for_search(text)

print "精确模式:","/".join(default_mode)
print "全模式:","/".join(full_mode)
print "搜索引擎模式:","/".join(search_mode)

返回的数据如下:

  1. 精确模式: 我/来到/北京/清华大学
  2. 全模式: 我/来到/北京/清华/清华大学/华大/大学
  3. 搜索引擎模式: 我/来到/北京/清华/华大/大学/清华大学

上述代码解释:

  • jieba.cut方法接受两个输入参数: 1) 第一个参数为需要分词的字符串 2)cut_all参数用来控制是否采用全模式,默认不采用。
  • jieba.cut_for_search方法接受一个参数:需要分词的字符串,该方法适合用于搜索引擎构建倒排索引的分词,粒度比较细
  • 注意:待分词的字符串可以是gbk字符串、utf-8字符串或者unicode
  • jieba.cut以及jieba.cut_for_search返回的结构都是一个可迭代的generator,可以使用for循环来获得分词后得到的每一个词语(unicode),也可以用list(jieba.cut(…))转化为list

三、结巴中文分词的其他功能

1、添加或管理自定义词典

结巴的所有字典内容存放在dict.txt,你可以不断的完善dict.txt中的内容。

2、关键词抽取

通过计算分词后的关键词的TF/IDF权重,来抽取重点关键词。

具体示例:

# -*- coding:utf-8 -*-
import jieba.analyse

text = "结巴中文分词模块是一个非常好的Python分词组件"

tags = jieba.analyse.extract_tags(text,2)

print "关键词抽取:","/".join(tags)

返回的结果为:关键词抽取: 分词/Python

更多信息请查看: https://github.com/fxsjy/jieba/

Related posts:

  1. 使用Python来检查统计代码是否布置到位
  2. PHP截取汉字出现乱码的解决方法
  3. Python模块学习之hashlib

相关 [python 分词 模块] 推荐:

发布一个python的分词模块

- bin - One Piece of Programming
第一个版本实现了基于的MMSEG中文分词算法Python 实现. MMSEG实际上是一个正向最大匹配+多个规则的分词算法. 链接给出的几个网站写的很清楚了. 在开发过程中我增加了一个规则来处理原来的算法中有可能出现的冲突问题. 当所有的规则都无法唯一的确定一个chunk时,优先选择后面比较长的词. 开发过程中参照了MMSEG的Java实现和ruby实现.

Python分词模块推荐:结巴中文分词

- - 标点符
就是前面说的中文分词,这里需要介绍的是一个分词效果较好,使用起来像但方便的Python模块:结巴. 基于Trie树结构实现高效的词图扫描,生成句子中汉字所有可能成词情况所构成的有向无环图(DAG). 采用了动态规划查找最大概率路径, 找出基于词频的最大切分组合. 对于未登录词,采用了基于汉字成词能力的HMM模型,使用了Viterbi算法.

python满足你需要的50个模块

- lostsnow - 奋斗足迹|崔玉松
Python具有强大的扩展能力,网上有人列出了50个很棒的Python模块,包含几乎所有的需要:比如Databases,GUIs,Images, Sound, OS interaction, Web,以及其他. 2011年01月25日 — Httpsqs Python Client. 2011年01月25日 — Python Queue 的多线程(multi thread)死锁问题.

[Python] [不分词版]Chinese-Text-Classification: Tensorflow CNN 模型实现的中文文本分类器

- - V2EX
从现在的结果来看,分词的版本( https://www.v2ex.com/t/404977#reply6 )准确率稍微高一点. 项目地址: https://github.com/fendouai/Chinese-Text-Classification. jieba 分词的版本在 master 分支,不分词的版本在 dev 分支.

dropbox讲python

- chuang - Initiative
dropbox定制优化CPython虚拟机,自己搞了个malloc调度算法. 那个 !!!111cos(0). 期待这次PyCon China 2011.

Python调试

- - 企业架构 - ITeye博客
原文地址: http://blog.csdn.net/xuyuefei1988/article/details/19399137. 1、下面网上收罗的资料初学者应该够用了,但对比IBM的Python 代码调试技巧:. IBM:包括 pdb 模块、利用 PyDev 和 Eclipse 集成进行调试、PyCharm 以及 Debug 日志进行调试:.

Python WSGI 初探

- - 坚实的幻想
在构建 Web 应用时,通常会有 Web Server 和 Application Server 两种角色. 其中 Web Server 主要负责接受来自用户的请求,解析 HTTP 协议,并将请求转发给 Application Server,Application Server 主要负责处理用户的请求,并将处理的结果返回给 Web Server,最终 Web Server 将结果返回给用户.

Python实现逻辑回归(Logistic Regression in Python)

- - 神刀安全网
Logistic Regression in Python ,作了中文翻译,并相应补充了一些内容. 本文并不研究逻辑回归具体算法实现,而是使用了一些算法库,旨在帮助需要用Python来做逻辑回归的训练和预测的读者快速上手. 逻辑回归是一项可用于预测二分类结果(binary outcome)的统计技术,广泛应用于金融、医学、犯罪学和其他社会科学中.

python 下载文件

- Eric - python相关的python 教程和python 下载你可以在老王python里寻觅
之前给大家分享的python 多线程抓取网页,我觉的大家看了以后,应该会对python 抓取网页有个很好的认识,不过这个只能用python 来抓取到网页的源代码,如果你想用做python 下载文件的话,上面的可能就不适合你了,最近我在用python 做文件下载的时候就遇到这个问题了,不过最终得以解决,为了让大家以后碰过这个问题有更好的解决办法,我把代码发出来:.

python代码调试

- - 阿里古古
【转自: http://blog.csdn.net/luckeryin/article/details/4477233】. 本文讨论在没有方便的IDE工具可用的情况下,使用pdb调试python程序. 例如,有模拟税收计算的程序:. debug_demo函数计算4500的入账所需的税收. 在需要插入断点的地方,加入红色部分代码:如果_DEBUG值为True,则在该处开始调试(加入_DEBUG的原因是为了方便打开/关闭调试).