介绍一、jieba库概述
三,jieba分词的原理
四,jieba分词的三种模式
六、文本词频示例
这篇文章将为大家详细讲解有关如何在python中使用jieba库,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
python可以做什么
python是一种编程语言,内置了许多有效的工具,python几乎无所不能,该语言通俗易懂,容易入门,功能强大,在许多领域中都有广泛的应用,例如最热门的大数据分析,人工智能,网页开发等。
一、jieba库概述
jieba是优秀的中文分词第三方库
- <李>
中文文本需要通过分词获得单个的词语
李> <李>jieba是优秀的中文分词第三方库,需要额外安装
李> <李> jieba库提供三种分词模式,最简单只需要掌握一个函数
二,jieba库安装
pip install jieba
三,jieba分词的原理
jieba分词依靠中文词库
- <李>
利用一个中文词库,确定汉字之间的关联概率
李> <李>汉字间概率大的组成词组,形成分词结果
四,jieba分词的三种模式
- <李>
精确模式:把文本精确地切分开,不存在冗余单词(最常用)
李> <李>全模式:把文本中所有可能的词语都扫描出来,有冗余
李> <李>搜索引擎模式:在精确模式的基础上,对长词再次切分
五,jieba库常用函数
函数描述jieba.lcut (s)精确模式,返回一个列表类型的分词结果jieba.lcut(年代,cut_all=True)全模式,返回一个列表类型的分词结果,存在冗余jieba.lcut_for_search (s)搜索引擎模式,返回一个列表类型的分词结果,存在冗余jieba.lcut (s)精确模式,返回一个列表类型的分词结果jieba.add_word (s)向分词词典增加新词w例子:
在祝辞祝辞,jieba.lcut(“中国是一个伟大的国家“) [& # 39;中国& # 39;,,& # 39;是& # 39;,,& # 39;一个& # 39;,,& # 39;伟大& # 39;,,& # 39;的& # 39;,,& # 39;国家& # 39;】 在祝辞祝辞,jieba.lcut(“中国是一个伟大的国家,,,cut_all=True) [& # 39;中国& # 39;,,& # 39;国是& # 39;,,& # 39;一个& # 39;,,& # 39;伟大& # 39;,,& # 39;的& # 39;,,& # 39;国家& # 39;】 在祝辞祝辞,jieba.lcut_for_search(“中华人民共和国是伟大的“) [& # 39;中华& # 39;,,& # 39;华人& # 39;,,& # 39;人民& # 39;,,& # 39;共和& # 39;,,& # 39;共和国& # 39;,,& # 39;中华人民共和国& # 39;,,& # 39;是& # 39;,,& # 39;伟大& # 39;,,& # 39;的& # 39;]
六、文本词频示例
问题分析
- <李>
英文文本:哈姆雷特分析词频
https://python123.io/resources/pye/hamlet。txt
- <李>
中文文本:《三国演义》分析人物
https://python123.io/resources/pye/threekingdoms。txt
代码如下:
def getText (): ,#打开,hamlet.txt 这个文件=,txt 开放(“hamlet.txt",,“r") .read () ,#避免大小写对词频统计的干扰,将所有单词转换为小写=,,txt  txt.lower () ,#将文中出现的所有特殊字符替换为空格 ,for ch & # 39;拷贝|“# $ % ^,* ()_ + -=\ \ ' ~ {}[];:& lt;祝辞?/& # 39;:=,,txt  txt.replace (ch,,,,,) ,#返回一个所以后单词都是小写的,单词间以空格间隔的文本 return 三种 时间=hamletTxt getText () #,分裂(),默认使用空格作为分隔符 时间=words hamletTxt.split () counts =, {} for word 拷贝的话: ,数[词]=,counts.get(词,0),+ 1 时间=items 列表(counts.items ()) items.sort (x=lambda 键:x[1],反向=True) for 小姐:拷贝范围(10): ,总之,count =,项目[我] ,print (“{0: & lt; 10}{1:在5}“.format(词数))
上面代码中的
items.sort(关键=lambda x: x[1],反向=True)
是根据单词出现的次数进行排序,其中使用了λ函数。更多解释请看:https://www.runoob.com/python/att-list-sort.html
下面使用jieba库来统计《三国演义》中任务出场的次数:
import jieba 时间=txt 开放(“threekingdoms.txt",“r",编码=皍tf-8") .read () 时间=words jieba.lcut (txt) counts =, {} for word 拷贝的话: ,if len(词),==,1: ,继续 ,其他的: ,数[词]=,counts.get(单词,,0),+ 1 时间=items 列表(counts.items ()) items.sort (x=lambda 键:x[1],反向=True) for 小姐:拷贝范围(15): ,总之,count =,项目[我] ,print (“{0: & lt; 10}{1:在5}“.format(词数))如何在python中使用jieba库