文本处理基本方法
目录
分词
jieba
词性标注
😆😆😆感谢大家观看😆😆😆
分词
在中文文本中,由于词与词之间没有明显的界限符,如英文中的空格,因此分词是中文自然语言处理的一个基础且重要的步骤。分词的准确性直接影响到后续的语言处理任务,如词性标注、句法分析等。在英文的行文中,单词之间是以空格作为自然分界符的,而中文只是字、句和段能通过明显的分界符来简单划界,唯独词没有一个形式上的分界符。分词过程就是找到这样分界符的过程。
分词的作用:
词作为语言语义理解的最小单元, 是人类理解文本语言的基础. 因此也是AI解决NLP领域高阶任务, 如自动问答, 机器翻译, 文本生成的重要基础环节。
- 句子:“我爱自然语言处理。”
- 分词结果:“我 / 爱 / 自然语言处理。”
在这个例子中,“自然语言处理”作为一个整体是一个专有名词,应该被识别为一个单独的词语,而不是分开为“自然”、“语言”和“处理”。
- 句子:“中国的首都北京是一个历史悠久的城市。”
- 分词结果:“中国 / 的 / 首都 / 北京 / 是 / 一个 / 历史 / 悠久 / 的 / 城市。”
jieba
jieba库利用一个中文词库来确定汉字之间的关联概率,通过这些概率来组合成词组,从而形成分词结果。除了基本的分词功能,jieba还支持关键词提取、词性标注、词位置查询等高级功能。用户可以向jieba库中添加自定义词组,以提高特定领域文本的分词准确性。jieba库考虑到了性能问题,支持并行分词,提高大规模文本处理的效率。这使得它成为当前Python语言中优秀的中文分词组件之一。
jieba是一个强大的中文分词工具,它具备多种特性,适用于不同的分词需求。三种分词模式
- 精确模式:此模式能够精确地将文本分离开,不会产生冗余的词组。
- 全模式:在全模式下,系统会扫描出文本中所有可能的词语,这可能会包含一些冗余的词汇。
- 搜索引擎模式:这种模式是在精确模式的基础上,对长词进行再次切分,特别适用于搜索引擎中的分词处理。
pip install jieba
import jiebasentence = "我爱自然语言处理"
seg_list = jieba.cut(sentence, cut_all=False)
print("精确模式分词结果:", "/".join(seg_list))
中文繁体分词:
import jieba
content = "煩惱即是菩提,我暫且不提"
jieba.lcut(content)
['煩惱', '即', '是', '菩提', ',', '我', '暫且', '不', '提']
三种分词模式案例
- 精确模式:使用
jieba.cut()函数,设置参数cut_all=False(默认值)。
import jiebatext = "我爱自然语言处理"
seg_list = jieba.cut(text, cut_all=False)
print("精确模式分词结果:", "/".join(seg_list))
2.全模式:使用jieba.cut()函数,设置参数cut_all=True。
import jiebatext = "我爱自然语言处理"
seg_list = jieba.cut(text, cut_all=True)
print("全模式分词结果:", "/".join(seg_list))
- 3搜索引擎模式:使用
jieba.cut_for_search()函数。
import jiebatext = "我爱自然语言处理"
seg_list = jieba.cut_for_search(text)
print("搜索引擎模式分词结果:", "/".join(seg_list))
使用jieba分词时,可以通过添加自定义词典来提高分词的准确性。
- 创建自定义词典文件:首先,创建一个文本文件,将需要添加到词典中的词汇按照每行一个词的格式列出。例如,如果你的专业领域有特殊术语或者你想加入人名、地名等,都可以在这个文件中添加。
- 加载自定义词典:在使用jieba分词时,可以通过
jieba.load_userdict(file_name)函数加载自定义词典。这样,jieba在分词时就会自动识别并使用这些新词。 - 使用自定义词典进行分词:加载了自定义词典后,可以像平常一样使用
jieba.cut函数进行分词,此时jieba会优先考虑自定义词典中的词汇。
import jieba# 加载自定义词典
jieba.load_userdict('my_dict.txt')# 使用自定义词典进行分词
sentence = "这是一个包含专业术语的句子"
seg_list = jieba.cut(sentence, cut_all=False)
print("使用自定义词典后的分词结果:", "/".join(seg_list))
命名实体识别
命名实体识别(Named Entity Recognition, NER)是自然语言处理(NLP)中的一项基础任务,它的目标是从文本中识别出具有特定意义的实体,并将这些实体分类到预定义的类别。
命名实体识别包括以下几个关键点:
- 边界识别:确定文本中实体的开始和结束位置。
- 类别识别:将识别出的实体归类到如人名、地名、组织名、时间表达式等类别中。
- 序列标注:命名实体识别属于序列标注任务,需要为文本中的每个词或字分配一个标签,以指示它是否属于某个命名实体以及它的类别。
词性标注
词性: 语言中对词的一种分类方法,以语法特征为主要依据、兼顾词汇意义对词进行划分的结果, 常见的词性有14种, 如: 名词, 动词, 形容词等。
我爱自然语言处理
==>
我/rr, 爱/v, 自然语言/n, 处理/vn
rr: 人称代词
v: 动词
n: 名词
vn: 动名词
词性标注以分词为基础, 是对文本语言的另一个角度的理解, 因此也常常成为AI解决NLP领域高阶任务的重要基础环节 。
要使用jieba进行中文词性标注,可以使用jieba.posseg模块:
import jieba.posseg as pseg# 待分词的文本
text = "我爱自然语言处理"# 使用jieba进行词性标注
words = pseg.cut(text)# 输出每个词语及其词性
for word, flag in words:print(f"{word}({flag})", end=" ")# 我(r) 爱(v) 自然语言处理(nz)
其中,"r"表示代词,"v"表示动词,"nz"表示其他专有名词。请注意,jieba的词性标注功能基于其内置的词典和规则,可能无法完全准确地标注所有词汇的词性。
相关文章:
文本处理基本方法
目录 分词 jieba 词性标注 😆😆😆感谢大家观看😆😆😆 分词 在中文文本中,由于词与词之间没有明显的界限符,如英文中的空格,因此分词是中文自然语言处理的一个基础且…...
Java面试题(Spring篇)
💟💟前言 友友们大家好,我是你们的小王同学😗😗 今天给大家打来的是 Java面试题(Spring篇) 希望能给大家带来有用的知识 觉得小王写的不错的话麻烦动动小手 点赞👍 收藏⭐ 评论📄 小王的主页…...
操作系统:malloc与堆区内存管理
malloc是函数而不是系统调用,他的底层是同调调用brk和mmap这两个系统调用实现功能的,具体选择brk还是mmap要看申请的空间大小以及malloc中的阈值(一般是128kb) 注意申请的空间只有使用才会触发缺页中断映射到物理内存 不理解的话先…...
javaSwing推箱子游戏
一、简介 策略性游戏可以锻炼人的思维能力还能缓解人的压力,使人们暂时忘却生活当中的烦恼,增强人们的逻辑思维能力,游戏的艺术美也吸引着越来越多的玩家和厂商,寓教于乐,在放松人们心情的同时还可以活跃双手。在人类…...
JAVA多线程之JMM
文章目录 1. Java内存模型2. 内存交互3. 三大特性3.1 可见性3.1.1 可见性问题3.1.2 原因3.1.3 解决方法 3.2 原子性3.3 有序性 4. 指令重排5. JMM 与 happens-before5.1 happens-before关系定义5.2 happens-before 关系 在继续学习JUC之前,我们现在这里介绍一下Java…...
Windows10 专业版 系统激活
Windows10 专业版 系统激活 参考: Windows10系统激活技巧 第一步:在电脑桌面,新建一个文本文档 第二步:打开文本文档,输入以下代码后,直接保存关闭文档 slmgr/skms kms.03k.org slmgr/ato 第三步࿱…...
C#使用LINQ和EF Core
在实际应用中,您可以使用 LINQ 查询 EF Core 来执行各种数据库操作。通过 LINQ,您可以轻松地过滤、排序、分组和连接数据。 要使用LINQ查询EF Core中的数据,您可以按照以下步骤进行操作: 首先,确保您已经安装了 Entit…...
数字人解决方案— SadTalker语音驱动图像生成视频原理与源码部署
简介 随着数字人物概念的兴起和生成技术的不断发展,将照片中的人物与音频输入进行同步变得越来越容易。然而,目前仍存在一些问题,比如头部运动不自然、面部表情扭曲以及图片和视频中人物面部的差异等。为了解决这些问题,来自西安…...
HTML5语法总结
文章目录 一.HTML基本框架二.标题标签三.段落标签四.换行与水平线标签五.文本格式化标签(加粗、倾斜、下划线、删除线)六.图像标签扩展:相对路径,绝对路径与在线网址 七.超链接标签八.音频标签九.视频标签十.列表标签十一.表格标签扩展:表格结构标签合并…...
在github下载的神经网络项目,如何运行?
github网页上可获取的信息 在github上面,有一个requirements.txt文件,该文件说明了项目要求的python解释器的模块。 - 此外,还有一个README.md文件,用来说明项目的运行环境以及其他的信息。例如python解释器的版本是3.7、PyTorc…...
spring boot学习第十四篇:使用AOP编程
一、基本介绍 1,什么是 AOP (1)AOP 为 Aspect Oriented Programming 的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。 (2)利用 AOP…...
凯特信安云签解决方案
联合解决方案 凯特信安基于《电子签名法》设计“云签服务方案”,应用人脸识别、电子签章签名云服务等技术,支持多个自然人、多个企业等签名,满足各种移动终端签署的应用场景。面向不动产登记、工改系统等社会公众服务系统,针对自然…...
【xr806开发板使用】连接wifi例程实现
##开发环境 win10 WSL ##1、环境配置 参考:https://aijishu.com/a/1060000000287513 首先下载安装wsl 和ubuntu https://docs.microsoft.com/zh-cn/windows/wsl/install (1)安装repo: 创建repo安装目录: mkdir ~/…...
停车管理系统asp.net+sqlserver
停车管理系统asp.netsqlserver 说明文档 运行前附加数据库.mdf(或sql生成数据库) 主要技术: 基于asp.net架构和sql server数据库, 功能模块: 停车管理系统asp.net sqlserver 用户功能有菜单列表 我的停车记录 专…...
新增多项功能,龙讯旷腾开源机器学习力场PWMLFF 2024.3版本上线
人工智能与传统计算机模拟结合是当今科学计算的一大趋势,机器学习力场作为其中的一个重要方向,能够显著提升分子动力学模拟的精度和效率。PWMLFF是一套由龙讯旷腾团队开发,在 GNU 许可下的开源软件包,用于快速生成媲美从头算分子动力学(AIMD&…...
Docker常用命令练习
文章目录 Docker常用命令练习1.docker 基础命令2.镜像命令3.保存镜像4.加载镜像5.容器命令6.环境变量7. --rm8. --networkhost Docker常用命令练习 1.docker 基础命令 安装docker yum install docker启动docker systemctl start docker关闭docker systemctl stop docker重…...
Kafka(十)安全
目录 Kafka安全1 安全协议1.1 PALINTEXT1.2 SSL1.2.1 生成服务端证书1.2.2 生成客户端证书1.2.3 修改配置listenersadvertised.listenerslistener.security.protocol.mapinter.broker.listener.namesecurity.inter.broker.protocolcontrol.plane.listener.name 1.3 SASL_PLAINT…...
流畅的 Python 第二版(GPT 重译)(四)
第二部分:函数作为对象 第七章:函数作为一等对象 我从未认为 Python 受到函数式语言的重大影响,无论人们说什么或想什么。我更熟悉命令式语言,如 C 和 Algol 68,尽管我将函数作为一等对象,但我并不认为 Py…...
windows docker
写在前面的废话 最近在学习riscv的软件相关内容,倒是有别人的sg2042机器可以通过ssh使用,但是用起来太不方便了,经常断掉,所以想着在自己的机器上跑一跑riscv的操作系统。最常见的有两种方法吧,第一个就是qemu…...
中国1km分辨率逐月地表太阳辐射均值数据集(1960-2022)
地表太阳辐射是地球系统的主要驱动因子,驱动着地球系统的能量、水和碳循环。它是地表水文、生态、农业等陆表过程模拟的重要驱动数据,也是太阳能利用的重要指标。发展长时间序列、高分辨率的地表太阳辐射数据集,对于地表过程研究、太阳能电厂…...
Java 语言特性(面试系列1)
一、面向对象编程 1. 封装(Encapsulation) 定义:将数据(属性)和操作数据的方法绑定在一起,通过访问控制符(private、protected、public)隐藏内部实现细节。示例: public …...
基于Docker Compose部署Java微服务项目
一. 创建根项目 根项目(父项目)主要用于依赖管理 一些需要注意的点: 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件,否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...
从零实现STL哈希容器:unordered_map/unordered_set封装详解
本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说,直接开始吧! 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...
智能仓储的未来:自动化、AI与数据分析如何重塑物流中心
当仓库学会“思考”,物流的终极形态正在诞生 想象这样的场景: 凌晨3点,某物流中心灯火通明却空无一人。AGV机器人集群根据实时订单动态规划路径;AI视觉系统在0.1秒内扫描包裹信息;数字孪生平台正模拟次日峰值流量压力…...
以光量子为例,详解量子获取方式
光量子技术获取量子比特可在室温下进行。该方式有望通过与名为硅光子学(silicon photonics)的光波导(optical waveguide)芯片制造技术和光纤等光通信技术相结合来实现量子计算机。量子力学中,光既是波又是粒子。光子本…...
C++.OpenGL (14/64)多光源(Multiple Lights)
多光源(Multiple Lights) 多光源渲染技术概览 #mermaid-svg-3L5e5gGn76TNh7Lq {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-3L5e5gGn76TNh7Lq .error-icon{fill:#552222;}#mermaid-svg-3L5e5gGn76TNh7Lq .erro…...
JavaScript基础-API 和 Web API
在学习JavaScript的过程中,理解API(应用程序接口)和Web API的概念及其应用是非常重要的。这些工具极大地扩展了JavaScript的功能,使得开发者能够创建出功能丰富、交互性强的Web应用程序。本文将深入探讨JavaScript中的API与Web AP…...
【JavaSE】多线程基础学习笔记
多线程基础 -线程相关概念 程序(Program) 是为完成特定任务、用某种语言编写的一组指令的集合简单的说:就是我们写的代码 进程 进程是指运行中的程序,比如我们使用QQ,就启动了一个进程,操作系统就会为该进程分配内存…...
群晖NAS如何在虚拟机创建飞牛NAS
套件中心下载安装Virtual Machine Manager 创建虚拟机 配置虚拟机 飞牛官网下载 https://iso.liveupdate.fnnas.com/x86_64/trim/fnos-0.9.2-863.iso 群晖NAS如何在虚拟机创建飞牛NAS - 个人信息分享...
【LeetCode】3309. 连接二进制表示可形成的最大数值(递归|回溯|位运算)
LeetCode 3309. 连接二进制表示可形成的最大数值(中等) 题目描述解题思路Java代码 题目描述 题目链接:LeetCode 3309. 连接二进制表示可形成的最大数值(中等) 给你一个长度为 3 的整数数组 nums。 现以某种顺序 连接…...
