jieba
“结巴”中文分词:做最好的 Python 中文分词组件
支持三种分词模式:
精确模式,试图将句子最精确地切开,适合文本分析;
全模式,把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义;
搜索引擎模式,在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。
安装说明
pip install jieba
主要功能
分词
创建函数:
(1)精确模式 函数 jieba.lcut(str) 返回列表类型
import jieba
"""jieba.lcut(str)"""
s = "中国是一个伟大的国家"
print(jieba.lcut(s))
"""
输出结果: ['中国', '是', '一个', '伟大', '的', '国家']
"""
(2)全模式 jieba.lcut(str,cut_all=True) 返回列表类型 ,有冗余
print(jieba.lcut(s,cut_all=True))
"""输出结果:['中国', '国是', '一个', '伟大', '的', '国家']"""
(3) 搜索引擎模式: jieba.lcut_for_search(str) 返回列表类型,有冗余; 先按照精确模式进行分词,然后把把比较长的词进行再次分词
s1 = "中华人民共和国是伟大的"
print(jieba.lcut_for_search(s1))
'''
输出结果 : ['中华', '华人', '人民', '共和', '共和国', '中华人民共和国', '是', '伟大', '的']
'''
基于 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 频率文件
关键词提取所使用逆向文件频率(IDF)文本语料库可以切换成自定义语料库的路径
- 用法: jieba.analyse.set_idf_path(file_name) # file_name为自定义语料库的路径
关键词提取所使用逆向文件频率(IDF)文本语料库可以切换成自定义语料库的路径
- 用法: jieba.analyse.set_idf_path(file_name) # file_name为自定义语料库的路径
词性标注
jieba.posseg.POSTokenizer(tokenizer=None) 新建自定义分词器,tokenizer 参数可指定内部使用的 jieba.Tokenizer 分词器。jieba.posseg.dt 为默认词性标注分词器。
>>> import jieba.posseg as pseg
>>> words = pseg.cut("我爱北京天安门")
>>> for word, flag in words:
... print('%s %s' % (word, flag))
...
我 r
爱 v
北京 ns
天安门 ns