语言模型中的挑战 – 独热编码 (One-Hot Encoding)

embedded/2024/11/30 0:04:35/

什么是独热编码 (One-Hot Encoding)?

独热编码是一种将类别数据(如单词)转换为数值格式的方法。在自然语言处理(NLP)中,词汇表中的每个单词都被表示为一个唯一的向量,其中只有一个位置是“1”,其余全为“0”。


如何执行独热编码:

  1. 为每个单词分配数字(标签编码 Label-Encoding):

    • 将句子中的每个单词分配一个唯一的数字。
    • 例如,对于句子: "I love to play cricket on weekends"
      每个单词的分配如下:
      • "I" = 1, "love" = 2, "to" = 3, "play" = 4, "cricket" = 5, "on" = 6, "weekends" = 7。
  2. 将数字转换为独热向量:

    • 每个单词用一个二进制向量表示:
      • 向量长度等于词汇表大小(唯一单词数量)。
      • 对应分配的数字位置为“1”,其余位置为“0”。
    • 例如:
      • "I" = [1, 0, 0, 0, 0, 0, 0]
      • "love" = [0, 1, 0, 0, 0, 0, 0]
      • "cricket" = [0, 0, 0, 0, 1, 0, 0]

幻灯片中的例子:

  • 句子:"I love to play cricket on weekends"
  • 步骤 1: 为每个单词分配数字:
    • "I" = 1, "love" = 2, "to" = 3, ..., "weekends" = 7。
  • 步骤 2: 转换为独热向量:
    • "cricket"(分配为 5)= [0, 0, 0, 0, 1, 0, 0]。

独热编码的挑战:

  1. 高维度问题:

    • 对于较大的词汇表,向量会变得非常长且稀疏(大部分为零),导致内存和计算资源消耗大。
  2. 无法表示语义关系:

    • 独热编码无法捕捉单词之间的任何语义或句法关系。
    • 例如:“king”和“queen”虽然语义上相关,但它们的向量完全不同。
  3. 扩展性问题:

    • 随着词汇表大小的增加,矩阵尺寸会迅速膨胀,在实际 NLP 任务中难以处理。

解决独热编码局限的方法:

  1. 词嵌入 (Word Embeddings):

    • 使用稠密向量(例如 Word2Vec 或 GloVe)代替独热编码。
    • 词嵌入不仅维度低,还可以捕捉单词之间的语义关系。
  2. 减少词汇表大小:

    • 使用子词单元(例如 BPE 或 SentencePiece),将单词拆分为更小的单位。

总结:

独热编码虽然简单易用,但由于其高维度、缺乏语义关系表示等问题,在实际应用中往往会被更高效的词嵌入方法取代。


http://www.ppmy.cn/embedded/141604.html

相关文章

python操作Elasticsearch

使用elasticsearch 6.x版本,操作es数据。 #! -*- coding:utf-8 -* import timefrom elasticsearch import Elasticsearch, helpersclass EstUtil:_instance Nonedef __new__(cls, *args, **kwargs):if not cls._instance:cls._instance super(EstUtil, cls).__ne…

英语知识在线平台:Spring Boot技术应用

2相关技术 2.1 MYSQL数据库 MySQL是一个真正的多用户、多线程SQL数据库服务器。 是基于SQL的客户/服务器模式的关系数据库管理系统,它的有点有有功能强大、使用简单、管理方便、安全可靠性高、运行速度快、多线程、跨平台性、完全网络化、稳定性等,非常…

部署kafka-exporter

docker容器部署 docker run -d --namegrafana -v /etc/localtime:/etc/localtime:ro --restartalways -p 23000:3000 grafana/grafanadocker run -d --nameprometheus -p 29090:9090 --restartalways -v /etc/localtime:/etc/localtime:ro -v /home/prometheus/prometheus.ym…

工业物联网网关在设备接入物联网中的核心作用

一、工业物联网网关的定义与功能 工业物联网网关是工业领域中的一种重要设备,它位于工业物联网系统的边缘位置,负责连接、管理和协调工业设备与云平台之间的通信。作为边缘计算的关键组件,工业物联网网关能够实现工业设备、传感器、PLC、DCS…

五天SpringCloud计划——DAY1之mybatis-plus的使用

一、引言 咱也不知道为啥SpringCloud课程会先教mybatis-plus的使用,但是教都教了,就学了吧,学完之后觉得mybatis-plus中的一些方法还是很好用了,本文作为我学习mybatis-plus的总结提升,希望大家看完之后也可以熟悉myba…

Flink--API 之Transformation-转换算子的使用解析

目录 一、常用转换算子详解 (一)map 算子 (二)flatMap 算子 (三)filter 算子 (四)keyBy 算子 元组类型 POJO (五)reduce 算子 二、合并与连接操作 …

ES 和Kibana-v2 带用户登录验证

1. 前言 ElasticSearch、可视化操作工具Kibana。如果你是Linux centos系统的话,下面的指令可以一路CV完成服务的部署。 2. 服务搭建 2.1. 部署ElasticSearch 拉取docker镜像 docker pull elasticsearch:7.17.21 创建挂载卷目录 mkdir /**/es-data -p mkdir /**/…

idea中git的将A分支某次提交记录合并到B分支

一 实操案例 1.1 背景描述 在开发过程中,有时候需要将A分支某次提交记录功能合并到B分支上。主要原理用到git的cherry pick功能。 1.2 案例 实现的功能: master分支的11.24提交记录合并到feature_A分支; 1.master分支提交的记录 2.fea…