如何在python中使用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库