借鉴于 【jieba 模块文档】
用于自己学习和记录!
jieba 模块是一个用于中文分词的模块
此模块支持三种分词模式
- 精确模式(试图将句子最精确的切开,适合文本分析)
- 全模式(把句子在所有可以成词的成语都扫描出来,速度非常快,但是不能解决歧义的问题)
- 搜索引擎模式(在精确模式的基础上,对长词再次切分,提高召回率)
主要功能
1. 分词
需要分词的字符串可以是 unicode 或 UTF-8 字符串、GBK 字符串。但是,不建议直接输入 GBK 字符串,可能无法预料地错误解码成 UTF-8
jieba.cut()
jieba.lcut()
此方法接受三个参数: 需要分词的字符串;cut_all 参数用来控制是否采用全模式;HMM 参数用来控制是否使用 HMM 模型
lcut 方法直接返回 list,cut 方法返回一个 可迭代的 generator
用法
结果:
jieba.cut_for_search
jieba.lcut_for_search
此方法接受两个参数:需要分词的字符串;是否使用 HMM 模型。该方法适合用于搜索引擎构建倒排索引的分词,粒度比较细
cut_for_search返回一个 可迭代的 generator,lcut_for_search返回一个list
用法
结果:
jieba.Tokenizer(dictionary=DEFAULT_DICT)
新建自定义分词器,可用于同时使用不同词典。
2. 添加自定义词典
其包含以下功能:
- 载入字典
- 调整词典
载入字典
开发者可以指定自己自定义的词典,以便包含 jieba 词库里没有的词。
jieba.load_userdict(file_name)
添加指定文件名的词典,file_name参数 为文件类对象或自定义词典的路径,file_name 若为路径或二进制方式打开的文件,则文件必须为 UTF-8 编码。
词典的格式为:一个词占一行;每一行分三部分:词语、词频(可省略)、词性(可省略),用空格隔开,顺序不可颠倒。例如:
调整词典
add_word(word, freq=None, tag=None)
向词典中添加一个词。freq 和 tag 可以省略,freq 默认为一个计算值
del_word(word)
在词典中删除一个词。
suggest_freq(segment, tune=True)
调节单个词语的词频,使其能(或不能)被分出来。
使用此功能时,HMM 新词发现功能时可能无效。
3. 关键词提取
基于 TF-IDF 算法的关键词抽取
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 频率文件
jieba.analyse.set_idf_path(file_name)
关键词提取所使用逆向文件频率(即IDF)文本语料库可以切换成自定义语料库的路径,file_name 为自定义语料库的路径。
jieba.analyse.set_stop_words(file_name)
关键词提取所使用停止词(即Stop Words)文本语料库可以切换成自定义语料库的路径,file_name 为自定义语料库的路径。
用法
基于 TextRank 算法的关键词抽取
jieba.analyse.textrank(sentence, topK=20, withWeight=False, allowPOS=('ns', 'n', 'vn', 'v'))
接口与上面相同,但此处的默认词性需要注意
jieba.analyse.TextRank()
新建自定义 TextRank 实例
用法
结果
4. 词性标注
jieba.posseg.POSTokenizer(tokenizer=None)
新建自定义分词器,tokenizer 参数可指定内部使用的 jieba.Tokenizer 分词器。jieba.posseg.dt 为默认词性标注分词器。
用法
结果
5. Tokenize:返回词语在原文的起止位置
jieba.tokenize()
此方法输入的参数只接受 unicode 。
用法
结果
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.mushiming.com/mjsbk/5263.html