NLP--一起学习Word Vector【实践】

在这里插入图片描述

纸上得来终觉浅,绝知此事要躬行。
《冬夜读书示子聿》

值此1024的程序员节,我们一起学习 Word Vector。

本章一起学习文本向量化,掌握文本向量的相关概念,了解各个文本向量,实现文本向量的算法

我开启了一个NLP共学坊(NLP Learning Workshop)的项目,主要是分享自己学习、工作中掌握的一些技能点,能够将自己的输入与输出形成正比,也在大模型时代下,能够聚焦自身,不要形成快餐主义者。

因此本项目也在NLP共学坊中的 learning_word-vector中,其中会包含下面具体的算法讲解和实操过程,此次教程中没有插入相关内容,不过后续会逐步放出来,一起学习一起进步!!(想先一步学习的同学,可以通过此链接跳转)

在这里插入图片描述

目录

  • 文本向量化
  • 词嵌入的种类
    • 离散表示
    • 分布式表示
  • 结语
  • 其他资源

文本向量化

文本向量化又称为 “词向量模型”、“向量空间模型”,即将文本表示成计算机可识别的实数向量, 根据粒度大小不同,可将文本特征表示分为字、词、句子、篇章几个层次

文本向量化方法一般称为词嵌入(word embedding)方法,词嵌入这个说法很形象,就是把文本中的词嵌入到文本空间中, 用一个向量来表示词(将各个单词表示为预定义向量空间中的实值向量)

在这里插入图片描述

词嵌入的种类

离散表示

文本向量化离散表示是一种基于规则和统计的向量化方式,常用的方法包括 词集模型 和 词袋模型, 都是基于词之间保持独立性、没有关联为前提,将所有文本中单词形成一个字典,然后根据字典来统计单词出现频数

  • 独热编码(One-hot Encoding)
  • 词袋编码(Bag of Words)
  • TF-IDF编码
  • N-GRAM编码

离散表示的缺点

  • 无法衡量词向量之间的关系。
  • 词表的维度随着语料库的增长而膨胀。
  • n-gram词序列随语料库增长呈指数型膨胀,更加快。
  • 离散数据来表示文本会带来数据稀疏问题,导致丢失了信息,与我们生活中理解的信息是不一样的。

离散表示虽然能够进行词语或者文本的向量表示,进而用模型进行情感分析或者是文本分类之类的任务。 但其不能表示词语间的相似程度或者词语间的类比关系。

分布式表示

通过训练将每个词映射成 K 维实数向量(K 一般为模型中的超参数), 通过词之间的距离(如,consine 相似度、欧氏距离) 来判断它们之间的语义相似度。

在这里插入图片描述

比如:queen 和 king 两个词语,它们表达相近的意思,所以希望它们在整个文本的表示空间内挨得很近。
一般认为,词向量、文本向量之间的夹角越小,两个词相似度越高,词向量、文本向量之间夹角的关系用下面的余弦夹角进行表示:

cos ⁡ θ = A ⃗ ⋅ B ⃗ ∣ A ⃗ ∣ ⋅ ∣ B ⃗ ∣ \cos\theta = \frac{\vec{A} \cdot \vec{B}}{|\vec{A}| \cdot |\vec{B}|} cosθ=A B A B

离散表示,如 One-Hot 表示无法表示上面的余弦关系,引入分布式表示方法,其主要思想是 用周围的词表示该词.

用一个词附近的其它词来表示该词,这是现代统计自然语言处理中最有创见的想法之一。 当初科学家发明这种方法是基于人的语言表达,认为一个词是由这个词的周边词汇一起来构成精确的语义信息。就好比,物以类聚人以群分,如果你想了解一个人,可以通过他周围的人进行了解,因为周围人都有一些共同点才能聚集起来。

  • Word2Vec
  • GloVe
  • FastText
  • ELMo
  • BERT【未完成】

在学习文本向量之前,先了解共现矩阵与NNLM

共现矩阵

共现矩阵顾名思义就是共同出现的意思,词文档的共现矩阵主要用于发现主题(topic),用于主题模型,如LSA。

局域窗中的word-word共现矩阵可以挖掘语法和语义信息,例如:

  • I like deep learning.
  • I like NLP.
  • I enjoy flying

有以上三句话,设置滑窗为2,可以得到一个词典:
{"I like","like deep","deep learning","like NLP","I enjoy","enjoy flying","I like"}

我们可以得到一个共现矩阵(对称矩阵):
在这里插入图片描述

中间的每个格子表示的是行和列组成的词组在词典中共同出现的次数,也就体现了共现的特性。

存在的问题:

  • 向量维数随着词典大小线性增长。
  • 存储整个词典的空间消耗非常大。
  • 一些模型如文本分类模型会面临稀疏性问题。
  • 模型会欠稳定,每新增一份语料进来,稳定性就会变化。

NNLM

NNLM (Neural Network Language model),神经网络语言模型是03年提出来的,通过训练得到中间产物–词向量矩阵,这就是我们要得到的文本表示向量矩阵。

NNLM说的是定义一个前向窗口大小,其实和上面提到的窗口是一个意思。把这个窗口中最后一个词当做y,把之前的词当做输入x,通俗来说就是预测这个窗口中最后一个词出现概率的模型。

在这里插入图片描述

NNLM的网络结构图

在这里插入图片描述

  • input层是一个前向词的输入,是经过one-hot编码的词向量表示形式,具有V*1的矩阵。

  • C矩阵是投影矩阵,也就是稠密词向量表示,在神经网络中是w参数矩阵,该矩阵的大小为DV,正好与input层进行全连接(相乘)得到D1的矩阵,采用线性映射将one-hot表示投影到稠密D维表示。

在这里插入图片描述

  • output层(softmax)自然是前向窗中需要预测的词。

  • 通过BP+SGD得到最优的C投影矩阵,这就是NNLM的中间产物,也是我们所求的文本表示矩阵,通过NNLM将稀疏矩阵投影到稠密向量矩阵中。

结语

在大模型时代,embedding成为一项必不可少的技术,主要是因为它能够有效地将大量高维数据(如文本、图像和音频信息)转换成更低维的、密集的向量表示。这种表示可以捕捉到数据的本质特征,并且在处理和计算上更为高效。通过embedding,模型可以在这些压缩的向量空间中学习数据之间的复杂关系和模式,从而提高了处理速度和准确性。此外,embedding使得模型能够在较小的表示空间中进行操作,减少了计算资源的需求,同时也便于模型的训练和推理,这对于处理现代大规模数据集尤为关键。Embedding在大模型时代扮演着桥梁的角色,跨越了原始数据和机器学习算法之间的巨大鸿沟。

在自然语言处理领域,文本向量化技术的发展带来了革命性的变化。从最早的One-Hot编码到当前基于Transformer结构的embedding模型,每一次创新都带来了更高效、更精准的文本表示方式,为文本处理提供了更为灵活、高效的解决方案。未来,随着技术的不断进步和应用场景的不断拓展,文本向量化技术将继续发挥着重要的作用,并为人工智能在文本理解和处理领域带来更广阔的发展空间。

其他资源

  • 词向量发展历程:技术及实战案例
  • ML-NLP: word embedding✨
  • NLP–文本向量化
  • AI文本处理的突破:从One-Hot到Embedding模型
  • 词表示
  • NLP-Tutorial: word embedding✨
  • Chinese-word-embedding ✨
  • Word Embedding using GloVe | Feature Extraction | NLP | Python
    • CODE ✨
  • Word-Embedding(TF): Word2vec,Fasttext,Glove,Elmo,Bert and Flair pre-train Word Embedding

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

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

相关文章

Pytest 插件的种类

引言 Pytest是一个功能强大且扩展性强的测试框架,支持丰富的插件体系。通过插件,Pytest的功能可以得到极大扩展,满足各种测试需求。本文将介绍几类常用的Pytest插件,并简要说明其功能和使用场景。 Pytest 插件的分类 报告和输出…

代码+编译环境一并保存Git仓库,Jenkins使用docker编译

大家好,欢迎来到停止重构的频道。 上期介绍了Jenkins的基本用法,本期补充介绍Jenkins使用docker进行软件编译。 如果对docker不太熟悉,可以先翻看往期《docker详解》。 我们按这样的顺序展开讨论: 1、为什么使用docker编译软件…

网址访问小工具(模拟浏览器)

网址访问小工具(模拟浏览器) 文章说明核心代码运行截图源码下载 文章说明 本篇文章主要是我写的一个小demo,感觉效果还蛮不错的,作为一个记录新想法的实现思路;介绍了模拟浏览器页面的一些页面实现的小细节。 采用vue3…

文理学院数据库应用技术实验报告0

文理学院数据库应用技术实验报告0 实验内容 打开cmd,利用MySQL命令连接MySQL服务器。 mysql -u root -p查看当前MySQL服务实例使用的字符集(character)。 SHOW VARIABLES LIKE character_set_server;查看当前MySQL服务实例支持的字符序(collation)。 SHOW VARIABLES LIKE c…

ReactOS系统中平衡二叉树按从左到右的顺序找到下一个结点

ReactOS系统中平衡二叉树按从左到右的顺序找到下一个结点MmIterateNextNode()按从左到右的顺序找到下一个结点 文章目录 ReactOS系统中平衡二叉树按从左到右的顺序找到下一个结点MmIterateNextNode()按从左到右的顺序找到下一个结点MmIterateNextNode() MmIterateNextNode() /*…

解锁知识潜力:十款企业培训知识库全面解析

在当今这个快速变化的时代,企业要想保持竞争力,就必须不断提升员工的技能和知识水平。知识库作为企业培训的重要工具,不仅能够帮助员工快速获取所需信息,还能促进知识的共享和创新。 1. HelpLook AI知识库 亮点功能:…

React第十一章(useReducer)

useReducer useReducer是React提供的一个高级Hook,没有它我们也可以正常开发,但是useReducer可以使我们的代码具有更好的可读性,可维护性。 useReducer 跟 useState 一样的都是帮我们管理组件的状态的,但是呢与useState不同的是 useReducer…

python基础综合案例(数据可视化-动态柱状图)

1.基础柱状图的构建 打开浏览器,你会发现这是一个动态图,会随着时间变化而变化 具体效果大家可以看我主页有个动态柱状图视频 本质上来说,是和我们构建一个折线统计图差不多的,只是把对象换了一下 如果我们需要反转x和y轴&#…

从SQL到NoSQL:数据库类型及应用场景

在当今数据驱动的时代,数据库技术已经成为了支撑各类应用的核心。在讨论数据库类型时,SQL数据库与NoSQL数据库无疑是最常被提及的两种主流选择。 一、SQL数据库(关系型数据库) SQL数据库,通常也被称为关系型数据库&am…

YOLOv8实战野生动物识别

本文采用YOLOv8作为核心算法框架,结合PyQt5构建用户界面,使用Python3进行开发。YOLOv8以其高效的实时检测能力,在多个目标检测任务中展现出卓越性能。本研究针对野生动物数据集进行训练和优化,该数据集包含丰富的野生动物图像样本…

【动手学强化学习】part6-策略梯度算法

阐述、总结【动手学强化学习】章节内容的学习情况,复现并理解代码。 文章目录 一、算法背景1.1 算法目标1.2 存在问题1.3 解决方法 二、REINFORCE算法2.1 必要说明softmax()函数交叉熵策略更新思想 2.2 伪代码算法流程简述 2.3 算法代码2.4 运行结果2.5 算法流程说明…

LSTM(Long Short-Term Memory,长短期记忆网络)在高端局效果如何

lstm 杂乱数据分析 LSTM(Long Short-Term Memory,长短期记忆网络)在高端局,即复杂的机器学习和深度学习应用中,展现出了其独特的优势和广泛的应用价值。以下是对LSTM在高端局中的详细解析: 一、LSTM的优势…

大语言模型驱动的跨域属性级情感分析——论文阅读笔记

前言 论文PDF下载地址:7156 最近想搜一下基于大语言模型的情感分析论文,搜到了这篇在今年发表的论文,于是简单阅读之后在这里记一下笔记。 如图1所示,在餐厅领域中的"快"是上菜快,属于正面情感,但…

jfif图片怎么改成jpg?几种非常简单的jfif转jpg方法

jfif图片怎么改成jpg?随着图像技术的日新月异,用户在图像的编辑、处理与分享过程中,常常需要根据实际需求,灵活转换图像格式,以适应多样化的应用场景。正是这一需求,催生了将jfif格式向jpg格式转换的广泛实…

一些剪视频需要下载视频、chatTTS文字转语音的相关代码

可以在YouTube下载视频,下载字幕,以及需要文字转音频的一些代码,自己写的,目前也是能实现一点小需求~ 是需要下载FFmpeg、yt-dlp.exe、chrome_cookies插件,需要下载的自行search,不再赘述 人机验证 需要…

电能表预付费系统-标准传输规范(STS)(22)

6.5.2.3 DecoderKey classification 6.5.2.3.1 Classification of decoder keys STS DecoderKeys are classified according to the KT values given in Table 32 and inherit their type from that of the VendingKey, from which they are derived. STS decoderkey根据表32…

msvcr100.dll丢失怎么办,总结六种解决msvcr100.dll丢失的方法

​msvcr100.dll是Microsoft Visual C 2010 Redistributable Package中的一个关键动态链接库文件。它包含了运行由Visual C 2010编译的应用程序所需的一系列函数和类。简单来说,许多使用 Visual C 2010 编译的应用程序在启动或运行过程中会依赖 msvcr100.dll 文件。如…

Java基础 —— IO流详解

IO流 在Java中,IO(输入/输出)流是用于在程序与外部世界(如文件、网络、内存等)之间传输数据的机制。IO流分为两大类:输入流(InputStream/Reader)和输出流(OutputStream/…

软硬件开发面试问题大汇总篇——针对非常规八股问题的提问与应答(代码规范与生态管理)

软硬件开发,对于编码规范、生态管理等等综合问题的考察尤为重要。 阐述下环形缓冲区的用途 环形缓冲区(Ring Buffer)是一种固定大小的数据结构,常用于实现数据的流式传输或临时存储。在环形缓冲区中,当到达缓冲区的末尾…

计算机网络:数据链路层 —— 虚拟局域网 VLAN

文章目录 局域网虚拟局域网 VLAN虚拟局域网 VLAN 概述实现机制IEEE 802.1Q帧以太网交换机的接口类型Access 接口Trunk 接口Hybrid 接口不进行人为的VLAN划分划分两个不同VLANTrunk接口去标签后进行转发Trunk接口直接转发 局域网 局域网(Local Area Network&#xf…