语义嵌入,例如Word2Vec和GloVe,实际上是语言建模的第一步-创建一些以某种方式“理解”(或“代表”)语言属性的模型。
##预讲座测验
语言建模的主要思想是以无监督的方式在未标记的数据集上进行训练。这很重要,因为我们有大量未标记的文本可用,而标记文本的数量总是受我们在标记上可以花费的精力的限制。通常,我们可以构建能够在文本中预测缺失单词的语言模型,因为很容易屏蔽文本中的一个随机单词并将其用作训练样本。
##训练嵌入在之前的例子中,我们使用了预训练的语义嵌入,但有趣的是看到这些嵌入是如何训练的。有几个可能的想法可以使用:
- N-Gram语言模型,通过查看N个前面的标记(N-gram)来预测标记。
-
Continuous Bag-of-Words(CBoW),在一个标记序列$W_{-N}$,...,
$W_N$ 中预测中间的标记$W_0$。 - Skip-gram,通过中间标记$W_0$来预测一组相邻的标记{$W_{-N},\dots, W_{-1}, W_1,\dots, W_N$}。
图片来源于这篇论文## ✍️ 示例笔记本:训练CBoW模型
请继续在以下笔记本中学习:
- 官方PyTorch语言建模教程。
- 官方TensorFlow训练Word2Vec模型教程。
- 使用gensim框架在几行代码中训练常用的嵌入方法可以在此文档中找到。## 🚀 任务: 训练Skip-Gram模型
在这个实验中,我们要求您修改本课程的代码,训练Skip-Gram模型,而不是CBoW模型。点击阅读详细信息