一. 简介
FastText是2016年由Facebook AI Research开源的算法,算法主要包含三个部分:模型架构,层次Softmax和N-gram特征。
- 模型架构:FastText的模型架构和Word2Vec的CBOW模型类似。不同之处在于,FastText预测标签,而CBOW模型预测中间词;
- 层次Softmax:Softmax建立在哈弗曼编码的基础上,对标签进行编码,能够极大地缩小模型预测目标的数量;
- N-gram特征:常用的特征是词袋模型,但词袋模型不能考虑词之间的顺序,因此 fastText 还加入了 N-gram 特征,考虑到词与词之间的顺序问题;
二. 安装
2.1 直接pip安装
pip install fasttext
2.2 编译安装
下载安装文件(https://pypi.org/project/fasttext/)
tar xzvf fasttext-0.8.3.tar.gz
pip .
即可安装成功
2.3 按照如下方式:
wget https://github.com/facebookresearch/fastText/archive/v0.2.0.zip
unzip v0.2.0.zip
cd fastText-0.2.0
make
三. 功能
3.1. 生成词向量
3.2. 文本分类
FastText 调参优化
1. loss hs 比 ns, softmax 速度都要快,而且效果也要好;
2. word_ngrams 设置为2比设置为1效果要好,但是模型的体积会大很多,而且容易过拟合;
3. dim 在进行长文本分类的时候,较大维度(一般设置为300)效果较好;
4. ws 对于短文本设置较小的ws,对于长文本设置较大的值;