功能一:单词表示学习
1:为了学习词向量(向量表示),我们可以使用fasttext.train_unsupervised函数,像下面这样:
import fasttext
# data.txt :准备语料时,只需要去掉原始数据中的label标签即可。
# Skipgram model :
俩种方式
model = fasttext.skipgram('data.txt','model')
model = fasttext.train_unsupervised('data.txt', model='skipgram')
# or, cbow model :
model = fasttext.cbow('data.txt','model')
model = fasttext.train_unsupervised('data.txt', model='cbow')
2:保存和加载模型对象:
model.save_model("model.bin")
model = fasttext.load_model('model.bin')
3:模型运用
# 加载前面训练好的模型 model.bin
model = fasttext.load_model("model.bin")
print (model.words) # model 中的词汇列表
print (model["king"]) # "king" 的词向量
功能二:文本分类
分类过程:
fasttext在进行文本分类时,huffmax树叶子节点处是每一个类别标签的词向量。在训练过程中,训练语料的每一个词也会得到响应的词向量。输入为一个window 内的词对应的词向量,隐藏层为这几个词的线性相加。相加的结果作为该文档的向量。再通过softmax层得到预测标签。结合文档真实标签计算 loss,梯度与迭代更新词向量(优化词向量的表达)。
from fastText import train_supervised, load_model
流程:
1:数据准备 fasttex_train.txt
处理后的数据: 每行代表一个文本,以\n结尾,文本以空格分隔单词,如下所示,文本今天天气真的太好了处理后为:
今天 天气 真的 太好 了 __label__1
2.训练模型
import fasttext
#第一个参数是前面得到的 fasttex_train.txt
model = train_supervised(input=fasttex_train.txt ,