无所不能的Embedding 2. FastText词向量&文本分类
asttext是FaceBook开源的文本分类和词向量训练库。最初看其他教程看的我十分迷惑,咋的一会ngram是字符一会ngram又变成了单词,最后发现其实是两个模型,一个是文本分类模型[Ref2],表现不是最好的但胜在结构简单高效,另一个用于词向量训练[Ref1],创新在于把单词分解成字符结构,可以infer训练集外的单词。
Fasttext 分类模型
Fasttext分类模型结构很直观是一个浅层的神经网络。先对文本的每个词做embedding得到wiwi, 然后所有词的embedding做平均得到文本向量wdocwdoc,然后经过1层神经网络对label进行预测
wdocp=1n∑i=1nwi=σ(β⋅wdoc)(1)(2)(1)wdoc=1n∑i=1nwi(2)p=σ(β⋅wdoc)
只说到这里,其实会发现和之前word2vec的CBOW基本是一样的,区别在于CBOW预测的是center word, 而Fasttext预测的是label,例如新闻分类,情感分类等,同时CBOW只考虑window_size内的单词,而Fasttext会使用变长文本内的所有单词。
看到Fasttext对全文