FastText概要

两个用途

  • 构建字符级别N-gram的词向量
  • 实现快速文本分类

1.实现快速文本分类

结构类似Word2Vec的CBOW模型

FastText概要_第1张图片

两者不同点:

word2vec:输入为每个单词的one-hot,并通过1~t-1,t+1~N的单词预测t个单词,预测的W(t)通过one-hot表示;得到的是前面的权重W。

FastText:输入为每个单词的embedding,当引入序列信息的时候,还会输入N-gram的embedding,具体的输入见下图;得到的是后面one-hot形式的Label,以实现这段序列的类别。

FastText概要_第2张图片

ps:又因为当word太多了,N-gram的组合数量会暴增,所以一般是用一个hash,讲不同的组合映射到0~bucket-1的位置上。

同样,在训练的时候,采用了Word2Vec的negative sampling,加速训练。

 

2.构建字符级别N-gram的词向量

结构同样是和上面一样,但是输入变了,输入变成了char-level的N-gram

如:apple的3-gram有 “

把这些char级别的用one-hot的形式输入,label为词库中所有词的one-hot,实现分类,得到的权重W,就是char-level的embeding表示。

得到N-gram的char-level embedding,即可加和平均得到word embedding

优点:

  • 对于低频的词更友好,可以和高频词的信息共享
  • 对于OOV的词,也可以建立它的embedding

 

参考:https://blog.csdn.net/qq_43019117/article/details/82770124

https://blog.csdn.net/cqlboat/article/details/81255398

你可能感兴趣的:(NLP笔记)