自然语言处理第2天:自然语言处理词语编码

news2024/12/17 12:57:10

Image Description

☁️主页 Nowl

🔥专栏 《自然语言处理》

📑君子坐而论道,少年起而行之

​​

在这里插入图片描述

文章目录

  • 一、自然语言处理介绍
  • 二、常见的词编码方式
    • 1.one-hot
      • 介绍
      • 缺点
    • 2.词嵌入
      • 介绍
      • 说明
  • 三、代码演示
  • 四、结语

一、自然语言处理介绍

自然语言处理(Natural LanguageProcessing)简称NLP,与一般的机器学习任务都不相同,自然语言处理研究我们的语言任务,因为文本是一个复杂的东西,我们如何让计算机去理解我们的自然语言是一个很有挑战的事情,一个普遍的思想就是将我们的语言进行编码

二、常见的词编码方式

1.one-hot

介绍

one-hot是一种简单的词编码方式,它包含每个词在句子中的位置信息,看下面的简单示例

假设有这样一句话: I like the
stars,那么四个单词对应的one-hot向量分别如图中所示,one-hot向量的长度即为句子长度

在这里插入图片描述

缺点

  • 仅能表示单词位置信息,无法表示更复杂的,如上下文,单词类型等信息
  • 无法处理词库外的词,即无法处理没有在数据集中的词汇

2.词嵌入

介绍

词嵌入是一种更加有效的表达单词的处理方法,看下面的简单示例

同样的一句话,词嵌入的表示方法如下图所示,每个词的词嵌入向量的长度由我们根据任务来设置,每个值包含了某种信息,上下文,词义等等

在这里插入图片描述

说明

词嵌入矩阵通常经过训练得到,训练后我们将获得一个包含所需数据的词嵌入矩阵,方便我们进行后续任务,情感分析,文本生成等

三、代码演示

这一部分展现了Bert预处理模型获取示例文本的词向量矩阵的代码,打印了词嵌入矩阵的维度和第一个词的词嵌入矩阵,仅作拓展,读者可以试着运行来得到一个直观感受(打印出来的维度是(12,768),可我们看到句子只有6个词,这是因为模型的分词方法导致的,它将句子分成10个词,多出来的两个是句首和句尾标识)

from transformers import BertTokenizer, BertModel
import torch

# 使用BERT的tokenizer和模型
tokenizer = BertTokenizer.from_pretrained('bert-base-uncased')
model = BertModel.from_pretrained('bert-base-uncased')

# 输入文本
text = "Example sentence to get BERT embeddings."

# 使用tokenizer编码文本
input_ids = tokenizer.encode(text, return_tensors='pt')
print(input_ids)

# 获取BERT模型的输出
with torch.no_grad():
    outputs = model(input_ids)

# 获取最后一层的输出(CLS token对应的向量)
last_hidden_states = outputs.last_hidden_state

# 打印CLS token的词嵌入向量
print(f"Embedding for 'CLS' token: {last_hidden_states[0].numpy().shape}")
print(last_hidden_states[0][0].numpy())

四、结语

自然语言处理的编码问题是一个很基础的问题,之后在自然语言处理领域中将会经常看到,请好好了解

在这里插入图片描述

感谢阅读,觉得有用的话就订阅下《自然语言处理NLP》专栏吧,有错误也欢迎指出

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

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

相关文章

通用基础模型+提示词是否能胜过微调模型?医学案例研究

论文链接在末尾 摘要 通用基础模型,如GPT-4,在各种领域和任务中展现出令人惊讶的能力。然而,普遍存在这样一种假设,即它们在没有专业知识深度训练的情况下无法达到专业能力。例如,迄今为止对医学竞赛基准的大多数探索都利用了领域特定的训练,正如在BioGPT和Med-PaLM等项…

windows系统和虚拟机上ubuntu系统通过虚拟串口进行通信

本文的目的是实现windows系统和虚拟机上安装的ubuntu通过串口进行通信。为了直观观测串口收发数据的内容,需要在windows系统和ubuntu系统使用串口助手来进行监听。windows系统端用的监听工具是串口助手SSCOM,ubuntu系统端使用的串口助手是CuteCom。 ubu…

class071 子数组最大累加和问题与扩展-下【算法】

class071 子数组最大累加和问题与扩展-下【算法】 code1 152. 乘积最大子数组 // 乘积最大子数组 // 给你一个整数数组 nums // 请你找出数组中乘积最大的非空连续子数组 // 并返回该子数组所对应的乘积 // 测试链接 : https://leetcode.cn/problems/maximum-product-subarray…

【Linux】系统初识之冯诺依曼体系结构与操作系统

👀樊梓慕:个人主页 🎥个人专栏:《C语言》《数据结构》《蓝桥杯试题》《LeetCode刷题笔记》《实训项目》《C》《Linux》 🌝每一个不曾起舞的日子,都是对生命的辜负 目录 前言 1.冯诺依曼体系结构 2.操作…

【Docker一】Docker架构、镜像操作和容器操作

一、docker基本管理和概念 1、概念 docker:开源的应用容器引擎。基于go语言开发的。运行在Linux系统中的开源的轻量级的“虚拟机” docker的容器技术可用在一台主机上轻松到达为任何应用创建一个轻量级到的,可移植的,自给自足的容器 dock…

51单片机数码管的使用

IO的使用2–数码管 本文主要涉及51单片机的数码管的使用 文章目录 IO的使用2--数码管一、数码管的定义与类型1.1 数码管的原理图二、 举个栗子2.1 一个数码管的底层函数2.2 调用上面的底层函数显示具体数字 一、数码管的定义与类型 数码管是一种用于数字显示的电子元件&#x…

数字系统设计(EDA)实验报告【出租车计价器】

一、问题描述 题目九:出租车计价器设计(平台实现)★★ 完成简易出租车计价器设计,选做停车等待计价功能。 1、基本功能: (1)起步8元/3km,此后2元/km; (2…

Redis 环境搭建2

文章目录 第2关:使用 Redis 第2关:使用 Redis 本文是接着上篇文章写的第二关代码,部分人再进入第二关时不会保留第一关的配置的环境,可以通过下面一句代码进行检验。 redis-cli -p 7001 -c如果进入到了redis界面就是有环境&…

Unity中Batching优化的GPU实例化(4)

文章目录 前言一、构建需要实例化的额外数据二、在顶点着色器,将实例化 ID 从 appdata 存入 v2f 传给片元着色器三、在片断着色器中访问具体的实例化变量三、使用代码修改Shader材质属性,实现GPU实例化后不同对象颜色不同的效果1、在C#测试脚本生成小板凳…

linux 中crontab 定时任务计划创建时间文件夹示例

1.创建一个sh脚本 /usr/bin/mkdir 是mkdir命令的路径 /usr/bin/chmod 是chmod命令的路径 2.编辑定时任务 crontab -e

PHP入门软件Wampserver与vscode

PHP入门软件Wampserver与vscode Wampserver 一个集成的PHP环境,非常好用,上链接官网:https://www.wampserver.com/#download-wrapper 推荐华军https://www.onlinedown.net/soft/82112.htm 无脑下一步就行,会出现两个弹窗全点否。…

有理函数的积分

1.多项式相除法: 2.分子分母次数带来的解题思路差异: 1.总体目的:降次 2.分子次数高于分母,采用多项式相除 3.分子次数等于分母,分离常数 4.最终形式:分子次数低分母次数高 3.不同形式的计算方法 4.按类拆…

排序:挖坑快排前后指针快排

目录 挖坑快排: 代码实现: 代码分析: 前后指针快排: ​编辑动画分析: 代码分析: 代码演示: 快排的优化:三数取一 挖坑快排: 挖坑法,顾名思义&am…

Unity打包到Webgl平台以及遇到的问题

Unity打包到Webgl平台以及遇到的问题 参考网站 Unity打包WebGL的全过程及在打包和使用过程中会遇到的问题(本地测试)-CSDN博客 unity打包到Webgl 并配置能正常运行 这里我用的是Unity2022.3.3f1c1版本 有两种方法 1、配置本地web服务 2、安装vsCode>添加插件LiveServe…

C语言进阶之路之顶峰相见篇

目录 一、学习目标 二、宏定义 预处理 宏的概念 带参宏 无值宏定义 三、条件编译 条件编译 条件编译的使用场景 四、头文件 头文件的作用 头文件的内容 头文件的基础语句: GCC编译器的4个编译步骤: 总结 一、学习目标 掌握宏定义含义和用…

持续集成交付CICD:通过API方式上传Nexus制品

目录 一、实验 1.通过API方式上传Nexus制品 二、问题 1.如何通过API方式上传PNG图片 2.如何通过API方式上传tar.gz 与 ZIP文件 3.如何通过API方式上传Jar file文件 4.如何通过API方式上传制品(maven类型的制品)文件 5.如何下载制品 一、实验 1.通…

我在Vscode学OpenCV 图像处理二(滤除噪声干扰)

图像处理二 滤除噪声干扰三、噪声3.1图像噪声3.2 滤波3.2.1均值滤波(1)锚点(2)中心点(下面第3小点会详细解释)(3)核的大小奇偶数的区别(1)举例奇偶的例子&…

tomcat篇---第四篇

系列文章目录 文章目录 系列文章目录前言一、为什么我们将tomcat称为Web容器或者Servlet容器 ?二、tomcat是如何处理Http请求流程的?三、tomcat结构目录有哪些?前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这…

软件测试相关

软件测试是什么? 使用人工和自动手段来运行或测试某个系统的过程,其目的在于验证它是否满足规定的需求或弄清预期结果与实际结果的差别。 为什么做软件测试?目的是什么? 发现软件存在的代码或业务逻辑错误 检验产品是否符合用户需…

Docker本地部署Drupal内容管理框架并实现公网远程访问

文章目录 前言1. Docker安装Drupal2. 本地局域网访问3 . Linux 安装cpolar4. 配置Drupal公网访问地址5. 公网远程访问Drupal6. 固定Drupal 公网地址7. 结语 前言 Dupal是一个强大的CMS,适用于各种不同的网站项目,从小型个人博客到大型企业级门户网站。它…