问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

自然语言处理篇:文字向量化的方法

创作时间:
作者:
@小白创作中心

自然语言处理篇:文字向量化的方法

引用
CSDN
1.
https://m.blog.csdn.net/zhishi0000/article/details/141630810

在自然语言处理领域,文字向量化是将文本转换为计算机可以理解的数字形式的关键技术。本文将详细介绍两种主要的文字向量化方法:词袋模型和词嵌入模型,帮助读者理解它们的原理、构建方法以及优缺点。

一、词袋模型

1. 什么是词袋模型

词袋模型是一种基于统计学原理的文本表示方法,它初步解决了文字向数值转化的问题。在词袋模型中,文本会被表示为一个词频向量。

2. 如何构建词袋模型

(1)构建词袋

比如我们有3句话,分别是:

i  can  swim
i  love  you
long  time  no  see

很明显,我们可以将这3句话里面每个词都给拿出来,形成一个不重复的集合,那么这个集合(词袋)所包含的词汇如下:

(i can swim love you long time no see)

(2)文本向量化

根据这个词袋的容量将每句话给向量化出来,结果如下:

"i can swim"向量就是: [1,1,1,0,0,0,0,0,0]
"i love you"向量就是: [1,0,0,1,1,0,0,0,0]
"long time no see"向量就是:[0,0,0,0,0,1,1,1,1]

在文本向量化之后,无论做文本分类(垃圾邮件识别)还是情感分析等模型,都可以根据自己想法去实现。

3. 词袋模型的优缺点

(1)优点

  • 简单易用:词袋模型原理直观,容易理解,实现方便
  • 快速高效:由于词袋模型忽略了词汇间的顺序和语法结构,所以词袋模型计算速度快

(2)缺点

  • 丢失语序信息:词袋模型忽视了词汇间的顺序关系,可能无法捕捉到依赖于顺序的语义
  • 缺乏语义信息:词袋模型中每个词被视为独立的实体,即使含义相近的词(如“快乐”与“愉快”)在向量空间中也表现为正交,无法通过向量的距离或相似度来衡量它们的语义相似性
  • 高维空间问题:在词汇量大的情况下,词袋模型会导致高维空间问题,增加计算复杂度
  • 未考虑词形变化和词义消歧:词袋模型没有考虑词汇的不同形态和词义的多样性

总结:词袋模型是文本向量化最简单的一种方式。

二、词嵌入模型

1. 什么是词嵌入模型

词嵌入(Word Embedding)是一种自然语言处理技术,主要起到两个作用:

(1)文字转化为有限的m维向量(常见的就是300维),避免维度灾难
(2)捕捉词与词之间的语义和句法关系

词嵌入的训练基于一个假设:上下文中相似的词有相似的语义。

我们想要达到的效果如下:

在英文情况下,has、have应该保持较高的相似性(has、have是一个词的不同表达)。
在中文情况下,上海、北京、深圳等应该保持较高的相似性(都是城市这一类别)。

我们可以这么类比着去理解词嵌入:一个人可以用身高、体重、性别、年龄等数值特征进行描述,一个词也可以用不同的数值来描述这个词各个方面的特征,数值组合起来的结果就是词向量。

2. 词嵌入向量如何生成

词嵌入模型由于需要大量语料与资源,所以一般由大公司训练,我们直接采用其训练好的向量结果即可。

常见的词嵌入模型:

(1)Word2Vec:由Google提出,包括CBOW和Skip-gram两种模型。CBOW是基于上下文预测目标词,而Skip-gram则是基于目标词预测上下文。
(2)GloVe:由Stanford提出,它利用了全局的词共现矩阵进行训练,试图平衡局部上下文与全局统计信息。

由于后续Transformer等模型的提出与应用,修补了Word2Vec这类词嵌入模型的缺点,所以此处就不再谈词嵌入模型的具体训练方法。

以Word2Vec为例,我们来看下训练后的词向量结果:

可以看到,在对高维词向量降维之后能够发现:相似的词距离更近。比如cat与cats,dog与dogs,king与man,queen与woman等。

这就说明:Word2Vec在一定程度上能够解释单词间复杂的关系,如同义词、反义词和关联词。

3. 词嵌入模型的作用

(1)降低模型维度

相较于词袋模型动辄千维、万维的向量,词嵌入模型已经将词的维度压缩到300维的低维向量。

(2)捕获语义信息

词嵌入能够捕捉词语的语义特征,使得具有相似意义的词语在向量空间中距离较近。“猫cat”和“小猫kitten”的词嵌入向量会比“猫cat”和“房子houses”的向量更接近。

(3)向量运算能够得到有意思的结果

由于这些词本质上还是向量,在进行向量运算时可以发现有意思的事儿:

向量King - 向量Man ≈ 向量Woman - 向量Queen

这就表示:词嵌入模型确实学到了词与词之间的关系。

4. 词嵌入模型的优缺点

(1)优点

  • 计算效率:相比于词袋模型,词嵌入使用较低维度的向量表示单词,减少了计算和存储的复杂性
  • 语义相似性:词嵌入模型能够将语义上相似的词映射到向量空间中相近的位置,这有助于捕捉词的语义信息
  • 通用性:词嵌入模型生成的向量可以广泛应用于不同的自然语言处理任务,如文本分类、情感分析等

(2)缺点

  • 无法表示词表以外的词:传统的词嵌入模型通常无法处理未见过的词或新词
  • 忽略词序和长距离依赖:词嵌入模型依然是多个向量的堆叠,但是实际文本是有顺序的,词嵌入无法捕捉顺序带来的关系
  • 训练数据的偏见:词嵌入模型的性能很大程度上依赖于训练数据的质量和多样性,数据中的偏见可能会被嵌入到向量中

总结:词嵌入模型可以很好的表达词本身所代表的含义。

对于词嵌入所存在的问题,将在Transformer模型中得到较好的解决。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号