新闻分类大赛task4

构造数据

在fasttext中,标签使用__label__X的形式表示,text label存为csv。

train_df = pd.read_csv(r"train_set.csv",sep='\t')
train_df['label_ft'] = '__label__' + train_df['label'].astype(str)
train_df[['text','label_ft']].iloc[:-5000].to_csv('train.csv', index=None, header=None, sep='\t')

构建模型

使用上一步生成的csv,输入模型中。
这里使用fasttext包调用模型。

import fasttext
model = fasttext.train_supervised('train.csv', lr=1.0, wordNgrams=2, 
                                  verbose=2, minCount=1, epoch=25, loss="hs")
model.save_model("model_fasttext.bin") #模型保存
val_pred = [model.predict(x)[0][0].split('__')[-1] for x in train_df.iloc[-5000:]['text']]
print(f1_score(train_df['label'].values[-5000:].astype(str), val_pred, average='macro'))  #输出f1值

训练全量数据,使用fasttext模型预测,输出结果为0.914.

#读取模型 预测结果

model = fasttext.load_model("model_fasttext.bin")
train_test = pd.read_csv(r'test_a.csv', sep='\t')
val_test = [model.predict(x)[0][0].split('__')[-1] for x in train_test['text']]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值