循环神经网络--NLP基础

一、简单介绍

        NLP(Natural Language Processing):自然语言处理是人工智能和语言领域的一个分支,它涉及计算机和人类语言之间的相互作用。

二、NLP基础概念

        词表(词库):文本数据集出现的所有单词的集合;

        语料库:用于自然语言处理NLP的文本数据集合,可以是书籍、文章、网页等;

注意:

  • 词库需去重:避免冗余,确保每个词汇的属性记录唯一。

  • 语料库无需刻意去重:保留重复以反映真实语言使用规律,支撑统计分析。

        词嵌入:将单词、文本映射到低维度的连续向量空间的技术,用于捕捉单词的语义和语法信息;   

三、NLP的特征工程

3.0特征工程提出的必要         

        在NLP中,我们处理的对象通常是文本资料,但是计算机只能识别数字信息。因此,特征工程是一种必要的手段:特征工程将文本数据转换为适合机器学习模型使用的数值表示过程,即将文本信息转换为数字信息的过程。

3.1词向量

        词向量也称为词嵌入(word embedding):指的是将文本资料转换为低维连续向量的过程。这些向量能够体现词语之间的语义关系。

        通过词嵌入这种方式,每一个单词都有唯一的词向量,将文本数据信息转换为了数字信息,这样机器就可以对单词进行计算,如利用余弦相似度公式,可以得出单词之间的相似度,相似度越高,两个单词在向量空间中靠的越近,夹角越小。

3.2传统的NLP特征工程

3.2.1one-hot独热编码

        one-hot:将每一个类别表示为一个向量,它的组成只能由0,1组成,并且在表示一个单词的时候,只能有一个单词为1,其他单词必须全部为0。

        因此,我们可以发现,如果单纯利用独热编码表示向量,

(1)我们写的文本资料多有少个字,那向量就有多长,这样会导致计算量巨大;

(2)想表示一段话的时候,最多不超过30个字,这时候其他的位置就必须全部为0,向量矩阵过于稀疏。

3.2.2词频-逆文档频率(TF-IDF)

        词频TF:在给定文档中,单个单词在文章中出现的频率-----出现次数/该文档的总词数

        逆文档频率IDF:用于衡量一个单词的重要程度,是将类似词频取倒数并取对数的值;

注意:

IDF 大的词,说明它在多数文档中不出现,仅在特定文档中出现,因此能有效区分不同主题的文档

        TF-IDF:综合考虑了词频和逆文档频率,取值为词频与逆文档频率的乘积结果。

3.3深度学习中NLP的特征输入

3.3.1稠密编码

        稠密编码的方式通常在特征嵌入中出现:将离散或高维稀疏数据转化为低维的连续、密集向量。

        特点:

(1)低维度:转换为低维度的向量之后,减少了计算和存储成本;

(2)语义相似度:引入余弦相似度公式计算语义相似性;

(3)可微学习:通过神经网络进行学习,反向传播算法进行优化。

3.3.2词嵌入算法

3.3.2.1embedding layer

        嵌入层用于神经网络的前端,并采用反向传播算法进行监督(更新优化)。向量矩阵以小的随机数进行初始化。

        它主要是用来实现输入词的向量化的。

        API:nn.Embedding(len(set_word),embedding_dim)

 将输入词转换为词向量的步骤:

(1)对文本进行分词;

(2)构建映射词表,这里必须用去重的句子;

(3)使用嵌入层,调用nn.Embedding.

代码:

import torch
import torch.nn as nn
sentences = 'I like a dog , it is cute'
#分词
sentences = sentences.split(' ')#去重
sentences = list(set(sentences))#映射
word_index = {word:index for index,word in enumerate(sentences)}
index_word = {index:word for index,word in enumerate(sentences)}#向量化
embedding = nn.Embedding(len(sentences),4)
index = word_index['dog']
output = embedding(torch.tensor([index]))
print(output)

结果:

tensor([[-0.1077, -1.3688, -0.5193, -0.2856]], grad_fn=<EmbeddingBackward0>)

3.3.2.2word2vec

        word2vec是一种高效训练词向量的模型。一般分为CBOW模型和Skip-Gram模型:

(1)CBOW:根据周围词来预测中心词;

(2)Skip-Gram:根据中心词预测周围词。

API:from gensim.model import Word2Vec

gensim库需要自行下载:pip install gensim

model = Word2Vec(sentences,vector_size,window,min_count,sg)

参数介绍:

sentences:二维list。

vector_size:特征信息维度。

window:当前词与预测词在一个句子中最大的距离。

min_count:可以对字典做截断,词频少于min_count次数的单词会被丢弃掉,默认值为5。

sg:设置为0,对应CBOW算法;设置为1对应Skip-Gram算法。

四、总结

        大致了解了NLP的简单术语,以及如何通过嵌入层实现对文本进行向量化,还可以利用现成模型word2vec对单词向量化。主要是了解一下大致知识就行,过过代码就可以了。本节内容要求没有严格。

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

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

相关文章

【Android】约束布局总结(1)

三三要成为安卓糕手 零&#xff1a;创建布局文件方式 1&#xff1a;创建步骤ctrl alt 空格 设置根元素2&#xff1a;处理老版本约束布局 在一些老的工程中&#xff0c;constrainlayout可能没有办法被直接使用&#xff0c;这里需要手动添加依赖implementation androidx.const…

S7-200 SMART 数字量 I/O 组态指南:从参数设置到实战案例

在工业自动化控制中&#xff0c;PLC 的数字量输入&#xff08;DI&#xff09;和输出&#xff08;DO&#xff09;是连接传感器、执行器与控制系统的 “神经末梢”。西门子 S7-200 SMART 作为一款高性价比的小型 PLC&#xff0c;其数字量 I/O 的灵活组态直接影响系统的稳定性与响…

可调谐激光器原理与设计 【DFB 与 DBR 激光器剖析】

可调谐激光器原理与设计 【DFB 与 DBR 激光器剖析】1. 可调谐激光器的原理与分类简介2. DFB 与 DBR 激光器结构原理比较2.1 DFB&#xff08;Distributed Feedback Laser&#xff09;激光器2.2 DBR&#xff08;Distributed Bragg Reflector&#xff09;激光器2.3 DFB 激光器与 D…

【前端工程化】前端项目开发过程中如何做好通知管理?

在企业级后台系统中&#xff0c;通知是保障团队协作、监控系统状态和及时响应问题的重要手段。与 C 端产品不同&#xff0c;B 端更关注构建完成、部署状态、异常报警等关键节点的推送机制。 本文主要围绕通知场景、通知内容、通知渠道、自动化集成等方面展开&#xff0c;适用于…

MySQL 9.4.0创新版发布,AI开始辅助编写发布说明

2025 年 7 月 22 日&#xff0c;MySQL 9.4.0 正式发布。 作为一个创新版&#xff0c;MySQL 9.4.0 最大的创新应该就是使用 Oracle HeatWave GenAI 作为助手帮助编写版本发布说明了。难道下一步要开始用 AI 辅助编写数据库文档了&#xff1f; 该版本包含的核心功能更新以及问题修…

基于WebSockets和OpenCV的安卓眼镜视频流GPU硬解码实现

基于WebSockets和OpenCV的安卓眼镜视频流GPU硬解码实现 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家&#xff0c;觉得好请收藏。点击跳转到网站。 1. 项目概述 本项目旨在实现一个通过WebSockets接收…

人大金仓 kingbase 连接数太多, 清理数据库连接数

问题描述 kingbase 连接数太多, 清理数据库连接数 [rootFCVMDZSZNST25041 ~]# su root [rootFCVMDZSZNST25041 ~]# [rootFCVMDZSZNST25041 ~]# su kingbase [kingbaseFCVMDZSZNST25041 root]$ [kingbaseFCVMDZSZNST25041 root]$ ksql could not change directory to "/r…

SpringMVC相关基础知识

1. servlet.multipart 大小配置 SpringBoot 文件上传接口中有 MultipartFile 类型的文件参数,上传较大文件时报错: org.springframework.web.multipart.MaxUploadSizeExceededException: Maximum upload size exceeded; nested exception is java.lang.IllegalStateExceptio…

HCIP第一次实验报告

一.实验需求及拓扑图&#xff1a;二.实验需求分析根据提供的网络拓扑图和实验要求&#xff0c;以下是对实验需求的详细分析&#xff1a;R5作为ISP:R5只能进行IP地址配置&#xff0c;其所有接口均配置为公有IP地址。认证方式:R1和R5之间使用PPP的PAP认证&#xff0c;R5为主认证方…

React入门学习——指北指南(第五节)

React 交互性:过滤与条件渲染 在前文我们学习了 React 中事件处理和状态管理的基础。本节将聚焦两个重要的进阶技巧 ——条件渲染(根据状态动态显示不同 UI)和列表过滤(根据条件筛选数据),这两者是构建交互式应用的核心能力,能让界面根据用户操作呈现更智能的响应。 条…

学习嵌入式的第二十九天-数据结构-(2025.7.16)线程控制:互斥与同步

以下是您提供的文本内容的排版整理版本。我已根据内容主题将其分为几个主要部分&#xff08;互斥锁、信号量、死锁、IPC进程间通信、管道操作&#xff09;&#xff0c;并使用清晰的结构组织信息&#xff1a;代码片段用代码块格式&#xff08;指定语言为C&#xff09;突出显示。…

COZE官方文档基础知识解读第六期 ——数据库和知识库

一&#xff0c;一键直连数据上传&#xff0c;存储&#xff0c;使用 火山方舟的数据库和知识库的核心&#xff0c;都是基于开源的数据库产品&#xff08;mysql&#xff0c;向量数据库等&#xff09;&#xff0c;将数据库交互的逻辑封装在后端&#xff0c;与前端做耦合&#xff0…

生产环境使用云服务器(centOS)部署和使用MongoDB

部署MongoDB流程1. ​安装MongoDB​版本选择建议​CentOS 7​&#xff1a;推荐MongoDB 4.4.x&#xff08;兼容性好&#xff09;​CentOS 8/9​&#xff1a;建议最新稳定版&#xff08;如6.0&#xff09;&#xff0c;需单独安装mongodb-database-tools安装步骤1.添加官方仓库# 添…

思博伦第二到三层测试仪(打流仪)TestCenter 2U硬件安装及机箱加电_双极未来

&#xff08;1&#xff09;安装板卡&#xff1a;上图中共 4 个红色线框&#xff0c;上边两个红色线条框住的是机箱的左右两侧导轨&#xff0c;下边两条红色 线条框住的是板卡拉手条&#xff08;用于承载板卡PCB的金属板&#xff09;左右两边的边沿。 安装时将拉手条两边的边沿与…

【华为】笔试真题训练_20250611

本篇博客旨在记录自已的笔试刷题的练习&#xff0c;里面注有详细的代码注释以及和个人的思路想法&#xff0c;希望可以给同道之人些许帮助。本人也是小白&#xff0c;水平有限&#xff0c;如果文章中有什么错误或遗漏之处&#xff0c;望各位可以在评论区指正出来&#xff0c;各…

新浪微博APP v14.5.0:连接世界的社交媒体平台

新浪微博APP 是一款广受欢迎的社交媒体应用程序&#xff0c;凭借其强大的功能和丰富的社交生态&#xff0c;成为用户获取信息、表达观点、互动交流的重要平台。最新版 v14.5.0 内置了微博助手 v2.3.0&#xff0c;进一步提升了用户体验和功能多样性。 软件功能 1. 发布微博 用…

静态枚举返回(简单实现字典功能)

枚举缓存策略的实现与应用 通过静态Map缓存枚举类的Class对象&#xff0c;避免每次请求时重复反射加载。核心实现是一个包含枚举类名与对应Class映射的Registry类&#xff1a; public class EnumRegistry {private static final Map<String, Class<?>> ENUM_MAP …

深分页性能问题分析与优化实践

在日常测试工作中&#xff0c;我们经常会遇到分页查询接口&#xff0c;例如&#xff1a; GET /product/search?keyword&pageNum1&pageSize10乍看之下&#xff0c;这样的分页接口似乎并无性能问题&#xff0c;响应时间也很快。但在一次性能压测中&#xff0c;我们复现了…

LeetCode——1957. 删除字符使字符串变好

通过万岁&#xff01;&#xff01;&#xff01; 题目&#xff1a;给你一个字符串&#xff0c;然后让你删除几个字符串&#xff0c;让他变成好串&#xff0c;好串的定义就是不要出现连续的3个一样的字符。思路&#xff1a;首先就是要遍历字符串。我们将要返回的字符串定义为ret&…

Aerospike与Redis深度对比:从架构到性能的全方位解析

在高性能键值存储领域&#xff0c;Aerospike与Redis是两款备受关注的产品。Redis以其极致的单机性能和丰富的数据结构成为主流选择&#xff0c;而Aerospike则凭借分布式原生设计和混合存储架构在大规模场景中崭露头角。本文将从架构设计、数据模型、性能表现、扩展性等核心维度…