数据实例:
__label__1 23 345 122 32 456
__label__0 56 78 34 789 23 57
__label__:类别前缀
“23 345 122 32 456”:分词结果
API:
from fastText import train_supervised, train_unsupervised, load_model
model = train_supervised( input="train.txt", epoch=25, lr=0.1, wordNgrams=2, verbose=2, minCount=1,label="__label__")
input:文件路径
epoch:训练轮数
lr:学习率
miniCount:次品阀值,小于这个的被过滤掉
wordNgrams:N-gram个数
dim:维度
label:类别前缀
训练词向量:
model=train_unsupervised(input, model="skipgram", lr=0.05, dim=100, ws=5, epoch=5, minCount=5,minCountLabel=0, wordNgrams=1,loss="ns", bucket=2000000,thread=12, lrUpdateRate=100, label="__label__")
label:类别前缀
model.save_model("model.bin")
loaded_model=fastText.load_model("model.bin")
loaded_model.get_word_vector("11146")
model.test("valid.txt"):N 总数 p:准确率 c:召回率
model.predict(texts):类别预测
model.predict-prob(texts):预测概率
Fast Text