您的位置:首页 > 编程语言 > Python开发

PYTHON 结巴中文分词工具的基础使用

2017-06-07 15:51 441 查看
原文链接   http://www.zuidun.com/68.html
作者:@醉炖流年 发布时间:July
7, 2015 

结巴分词下载地址:https://pypi.python.org/pypi/jieba/

jieba的三种分词模式

精确模式,试图将句子最精确地切开,适合文本分析;#此模式为默认模式
全模式,把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义;
搜索引擎模式,在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。


jieba模式使用例子:

import jieba
#设置一个变量
text="我有一头小毛驴"
#默认模式(即精确模式,cut_all=False 参数可省略)
default_mode = jieba.cut(text)
print "默认精确模式"," / ".join(default_mode)
#全模式,必须加参数 cut_all=True
full_mode = jieba.cut(text,cut_all=True)
print "全模式"," / ".join(full_mode)
#搜索引擎模式
search_mode = jieba.cut_for_search(text)
print "搜索引擎模式:"," / ".join(search_mode)


jieba分词使用语法

jieba.cut 方法接受三个输入参数: 需要分词的字符串;cut_all 参数用来控制是否采用全模式;HMM 参数用来控制是否使用 HMM 模型
jieba.cut_for_search 方法接受两个参数:需要分词的字符串;是否使用 HMM 模型。该方法适合用于搜索引擎构建倒排索引的分词,粒度比较细
待分词的字符串可以是 unicode 或 UTF-8 字符串、GBK 字符串。注意:不建议直接输入 GBK 字符串,可能无法预料地错误解码成 UTF-8
jieba.cut 以及 jieba.cut_for_search 返回的结构都是一个可迭代的 generator,可以使用 for 循环来获得分词后得到的每一个词语(unicode),或者用
jieba.lcut 以及 jieba.lcut_for_search 直接返回 list
jieba.Tokenizer(dictionary=DEFAULT_DICT) 新建自定义分词器,可用于同时使用不同词典。jieba.dt 为默认分词器,所有全局分词相关函数都是该分词器的映射。


JIEBA其他两个重要的关键词提取功能

基于 TF-IDF 算法的关键词抽取

import jieba.analyse

jieba.analyse.extract_tags(sentence, topK=20, withWeight=False, allowPOS=())
sentence 为待提取的文本
topK 为返回几个 TF/IDF 权重最大的关键词,默认值为 20
withWeight 为是否一并返回关键词权重值,默认值为 False
allowPOS 仅包括指定词性的词,默认值为空,即不筛选
jieba.analyse.TFIDF(idf_path=None) 新建 TFIDF 实例,idf_path 为 IDF 频率文件
代码示例 (关键词提取)
import jieba.analyse
text = "我有一头小毛驴!"
tags = jieba.analyse.extract_tags(text,3)
print "基于 TF-IDF 算法的关键词抽取"," / ".join(tags)
关键词提取所使用逆向文件频率(IDF)文本语料库可以切换成自定义语料库的路径用法: jieba.analyse.set_idf_path(file_name) # file_name为自定义语
a86d
料库的路径
自定义语料库示例:https://github.com/fxsjy/jieba/blob/master/extra_dict/idf.txt.big
用法示例:https://github.com/fxsjy/jieba/blob/master/test/extract_tags_idfpath.py
关键词提取所使用停止词(Stop Words)文本语料库可以切换成自定义语料库的路径用法: jieba.analyse.set_stop_words(file_name) # file_name为自定义语料库的路径
自定义语料库示例:https://github.com/fxsjy/jieba/blob/master/extra_dict/stop_words.txt
用法示例:https://github.com/fxsjy/jieba/blob/master/test/extract_tags_stop_words.py
关键词一并返回关键词权重值示例用法示例:https://github.com/fxsjy/jieba/blob/master/test/extract_tags_with_weight.py基于 TextRank 算法的关键词抽取jieba.analyse.textrank(sentence, topK=20, withWeight=False, allowPOS=('ns', 'n', 'vn', 'v')) 直接使用,接口相同,注意默认过滤词性。
jieba.analyse.TextRank() 新建自定义 TextRank 实例
算法论文: TextRank: Bringing Order into Texts基本思想:将待抽取关键词的文本进行分词
以固定窗口大小(默认为5,通过span属性调整),词之间的共现关系,构建图
计算图中节点的PageRank,注意是无向带权图使用示例
import jieba.analyse
text = "我有一头小毛驴!"
tags = jieba.analyse.textrank(text,3)
print "基于 TextRank 算法的关键词抽取"," / ".join(tags)


更多结巴分词使用,请参阅:https://github.com/fxsjy/jieba
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: