Pytorch学习2--词向量

本文介绍了词表示的发展,包括离散表示如One-hot和词袋模型的优缺点,以及分布式表示的Word2Vec Skip-Gram模型。接着讨论了语言模型的重要性,特别是统计语言模型如N-gram的优缺点和神经网络语言模型,如前馈神经网络和循环神经网络(RNN)及其长期依赖问题,最后提到了LSTM为解决此问题的改进。
摘要由CSDN通过智能技术生成

在计算机中表示一个词的问题:

  • 不能分辨细节差别;
  • 需要大量人为干预;
  • 偏向主观;
  • 无法发现新词;
  • 难以精确计算词之间的相似度

词表示 发展:

离散表示
  1. 词向量表示One-hot:一个词可以表示为One-Hot 向量(一维为1 其余维为0的向量),也叫局部表示。离散表示的缺点是词与词之间没有距离的概念,与事实不符
  2. 文本表示Bag of words 词袋模型: 文本可以看作是一句话,或者几句话组成的短文本。文本表示就是将一段短文本表示为向量。词袋模型是一种非常经典的文本表示。顾名思义,它就是将字符串视为一个 “装满字符(词)的袋子” ,袋子里的 词语是随便摆放的。而两个词袋子的相似程度就以它们重合的词及其相关分布进行判断。

词袋模型的优点:
简单,方便,快捷; 在语料充足的情况下,对于简单的自然语言处理任务效果不错。如文本分类。

词袋模型的缺点

  1. 其准确率往往比较低。凡是出现在文本中的词一视同仁,不能体现不同词在一句话中重要性的不同。

  2. 无法关注词语之间的顺序关系,这是词袋模型最大的缺点。如“武松打老虎”跟“老虎打武松”在词袋模型中被认为是一样的。

词袋模型与one-hot的关系
词袋模型用于文本表示,将文本表示为向量。如果对文本进行分词,如果文本中的每个词用one-hot形式表示,然后把每个词的one-hot向量相加

PyTorch是一个开源的Python机器学习库,可以用于创建神经网络模型和训练深度学习模型。Word2Vec是一种用于处理自然语言处理任务的词嵌入模型。 在PyTorch中实现Word2Vec的步骤如下: 1. 数据准备:收集和预处理用于训练Word2Vec模型的文本数据。可以使用任何合适的文本数据集,如语料库或文章集。 2. 数据预处理:对文本数据应用必要的预处理步骤,如分词、去除停用词、标点符号等。 3. 构建词汇表:通过遍历预处理后的文本数据,创建一个词汇表,包含所有唯一的词汇。 4. 创建训练样本:将文本数据转换为模型需要的训练样本格式。一种常用的方法是创建一个滑动窗口,在滑动窗口内部的词汇用作输入,目标词汇用作输出。 5. 定义模型:使用PyTorch构建Word2Vec模型。模型可以由一个嵌入层和一个线性层组成。嵌入层用于将输入词嵌入为低维向量,线性层用于将嵌入向量映射回词汇表。 6. 定义损失函数和优化器:为模型定义适当的损失函数和优化器。在Word2Vec中,常用的损失函数是负对数似然损失函数(Negative Log Likelihood Loss)。 7. 训练模型:使用训练数据和定义的损失函数和优化器进行模型训练。迭代训练样本,并更新模型参数以最小化损失函数。 8. 保存模型:在训练完成后,保存训练好的Word2Vec模型。 9. 应用模型:可以使用训练好的Word2Vec模型进行各种自然语言处理任务,如文本分类、语义相似度计算等。 总结:通过PyTorch实现Word2Vec模型需要进行数据准备和预处理、构建词汇表、创建训练样本、定义模型、损失函数和优化器、训练模型,最后保存和应用模型。使用Word2Vec可以将文本数据转换为向量表示,从而在自然语言处理任务中提供更好的特征表示。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值