jieba分词库的安装与使用

為{幸葍}努か 提交于 2020-03-16 19:53:38

Anaconda安装wordcloud

GitHub: wordcloud
直接在Anaconda Prompt输入:conda install -c conda-forge wordcloud

Anaconda安装jieba

GitHub: jieba

方式一:
直接在Anaconda Prompt输入:conda install -c conda-forge jieba
方式二:
1.下载jieba压缩包:jieba
2. 将压缩包解压到anaconda下的pkgs目录下,
3. 进入pkgs目录下的jieba-0.39(或其他版本),打开命令行窗口(shift+右键),输入python setup.py install即可完成安装。
其他:
添加下载渠道,Anaconda 安装jieba 库报错

使用jieba分词库

jieba分词的原理

Jieba分词依靠中文词库

  • 利用一个中文词库,确定汉字之间的关联概率
  • 汉字间概率大的组成词组,形成分词结果
  • 除了分词,用户还可以添加自定义的词组

jieba分词的三种模式

  • 精确模式:把文本精确的切分开,不存在冗余单词
  • 全模式:把文本中所有可能的词语都扫描出来,有冗余
  • 搜索引擎模式:在精确模式基础上,对长词再次切分

jieba库常用函数

  • jieba.cut(s):精确模式,返回一个可迭代的数据类型
  • jieba.cut(s,cut_all=True):全模式,输出文本s中所有可能单词
  • jieba.cut_for_search(s):搜索引擎模式,适合搜索引擎建立索引的分词结果
  • jieba.lcut(s):精确模式,返回一个列表类型,建议使用
  • jieba.lcut(s,cut_all=True):全模式,返回一个列表类型
  • jieba.lcut_for_search(s):搜索引擎模式,返回一个列表类型
  • jieba.add_word(w):向分词词典中增加新词w
  • jieba.del_word(w):分词词典中删除词w
  • jieba.load_userdict(“userdict.txt”)添加自定义词典来包含结巴词库中没有的词
  • jieba.analyse.extract_tags(“sentence”, topK=k),其中topK默认值是20。提取"sentence"中topK个关键词
  • jieba.analyse.set_stop_words(“stop_words.txt”)添加停用词

1. 分词

#jieba.cut
>>> seg_list1=jieba.cut("朴素贝叶斯法是基于贝叶斯定理与特征条件独立假设的分类方法")
>>> print(" ".join(seg_list1))
朴素 贝叶斯 法是 基于 贝叶斯 定理 与 特征 条件 独立 假设 的 分类 方法
>>> seg_list2=jieba.cut("朴素贝叶斯法是基于贝叶斯定理与特征条件独立假设的分类方法",cut_all=True)
>>> print(" ".join(seg_list2))
朴素 贝叶 贝叶斯 法 是 基于 贝叶 贝叶斯 斯定理 定理 与 特征 条件 独立 假设 的 分类 方法
>>> seg_list3=jieba.cut_for_search("朴素贝叶斯法是基于贝叶斯定理与特征条件独立假设的分类方法")
>>> print(" ".join(seg_list3))
朴素 贝叶 贝叶斯 法是 基于 贝叶 贝叶斯 定理 与 特征 条件 独立 假设 的 分类 方法
#jieba.lcut
>>> seg_list1=jieba.lcut("朴素贝叶斯法是基于贝叶斯定理与特征条件独立假设的分类方法")
>>> print(seg_list1)
['朴素', '贝叶斯', '法是', '基于', '贝叶斯', '定理', '与', '特征', '条件', '独立', '假设', '的', '分类', '方法']
>>> seg_list2=jieba.lcut("朴素贝叶斯法是基于贝叶斯定理与特征条件独立假设的分类方法",cut_all=True)
>>> print(seg_list2)
['朴素', '贝叶', '贝叶斯', '法', '是', '基于', '贝叶', '贝叶斯', '斯定理', '定理', '与', '特征', '条件', '独立', '假设', '的', '分类', '方法']
>>> seg_list3=jieba.lcut_for_search("朴素贝叶斯法是基于贝叶斯定理与特征条件独立假设的分类方法")
>>> print(seg_list3)
['朴素', '贝叶', '贝叶斯', '法是', '基于', '贝叶', '贝叶斯', '定理', '与', '特征', '条件', '独立', '假设', '的', '分类', '方法']

2. 添加自定义词典

添加自定义词、删除自定义词

>>> jieba.add_word("条件独立假设")
>>> list=jieba.lcut("朴素贝叶斯法是基于贝叶斯定理与特征条件独立假设的分类方法",cut_all=True)
>>> print(list)
['朴素', '贝叶', '贝叶斯', '法', '是', '基于', '贝叶', '贝叶斯', '斯定理', '定理', '与', '特征', '条件', '条件独立假设', '独立', '假设', '的', '分类', '方法']
>>> jieba.del_word("条件独立假设")
>>> seg_list=jieba.lcut("朴素贝叶斯法是基于贝叶斯定理与特征条件独立假设的分类方法",cut_all=True)
>>> print(seg_list)
['朴素', '贝叶', '贝叶斯', '法', '是', '基于', '贝叶', '贝叶斯', '斯定理', '定理', '与', '特征', '条件', '独立', '假设', '的', '分类', '方法']

添加自定义的词典来包含结巴词库中没有的词
在文件userdict.txt中添加内容:条件独立假设 5

>>> jieba.load_userdict("userdict.txt")  
>>> list=jieba.lcut("朴素贝叶斯法是基于贝叶斯定理与特征条件独立假设的分类方法",cut_all=True)
>>> print(list)
['朴素', '贝叶', '贝叶斯', '法', '是', '基于', '贝叶', '贝叶斯', '斯定理', '定理', '与', '特征', '条件', '条件独立假设', '独立', '假设', '的', '分类', '方法']  

3. TF-IDF提取关键词

  如果某个词比较少见,但是它在这篇文章中多次出现,那么它很可能反映了这篇文章的特性,正是所谓的关键词。
TF=词频(TF)=\frac{某个词在文章中出现的总次数}{词汇总数}
IDF=log(+1)逆文档词频(IDF)=\log(\frac{语料库的文档总数}{包含改词的文档数+1})
TFIDF=TF×IDFTF-IDF=词频TF\times 逆文档词频IDF

>>> import jieba.analyse  
>>> tags = jieba.analyse.extract_tags("朴素贝叶斯法是基于贝叶斯定理与特征条件独立假设的分类方法", topK=10)  
>>> print(",".join(tags))
贝叶斯,法是,朴素,定理,假设,基于,分类,特征,独立,方法

参考:
Anaconda安装jieba、wordcloud等第三方库
结巴分词安装与使用

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!