当前位置: 首页 > news >正文

六、深度学习——NLP

一、自然语言概述

  • 自然语言处理研究的主要是通过计算机算法来理解自然语言。对于自然语言来说,处理的数据主要就是人类的语言,该类型的数据不像我们前面接触的结构化数据或图像数据可以很方便的进行数值化

二、词嵌入层

  • 词嵌入层的作用就是将文本转换为向量,词嵌入层首先会根据输入的词的数量构建一个词向量矩阵,例如:我们有5个词,每个词希望转换成3维度的向量,那么构建的矩阵的形状即为5*3,输入的每个词都对应了一个该矩阵中的一个向量

在Pytorch中,使用nn.Embedding词嵌入层来实现输入词的向量化

nn.Embedding(num_embeddings = 10, embedding_dim = 4)

nn.Embedding对象构建时,最主要有两个参数:

  • num_embeddings表示词的数量
  • embedding_dim表示用多少维的向量来表示每个词

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

  1. 先将语料进行分词,构建词与索引的映射,我们可以把这个映射叫做词表,词表中的每个词都对应了一个唯一的索引
  2. 然后使用nn,Embedding构建词嵌入矩阵,词索引对应的向量即为该词对应的数值化后的向量表示
import jieba
import torch
import torch.nn as nn# 分词
text = "北京冬奥的进度条已经过半,不少外国运动员在完成自己的比赛后踏上归途"
words = jieba.lcut(text)
print(words)print("-"*50)
# 去重
un_words = list(set(words))
print(un_words)
print("-"*50)
num = len(un_words)
print(num)# 调用embedding
embeds = nn.Embedding(num_embeddings=num, embedding_dim=3)
print(embeds(torch.tensor(4))) # 获取  '已经'  的词向量print("-"*50)for i,word in enumerate(un_words):print(word)print(embeds(torch.tensor(i)))
http://www.lryc.cn/news/587357.html

相关文章:

  • 无缝衔接直播流体验
  • 早期 CNN 的经典模型—卷积神经网络(LeNet)
  • 板凳-------Mysql cookbook学习 (十一--------8)
  • 【深度学习新浪潮】什么是新视角合成?
  • STM32-第五节-TIM定时器-1(定时器中断)
  • JAVA并发——synchronized的实现原理
  • 特征选择方法
  • 一文打通MySQL任督二脉(事务、索引、锁、SQL优化、分库分表)
  • GraphRAG Docker化部署,接入本地Ollama完整技术指南:从零基础到生产部署的系统性知识体系
  • AEC线性处理
  • 【iOS】方法与消息底层分析
  • 【设计模式】命令模式 (动作(Action)模式或事务(Transaction)模式)宏命令
  • phpMyAdmin:一款经典的MySQL在线管理工具又回来了
  • 【RA-Eco-RA6E2-64PIN-V1.0 开发板】ADC 电压的 LabVIEW 数据采集
  • 第一个Flink 程序 WordCount,词频统计(批处理)
  • git实操
  • 鸿蒙项目构建配置
  • 区分三种IO模型和select/poll/epoll
  • Java设计模式之行为型模式(命令模式)
  • Spring Boot + MyBatis 实现用户登录功能详解(基础)
  • JAVA学习笔记 JAVA开发环境部署-001
  • 深入分析---虚拟线程VS传统多线程
  • 力扣刷题记录(c++)09
  • 在 OCI 生成式 AI 上搭一个「指定地区拉面店 MCP Server」——从 0 到 1 实战记录
  • opencv中contours的使用
  • 【设计模式】策略模式(政策(Policy)模式)
  • Java小白-设计模式
  • Java 接口 剖析
  • 操作系统-第四章存储器管理和第五章设备管理-知识点整理(知识点学习 / 期末复习 / 面试 / 笔试)
  • 什么是渐进式框架