提交 a831922a 编写于 作者: A Aston Zhang

revise nlp

上级 75e6135d
# 词向量:GloVe和fastText
在word2vec被提出以后,很多其他词向量模型也陆续发表出来。本节介绍其中比较有代表性的两个模型。它们分别是2014年由斯坦福团队发表的GloVe和2017年由Facebook团队发表的fastText。
在word2vec被提出以后,很多其他词嵌入模型也陆续发表出来。本节介绍其中比较有代表性的两个模型。它们分别是2014年由斯坦福团队发表的GloVe和2017年由Facebook团队发表的fastText。
## GloVe
......@@ -96,7 +96,7 @@ $$h(x_{ij}) (\boldsymbol{v}_i^\top \tilde{\boldsymbol{v}}_j + b_i + b_j - \log(x
## fastText
我们在上一节介绍了word2vec的跳字模型和负采样。fastText以跳字模型为基础,将每个中心词视为子词(subword)的集合,并使用负采样学习子词的词向量。
我们在上一节介绍了word2vec的跳字模型和负采样。fastText以跳字模型为基础,将每个中心词视为子词(subword)的集合,并使用负采样学习子词的词向量。因此,fastText是一个子词嵌入模型。
举个例子,设子词长度为3个字符,“where”的子词包括“<wh”、“whe”、“her”、“ere”、“re>”和特殊子词(整词)“<where>”。这些子词中的“<”和“>”符号是为了将作为前后缀的子词区分出来。并且,这里的子词“her”与整词“<her>”也可被区分开。给定一个词$w$,我们通常可以把字符长度在3到6之间的所有子词和特殊子词的并集$\mathcal{G}_w$取出。假设词典中任意子词$g$的子词向量为$\boldsymbol{z}_g$,我们可以把使用负采样的跳字模型的损失函数
......
......@@ -55,7 +55,6 @@ ctx = mx.cpu(0)
我们通常会在输入序列和输出序列后面分别附上一个特殊字符“<eos>”(end of sequence)表示序列的终止。在测试模型时,一旦输出“<eos>”就终止当前的输出序列。
```{.python .input}
def read_data(max_seq_len):
input_tokens = []
......
......@@ -67,7 +67,7 @@ my_embedding.to_indices(['hello', 'world'])
### 使用预训练词向量初始化Embedding实例
我们在[“循环神经网络——使用Gluon”](../chapter_recurrent-neural-networks/rnn-gluon.md)一节中介绍了Gluon中的Embedding实例,并对其中每个词的向量做了随机初始化。实际上,我们可以使用预训练的词向量初始化Embedding实例。
我们在[“循环神经网络——使用Gluon”](../chapter_recurrent-neural-networks/rnn-gluon.md)一节中介绍了Gluon中的Embedding实例,并对其中每个词的向量做了随机初始化。实际上,我们可以使用预训练的词向量初始化Embedding实例。
```{.python .input n=8}
layer = nn.Embedding(len(my_embedding), my_embedding.vec_len)
......
# 词向量:word2vec
自然语言是一套用来表达含义的复杂系统。在这套系统中,词是表义的基本单元。顾名思义,词向量是用来表示词的向量,通常也被认为是词的特征向量。近年来,词向量已逐渐成为自然语言处理的基础知识。
那么,我们应该如何使用向量表示词呢?
自然语言是一套用来表达含义的复杂系统。在这套系统中,词是表义的基本单元。顾名思义,词向量是用来表示词的向量,也可被认为是词的特征向量。这通常需要把维数为词典大小的高维空间嵌入到一个更低维数的连续向量空间。把词映射为实数域上向量的技术也叫词嵌入(word embedding)。近年来,词向量已逐渐成为自然语言处理的基础知识。那么,我们应该如何使用向量表示词呢?
## 为何不采用one-hot向量
......@@ -22,9 +20,9 @@ $$\frac{\boldsymbol{x}^\top \boldsymbol{y}}{\|\boldsymbol{x}\| \|\boldsymbol{y}\
## word2vec
2013年,Google团队发表了word2vec工具 [1]。word2vec工具主要包含两个模型:跳字模型(skip-gram)和连续词袋模型(continuous bag of words,简称CBOW),以及两种近似训练法:负采样(negative sampling)和层序softmax(hierarchical softmax)。值得一提的是,word2vec词向量可以较好地表达不同词之间的相似和类比关系。
2013年,Google团队发表了word2vec工具 [1]。word2vec工具主要包含两个模型:跳字模型(skip-gram)和连续词袋模型(continuous bag of words,简称CBOW),以及两种近似训练法:负采样(negative sampling)和层序softmax(hierarchical softmax)。值得一提的是,word2vec词向量可以较好地表达不同词之间的相似和类比关系。
word2vec自提出后被广泛应用在自然语言处理任务中。它的模型和训练方法也启发了很多后续的词向量模型。本节将重点介绍word2vec的模型和训练方法。
word2vec自提出后被广泛应用在自然语言处理任务中。它的模型和训练方法也启发了很多后续的词嵌入模型。本节将重点介绍word2vec的模型和训练方法。
## 模型
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册