首页 > 其他分享 >快速入门jieba库

快速入门jieba库

时间:2023-02-01 18:33:22浏览次数:35  
标签:jieba cut word 入门 快速 txt True 分词

jieba库使用

1.介绍

jieba库是python中一个非常重要的第三方中文分词函数库,其工作原理是:利用一个中文词库,将待分词的内容与词库进行对比,通过图结构和动态规划的方法找到最大概率的词组。该jieba库还提供了增加自定义中文词组的功能。

注意:

​ 是中文分词函数库

jieba库支持一下3种分词模式:

  • 精确模式

    将句子精确的切开,适合文本分析

  • 全模式

    把句子中所有可以成词的词语都描述出来,速度非常快,但不能消除歧义

  • 搜索引擎模式

    在精确模式的基础上,对长词再次切分,适合搜索引擎分词

2.安装

pip install jieba

3.英文分词

由于英文文本是通过空格或者标点进行分隔的,因此分词比较方便

#案例
import jieba
txts = "China is a beautiful country"
str = txts.split()
print(str)

4.中文分词

中文文本分词之所以比较困难,是因为中文句子内部缺少分隔符,使之不能直接进行分词

#基础案例
import jieba
txts = "中国是一个美丽的国家"
str = jieba.lcut(txts)
print(str)

jieba库常用分词函数

函数 描述
cut(s) 精确模式,返回一个可迭代的数据类型
cut(s,cut_all=True) 全模式,输出文本s中所有可能的单词
cut_for_search(s) 搜索引擎模式,适合搜索引擎建立索引的分词结果
lcut(s) 精确模式,返回一个列表类型,建议使用
lcut(s,cut_all=True) 全模式,返回一个列表类型,建议使用
lcut_for_search(s) 搜索引擎模式,返回一个列表类型,建议使用
add_word(w) 向分词词典中增加新词w
对比案例:使用cut_all=True与不使用cut_all=True的区别
##使用cut_all=True
import jieba
txts = "中华人民共和国是一个伟大而美丽的国家"
str = jieba.lcut(txts,cut_all=True)
print(str)

##不使用cut_all=True
import jieba
txts = "中华人民共和国是一个伟大而美丽的国家"
str = jieba.lcut(txts)
print(str)

使用cut_all=True结果

不使用cut_all=True结果

总结

jieba.lcut():返回精确模式,输出的分词刚好能够且不多余地组成原始文本

jieba.lcut(s,True):返回全模式,输出原始文本中,可能产生的所有词组,重复性最大

jieba.lcut_search():返回搜索引擎模式,首先执行精确模式,然后在对其中的长词进一步切分以获得结果。

案例一:英语词频统计案例

import jieba
#1.创建一个读取文件的函数findText()
def findText():
    # 读取文本
    txt = open("txt.txt", "r", encoding='utf-8').read()
    # 将文本中的英文全部变成小写
    txt = txt.lower()
    # 将英文中的符号全部变成空格
    for c in '!"#$%&()*+,-./;:<=>?@[\\]\'_{|}~':
        txt = txt.replace(c, " ")
    return txt
#2.创建findText()对象
Txts = findText()
#3.切割英语文本
words = Txts.split()
#4.创建一个counts集合,统计每个单词出现的次数
counts = {}
for word in words:
    counts[word] = counts.get(word, 0) + 1
#5.将counts进行格式转换,变成[("is",1)]格式,外面是列表,里面是元祖
items = list(counts.items())
#6.将items根据单词出现的个数进行排序,从高到低
items.sort(key=lambda x: x[1], reverse=True)
#7.获取前10个最高的单词
for i in range(10):
    word, count = items[i]
    print("{0:<12}{1:>4}".format(word, count))

案例二:中文词频统计案例

import jieba
#1.读取中文txt文件
txt = open("txt.txt", "r", encoding='utf-8').read()
#2.对该文件进行切词
words = jieba.lcut(txt)
#3.创建counts集合,来保存切分后的词语
counts={}
#4.进行词频统计
for word in words:
    if len(word) ==1:
        continue
    else:
        counts[word]=counts.get(word,0)+1
#5.对切分后的词频,进行格式转换,转换成外面是列表,里面是元祖的形式,并且根据词频的大小,进行排序
items = list(counts.items())
items.sort(key=lambda x:x[1],reverse=True)
#6.取出前10个最大的词语
for i in range(10):
    word,count = items[i]
    print("{0:<10}{1:>5}".format(word.count()))

标签:jieba,cut,word,入门,快速,txt,True,分词
From: https://www.cnblogs.com/gqboke/p/17083836.html

相关文章

  • AIRIOT答疑第7期|如何快速提升物联网项目交付速度?
    平台+模板,套上就能用!贼拉快!AIRIOT提供物联网低代码平台+多套行业案例模板,针对于有明确项目的服务商,用平台已经配置好的节点数、功能模块、流程,直接上手干项目!AIRIOT......
  • python3 测试框架pytest入门
    1、安装pytest2、安装html插件3、编写测试用例4、执行测试5、生成测试报告1.1安装pytestpip3installpytest执行该命令安装pytest1.2验证安装pytest-V查看当前已安装......
  • 快速排序(Quick Sort)
    一、算法概述1.1算法分类十种常见排序算法可以分为两大类:比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此也称为非线性时间比较类排......
  • Solidity极简入门#7. 映射类型
    这一讲,我们将介绍solidity中的哈希表:映射(Mapping)类型。映射Mapping在映射中,人们可以通过键(Key)来查询对应的值(Value),比如:通过一个人的id来查询他的钱包地址。声明映射的格式为......
  • Solidity极简入门#8. 变量初始值
    变量初始值在solidity中,声明但没赋值的变量都有它的初始值或默认值。这一讲,我们将介绍常用变量的初始值。值类型初始值boolean:falsestring:""int:0uint:0enum:枚举中......
  • Cesium打包入门(gulp与esbuild)_云上飞47636962的博客
    本文针对Cesium源码包的打包工具gulp和esbuild进行了初步探讨,属于入门篇。首先简要介绍采用gulp+esbuild如何为多个源代码文件打包成一个单独文件,然后介绍了下Cesium中的......
  • Git入门图文教程(1.5W字40图)
    01、认识一下Git!—简介Git是当前最先进、最主流的分布式版本控制系统,免费、开源!核心能力就是版本控制。再具体一点,就是面向代码文件的版本控制,代码的任何修改历史都会被......
  • markdown入门学习
    1、标题(1)一级标题:#演示:一级标题一级标题的另一种写法:下一行写===演示:一级标题的另一种写法(2)二级标题:##演示:二级标题二级标题的另一种写法:下一行写---演示:二级......
  • C#零基础小白快速入门
    前言本文写给想学C#的朋友,目的是以较快的速度入门C#好学吗?对于这个问题,我以前的回答是:好学!但仔细想想,不是这么回事,对于新手来说,C#没有那么好学。如果你要入门Java,那学J......
  • CC1101RGPR学习笔记:工作原理简单入门
     众所周知,在IOT的市场应用中,从通信协议细分的话,有SUB-1G,2.4G,3G,4G,以及最新推出的5G,虽然5G通信协议已经在崭露头角,但是不同的通信协议在不同的应用领域之中还是占据着一......