让 AI 真正读懂人类语言,5分钟搞懂 word embedding 技术

2023-11-12

大家好啊,我是董董灿。

在学习自然语言处理(NLP,Natural Language Processing)时,最先遇到的一个概念,可能就是词嵌入(word embedding)了。

词嵌入,是让AI真正理解人类自然语言的技术(看完本文再回过头来看这句话,或许会有不一样的认识)。

那什么是词嵌入呢? 在自然语言处理中为什么需要词嵌入技术呢?

1、什么是词嵌入?

词嵌入,英文 Word Embedding,是自然语言处理中的一项关键技术。简单来说,它就是把单词或汉字转换成向量的过程。

我们知道,计算机在处理任何形式的数据时,处理的都是数字,更极端点处理的都是二进制数字。

不论是显示图片、文本,还是播放语音、视频,在计算机看来都是数据流。

因此,计算机在处理文本时,只有将文本转换成数字形式才能进行计算,而词嵌入就是为了解决这个问题。

它将每个单词映射成一个向量,这个向量可以用来表示这个单词的语义和特征。

举个例子,我们可以把“苹果”这个单词映射成一个向量[0.2, 0.9, -0.1, ...],把“香蕉”映射成[0.5, -0.3, 0.8, ...],这样计算机在看到向量[0.2, 0.9, -0.1, ...]时,就能够理解这个单词是“苹果”了。

2、为什么需要词嵌入?

我猜你肯定会问一个问题:为什么不直接用数字来表示单词,而非要搞出一个向量呢?

这是因为单纯用数字表示单词,会丢失掉很多有用的信息。

比如,假设用数字1代表“苹果”,用数字2代表“香蕉”,虽然这样可以区分出“苹果”和“香蕉”,但是无法表示他们之间的关系。

而词嵌入的好处在于,它能够在向量空间中保持单词之间的相似关系,也就是说,语义相近的单词在向量空间中会有相近的表示。

举个例子,我们用一个二维向量表示单词,可以把“苹果”表示为[1, 1],把“香蕉”表示为[2, 2]。

在这个向量空间中,你会发现这两个向量非常接近(可以更科学的计算两者之间的距离),因为它们的含义很相似,这点其实和one-hot编码有点像,可以查看 5分钟理解 one-hot 编码

这样的表示方式使得计算机能够更好地理解单词之间的关系,比如在文本分类、情感分析等任务中,word embedding 可以使模型更准确地识别单词的含义和上下文。

3、一个例子

接下来看一个例子,来更直观地理解 word embedding 的作用。

假设我们要对一篇文章中的单词进行编码,有四个单词:“猫”、“狗”、“鱼”、“跑”。

首先,用数字表示这些单词:

- 猫:1

- 狗:2

- 鱼:3

- 跑:4

如果我们只是用数字表示,那么计算机只能知道它们是不同的单词,无法确定“猫”和“狗”更接近,还是“鱼”和“跑”更接近,因为他们之间的数值都相差1。

现在我们来用 word embedding 方法来表示这些单词,词向量可能是:

- 猫:[0.2, 0.7]

- 狗:[0.3, 0.9]

- 鱼:[-0.5, 0.2]

- 跑:[0.8, -0.1]

将这四个向量画在坐标轴上,如图所示:

图片

可以看到,“猫”和“狗”这两个向量非常接近,因为它们都属于动物,“鱼”和“跑”这两个向量则相距很远,因为它们不论属性还是含义都相差很远。

这样的表示方式让计算机能够更好地理解单词之间的关系,比如在文本分类任务中,当计算机遇到一个句子“猫和狗在跑”,它会知道“猫”和“狗”是相似的词,而“跑”则和它们有些不同。

通过 word embedding 技术,将单词转换成向量表示,保留了单词之间的语义和特征关系,这样计算机便能够更准确地理解文本中的含义和语义关系,从而提高自然语言处理的性能。

中华上下5000年,那么多单词和文本,计算机是如何把大量的文本转换到向量空间,同时维持不同对应的向量之间的远近关呢?这需要专门的模型来处理,比如 word2vec 模型等等,后面会逐步写一写。

欢迎持续关注“董董灿是个攻城狮”,一起拆解好玩的算法。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

让 AI 真正读懂人类语言,5分钟搞懂 word embedding 技术 的相关文章

随机推荐

  • 2021年继续进行osg/osgEarth视频教程和书,例子,源码

    按照原计划 调试完osg最长的一帧 是转ue4的最低要求 琢磨了几天 决定继续搞osg osgearth 原因是 伤其十指不如断其一指 在公司的代码中 有osgearth的使用 我以为很新鲜 是独门绝技 或者请的外援 结果是osgearth
  • Vue.js前端部署

    一 Vue打包js css等路径问题 修改红框 框出来的地方 原本是assetsPublicPath 现在改成assetsPublicPath 如果有这段 自动忽略 二 Vue打包背景图片路径问题 修改这个地方 背景图片才会出来 三 多环境
  • python面向对象的方法计算圆的周长和面积

    class yuan def init self r self r r print 圆的半径为 self r def get circle self print 圆的周长为 2 3 14 self r def get area self p
  • 【爬虫练习】爬取知乎\百度热搜榜

    利用requests模块和re正则爬取知乎 百度热搜榜问题 并将数据保存到EXCEL中 一 发送get请求 import requests import re import datetime import openpyxl import o
  • VS Code(html)基础标签及代码

    浏览器F12 打开检查源代码 基础标签 头文件 包含元数据 如文档的标题 字符集 样式表链接等 包裹整个HTML文档 内容 网页标题 定义文档的标题 显示在浏览器的标题栏或标签页 网页图标 包含网页的所有内容 如文本 图像 音频 视频等 注
  • 如何开启mysql计划事件

    首先在sql中查询计划事件的状态 SHOW VARIABLES LIKE event scheduler 如果返回的是off表示当前是关闭状态 如果是on当前已经开启了计划任务 在mysql程序的目录下找到my ini文件 添加一个项 ev
  • vue修改网站名称和图标

    在项目中找到public文件夹下面的index html 修改如下图
  • oh-my-zsh自定义配置

    oh my zsh主题配置 默认的zsh主题robbyrussell已经很棒了 简洁高效 能很好的显示git的相关信息 比如branch信息 修改 删除 添加等操作 但是多用户的话就不能很好的展示 我们可以通过修改robbyrussell的
  • No architectures to compile for (ONLY_ACTIVE_ARCH=YES, active arch=x86_64, VALID_ARCHS=armv7 armv7s)

    当运行工程出现 错误代码 No architectures to compile for ONLY ACTIVE ARCH YES active arch x86 64 VALID ARCHS armv7 armv7s 时 按照上图 设置选
  • idea中 启动错误: 找不到或无法加载主类 解决办法

    说真的 用了idea后感觉很强大 但是有时候也会有很多坑 最近就遇到一个问题 启动错误 找不到或无法加载主类 刚新建一个util类 写了一个简单的main方法 然后输出一句话 就是这么简单 然后main 方法run的时候报 错误 找不到或无
  • jpg、png、jpeg区别与压缩等知识总结 —— 性能优化篇

    jpeg jpeg是一个国家专家小组 同事也是一种算法名称 而用JPEG算法压缩出来的静态图片文件称为JPEG文件 扩展名通常为 jpg jpe jpeg JPEG文件大体上可以分成两个部分 标记码 Tag 和压缩数据 标记码由两个字节构成
  • 我是如何设计一个包办所有对企政策的城市平台

    它是容纳了一个城市所有政府对企政策的平台 它的非正式代号是 城市主站 它的定位是 只要这个平台部署在某 入口 1 和子站入口 2 恰好对应了 路径的上一层 于是我用最少的元素实现了导航的逻辑完备 一个政策能看和能办是两回事 政策任何时候都可
  • SQL 课后作业答案 练习2 练习6

    Exercise2 1 Find the name and salary of employees in Luton SELECT ename sal FROM emp e dept2020290223 d WHERE loc Luton
  • vue-admin 完全隐藏掉左侧菜单栏

    在 src styles sidebar scss文件中修改第一个 hideSidebar hideSidebar sidebar container sidebar container el menu width 36px importa
  • DBeaver改变字体

    dbeaver的sql编辑区字体小 费眼 想改变字体 在设置中没有改变字体的设置 折腾好半天 发现另一种曲线救国的方式
  • 一周Hard (2021.11.29-2021.12.05)

    862 和至少为 K 的最短子数组 先从朴素的思想去考 枚举当前的前缀和 k k k 那么我们需要找到当前位置之前的满足差大于等于 k k k的最大位置 i
  • 【翻译】什么是 "政策即守则"?

    身份很容易 毕竟 每个人都有一个 认证 可能就更不复杂了 任何使用智能手机的人每天都要认证几十次才能使用它 这甚至还没有涉及银行 工作或社交媒体所需的远程服务 也许正是这种明显的简单性吸引了我在大约五六年前进入身份系统的世界 在这之前的几年
  • python 可视化_提升你的Python可视化编程技能,一文学会图表添加参考线和区域...

    前两次呢 已经和大家讨论了关于Python数据可视化的经典库matplotlib相关的东东 已经介绍了plot scatter xlim ylim xlabel ylabel 和grid 这几个函数哦 下面呢 咱们继续前两节的内容 继续和大
  • linux————pxe网络批量装机

    目录 一 概述 什么是pxe pxe组件 二 搭建交互式pxe装机 一 配置基础环境 二 配置vsftpd 三 配置tftp 四 准备pxelinx 0文件 引导文件 内核文件 一 准备pxelinux 0 二 准备引导文件 内核文件 五
  • 让 AI 真正读懂人类语言,5分钟搞懂 word embedding 技术

    大家好啊 我是董董灿 在学习自然语言处理 NLP Natural Language Processing 时 最先遇到的一个概念 可能就是词嵌入 word embedding 了 词嵌入 是让AI真正理解人类自然语言的技术 看完本文再回过头