首页 > 编程知识 正文

自然语言处理入门,自然语言处理的重要应用是什么

时间:2023-05-04 01:58:18 阅读:10050 作者:623

字嵌入(Word Embedding )文章目录字嵌入(Word Embedding )1.介绍2. PyTorch实现3.Skip_Gram模型3.1模型结构

1 .介绍

目前,循环神经网络最热的应用是自然语言处理。 在自然语言处理中运用循环神经网络,首先介绍第一个概念,词语的嵌入。

对于图像分类问题,可以使用one-hot的类型进行编码。 例如,如果共有5种,则属于第二个类可以用“0、1、0、0、0”表示。 关于分类问题,这当然特别简单,但在自然语言处理中,由于单词的数量过多,这样做并不好。 例如,如果有10000个不同的单词,则使用oot

单词向量简单来说,就是用一个向量来表示单词。 但是这个向量不是随机的。 这样没有任何意义,所以每个单词都必须有特定的向量来表示他们。 另外,“love”也有“喜欢”和“like”这样词类相近的单词。 对于这种词类相近的单词,他们的向量表达也需要相近。 我该怎么办呢?非常简单。 使用两个向量所成的角,所成的角越小,越接近,定义就越完整。

举个例子,有以下四个词:

The cat likes playing wool。

The kitty likes playing wool。

The dog likes playing ball。

theboydoesnotlikeplayingballorwool。

其中有cat、kitty、dog、boy四个词。 下面使用二维单词向量(a,b )来表示每个单词。 其中,a、b分别表示该单词的属性。 例如,a表示是否喜欢玩球,b表示是否喜欢玩毛线,数值越大表示是否喜欢。 这样,每个单词都可以用数值定义。

对于cat,他不喜欢球,而是喜欢毛线,所以可以定义为嵌入了- 1,4 )这个词。 此外,kitty可以定义为(-2,5 ),dog定义为) 3,2 )和boy定义为)-2,-3),因此这四个向量可以用坐标系表示

凯蒂猫和购物车之间的角度比较小,所以他们更像,dog和boy之间的角度很大,所以你会发现他们不像。

2. PyTorch只需调用torch.nn.embedding(m,n )即可在pytorch中嵌入单词。 m表示单词总数,n表示嵌入单词的维。 实际上,单词嵌入是一个大矩阵,矩阵中的每一行都表示一个单词

import torchfrom torch import nn #定义了两个词:词嵌入embeds=nn.embedding (2,5 ) #,维5#是词嵌入矩阵embeds.weightparametercontatal 0.6697,1.0688 ],[-0.3358,- 1.6497,0.0271,0.5403,-2.0870]],requires_grad=True,此矩阵是可修改的参数另外,单词嵌入的数值可以直接修改。 例如,可以导入预训练的单词嵌入

#字嵌入值embeds.weight.data=torch.ones (2,5 ) embeds.weightparametercontaining 3360 tensor ) [[1.1 .1,1 . 1.] requires _ grad=true (访问第# 50个单词向量embeds=nn.embedding (100,10 ) single _ word _ embed=embeds (torrord ) - 0.494440 ] 0.8285,1.1596 ],grad_fn=EmbeddingBackward ) )访问其中一个单词的单词向量时,可以直接调用定义的单词嵌入。 型号为LongTensor

虽然知道如何定义单词向量的相似性,但是还不知道如何得到单词嵌入。 如果单词嵌入是100维的话,这显然是不能人为赋值的,因此为了得到单词向量需要介绍skip-gram模型。

3.Skip_Gram模型Skip Gram模型是一篇名为Word2Vec的论文的网络体系结构,让我们来谈谈这个模型。

3.1模型结构skip-gram模型非常简单,我们在文本中训练简单的网络。 这个网络的任务是从语言周围的语言中预测这个词,但我们实际要做的是训练语言的嵌入。

例如,我们给定某个词中的一个词,看看它周围的词,随机选择一个,我们希望网络能输出一个概率值。 这个概率值告诉我们和我们选择的词有多接近。 例如,这样的词“‘adogisplayingwitha‘ball”,如果我们选择的词是“ball”,就是“‘playinng”。

对于某些词语,可以按顺序选择不同的词语来构建训练样本和标签。 例如

在本例中,按顺序提取一个词及其周围的词来构成训练示例。 例如,如果最初选择的词是“the”,则将其前后2个词作为训练样本。 这也称为滑动窗口。 对于第一个词,因为它的左侧没有单词,所以训练集是三个词。 然后,从这三个词中选择“the”作为输入。 其他两个词是他的输出。组成两个训练样本,例如“福克斯”一词,左边两个词,右边两个词加起来一共五个词,输入选择“福克斯”,输出就在周围四个词,总共可以组成四个训练样本用这种方法,可以训练必要的词语嵌入。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。