中文分词学习

news2024/12/20 14:16:37

1.安装 jieba 库

!pip install jieba

     jieba 库是用于中文分词的工具,它通过精确的分词算法来处理文本。通过分词可以将中文句子拆分成单独的词语,这对于自然语言处理任务非常重要,比如文本分类、情感分析、关键词提取。

2.中文文本分词处理

import jieba

text = "我喜欢学习自然语言处理"
seg_list = jieba.cut(text)
print(" ".join(seg_list))

     jieba.cut(text) 是用来对中文文本 text 进行分词的函数,返回的是生成器(seg_list),包含文本中的每个分词。cut 函数的默认模式是精确模式,它会将文本切分为尽可能准确的词语。" ".join(seg_list) 会把分词列表中的每个词语连接成一个字符串,中间以空格分隔。通过 jieba.cut(),jieba 将这个句子切割成了几个有意义的词语。由于 jieba 使用的是基于词典的分词算法,它能够识别出 "自然语言" 是词汇,而不是将其拆分为 "自然" 和 "语言"。

3.全模式分词

seg_list = jieba.cut(text, cut_all=True)
print(" ".join(seg_list))

    cut_all=True 参数表示启用全模式分词(而不是默认的精确模式)。在全模式下jieba 会将文本尽可能地切分成所有可能的词语,而不仅仅是最精确的分词,适用于对词语进行粗略筛选。

4.搜索引擎模式分词

seg_list = jieba.cut_for_search(text)
print(" ".join(seg_list))

    搜索引擎模式分词,切分出词汇粒度介于精确模式和全模式之间。既会尽可能精确切分出常见词语,同时也会尝试切分出一些短词或未登录词,以增强搜索时的召回率。提升搜索引擎的召回率,它比精确模式更加细致,比全模式更加精简,适用于文本搜索、索引。

5.词性标注

import jieba.posseg as pseg

text = "我喜欢学习自然语言处理"
words = pseg.cut(text)
for word, flag in words:
    print(f'{word} {flag}')

     jieba.posseg 是 jieba 库的子模块,用于分词和词性标注。通过 pseg.cut() 方法进行文本分词,并标注每个词的词性。pseg.cut(text)方法会返回生成器,它不仅会返回切分后的词,还会为每个词返回词性,生成words 是包含词和词性标注的元组。flag表示词性标注。jieba 提供多种常见的词性标注(如名词、动词、形容词等)。

6.关键词提取

import jieba.analyse

text = "我喜欢学习自然语言处理,尤其喜欢中文分词技术。"
keywords = jieba.analyse.extract_tags(text, topK=5, withWeight=True)
for word, weight in keywords:
    print(f'{word} {weight}')

     jieba.analyse是jieba库的子模块,用于关键词提取。从文本中自动挑选出最具代表性和信息量大词语的过程,通常用于信息检索、文本挖掘等领域。topK指定返回的关键词数量。withWeight=True指定返回的关键词是否包括权重(每个关键词的评分)。weight是关键词的权重(权重越高,表示该词语在文本中的重要性越大)。

    extract_tags 方法是基于 TF-IDF(Term Frequency-Inverse Document Frequency) 算法进行关键词提取的。TF-IDF 是常用词频统计方法,能够通过计算词语在文本中的出现频率和在其他文档中的出现情况来评估词语的重要性。

7.自定义词典

import jieba

# 加载自定义词典
jieba.load_userdict("userdict.txt")

# 测试分词效果
text = "李四和腾讯正在讨论深度学习的技术应用。"
seg_list = jieba.cut(text)
print("分词结果:" + "/ ".join(seg_list))

     自定义词典可以提高 jieba 分词的准确性,特别是在遇到人名、地名、行业术语等特殊词汇时。userdict.txt 是文本文件,其中包含jieba 分词时识别的自定义词汇。文件的格式通常是每行一个词汇,并且每个词汇后面可以附带一个权重值(如果不指定权重,则使用默认权重),每行一个词,词语后面可以加上词频(可选)。

     jieba.cut(text)使用 jieba.cut 方法对文本 text 进行分词处理。返回生成器(generator),通过 join 可以将其转化为可读的字符串。"/ ".join(seg_list)将分词结果从生成器中提取出来,并使用斜杠 (/) 连接每个词。最终的分词结果是一个按 / 分隔的词语列表。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2262757.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Android 动画深度解析

一、Android 动画发展历程与核心类型总览 自 Android 诞生起,动画系统便不断推陈出新。早期存在补间动画(Tween Animation)与帧动画(Frame Animation),而 Android 3.0 重磅引入属性动画(Proper…

Linux-ubuntu之主频和时钟配置

Linux-ubuntu之主频和时钟配置 一,主频二,其它时钟配置1.PLL2和PLL3的PFD0-3设置2.AHB_CLK_ROOT3.IPG 和 PERCLK时钟 三,总结 一,主频 24MHz 晶振为内核和其它外设提供时钟源,经电路后到PLL1变为996MHZ,再…

Autosar入门_汽车电子控制器

上一篇 | 返回主目录 汽车电子控制器 1 汽车电子控制器定义2 从功能角度来看构成2.1 车门控制器简单示例2.1.1 解锁过程分析2.1.2 无框车窗短降2.1.3 下电控制电耗2.2 控制器几大基本功能 3 从硬件构成角度看构成3.1 芯片类别说明3.2 芯片与功能联系 1 汽车电子控制器定义 汽…

变压器“变压”和“变流”说明

变压器可以改变交流电压的大小,也可以改变交流电流的大小。 改变交流电压 变压器既可以升高交流电压,也能降低交流电压。在忽略电能损耗的情况下,变 压器电压U、二次电压U2与烧组匝数N、二次烧组匝数的关系为: n称为匝数比或电…

初学stm32 --- 时钟配置

目录 stm32时钟系统 时钟源 (1) 2 个外部时钟源: (2)2 个内部时钟源: 锁相环 PLL PLLXTPRE: HSE 分频器作为 PLL 输入 (HSE divider for PLL entry) PLLSRC: PLL 输入时钟源 (PL…

[机器学习]XGBoost(3)——确定树的结构

XGBoost的目标函数详见[机器学习]XGBoost(2)——目标函数(公式详解) 确定树的结构 之前在关于目标函数的计算中,均假设树的结构是确定的,但实际上,当划分条件不同时,叶子节点包含的…

常用命名总结

命名在编程中是非常重要的,它直接影响到代码的可读性、可维护性和开发效率。一个好的命名能够让代码更加直观、易于理解和修改,反之,不恰当的命名可能导致混乱、错误和难以调试的问题。以下是一些关于命名的最佳实践和原则: 1. 简…

AutoMQ 流表一体新特性 Table Topic 发布: 无缝集成 AWS S3 Table 和 Iceberg

超越共享存储:使用 Apache Iceberg 中的 AutoMQ Table Topic 实现流处理与分析的统一 自 2023 年底官宣以来,AutoMQ 成功地将 Apache Kafka 从“Shared Nothing architecture”转变为“Shared Storage architecture”,这为京东、知乎、小红书…

maven使用Dependency-Check来扫描安全漏洞

在现代软件开发中,使用开源库和第三方依赖项已成为常态。然而,这些依赖项可能包含已知的安全漏洞,给应用程序带来潜在的风险。为了解决这个问题,OWASP Dependency-Check 应运而生。本文将介绍 OWASP Dependency-Check 的功能、安装…

#渗透测试#红队全栈 powshell基础使用

声明! 学习视频来自B站up主 泷羽sec,任何违法事件与本人以及泷羽sec团队无关,切勿触碰法律底线,否则后果自负!!!! 目录标题 认识powsehll打开方式 使用方式美化自己的powershell简单…

Qt:QMetaObject::connectSlotsByName实现信号槽自动关联

简介 在Qt中,QMetaObject::connectSlotsByName 是一个便利的方法,它可以根据对象的对象名(objectName)自动将信号和槽连接起来。但是,要使用这个方法,必须确保: 1 控件(如按钮&…

《算法ZUC》题目

判断题 ZUC算法LFSR部分产生的二元序列具有很低的线性复杂度。 A.正确 B.错误 正确答案A 单项选择题 ZUC算法驱动部分LFSR的抽头位置不包括( )。 A.s15 B.s10 C.s7 D.s0 正确答案C 单项选择题 ZUC算法比特重组BR层主要使用了软件实现友好的…

maven项目中对不同目录下的同包同名类的引用情况整理

说明 maven项目,允许在不同目录中出现相同包名和相同类名,不会出现冲突,包括: java目录test目录依赖中目录 这里就用Hutool.class类中的一个常量做测试,如图 好奇同包同名类同时存在时,会加载哪个类 Syst…

【UE5 C++课程系列笔记】10——动态单播/多播的基本使用

目录 概念 申明动态委托 一、DECLARE_DYNAMIC_DELEGATE 二、DECLARE_DYNAMIC_MULTICAST_DELEGATE 绑定动态委托 一、BindDynamic 二、AddDynamic 三、RemoveDynamic 执行动态委托 ​一、Execute 二、ExecuteIfBound 三、IsBound 四、Broadcast 动态单播使用示…

Redis篇-19--运维篇1-主从复制(主从复制,读写分离,配置实现,实战案例)

1、概述 Redis的主从复制(Master-Slave Replication)是一种数据冗余机制,它允许将一台Redis服务器的数据复制到其他Redis服务器。在主从复制中,有一台主服务器(Master)和一个或多个从服务器(Sl…

【ORACLE】一个允许关键字作为别名所引起的语法歧义场景

前言 最近在看SQL语法解析器,发现了antlr4提供的PlSql语法树存在一个BUG,然后我顺着这个BUG,构造了一条SQL,在ORACLE执行,如下 然后神奇的事情出现了,这个查询竟然没有返回行!t1表左关联t2&…

【前端】Jquery拍照,通过PHP将base64编码数据转换成PNG格式,并保存图像到本地

目录 一、需求 二、开发语言 三、效果 四、业务逻辑: 五、web端调用摄像头 六、示例代码 1、前端 2、后端 一、需求 web端使用jquery调用摄像头拍照,并使用PHP把base64编码转换成png格式图片,下载到本地。 由于js不能指定图片存储的…

本地摄像头视频流在html中打开

1.准备ffmpeg 和(rtsp-simple-server srs搭建流媒体服务器)视频服务器. 2.解压视频流服务器修改配置文件mediamtx.yml ,hlsAlwaysRemux: yes 3.双击运行服务器。 4,安装ffmpeg ,添加到环境变量。 5.查询本机设备列表 ffmpeg -list_devices true -f dshow -i d…

机器情绪及抑郁症识别算法(六)

✨✨ 欢迎大家来访Srlua的博文(づ ̄3 ̄)づ╭❤~✨✨ 🌟🌟 欢迎各位亲爱的读者,感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢,在这里我会分享我的知识和经验。&am…

34. Three.js案例-创建球体与模糊阴影

34. Three.js案例-创建球体与模糊阴影 实现效果 知识点 WebGLRenderer WebGLRenderer 是 Three.js 中用于渲染 3D 场景的核心类。它负责将场景中的对象绘制到画布上。 构造器 new THREE.WebGLRenderer(parameters)参数类型描述parametersObject可选参数对象,包…