DataWhale零基础入门NLP赛事系列——Task4基于深度学习得文本分类fasttext

本文详细介绍了在Windows环境下解决FastText安装问题的方法,并分享了如何将数据转换成FastText所需格式进行文本分类,最终达到0.901的F1值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. fasttext在windows下的安装

不知道多少小伙伴跟我遇到过一样类似的问题,直接pip install fasttext会报错。所以我们需要先下载一个.whl的包。下载地址:fasttext
在这里插入图片描述
我的python是3.7的,选了如上图所示的
测试一下,在cmd里输入

import fasttext

不报错即可。

2. fasttext对数据格式的要求

我们的训练集数据格式:label,text
在这里插入图片描述
但是,fasttextasttext在windows下的安装
不知道多少小伙伴跟我遇到过一样类似的问题,直接pip install fasttext会报错。所以我们需要先下载一个.whl的包。下载地址:fasttext在这里插入图片描述我的python是3.7的,选了如上图所示的测试一下,在cmd里输入pythonimport fasttext不报错即可。## 2. fasttext对数据格式的要求我们的训练集数据格式:label,text在这里插入图片描述但是,fasttext要求的数据格式:分词后的句子+\t__label__标签。
因此首先需要对数据处理一下

# 转换为FastText需要的格式
train_df = pd.read_csv('data/train_set.csv',sep='\t')
train_df['label_ft'] = '__label__' + train_df['label'].astype(str)
print(train_df.head())
train_df[['text','label_ft']].iloc[:-50000].to_csv('train_fasttext.csv', index=None, header=None, sep='\t')

在这里插入图片描述
fasttext在文本分类的任务上是由于TF-IDF的。
全部代码如图:

import pandas as pd
import fasttext
#from gensim.models import fasttext
from sklearn.metrics import f1_score

# 转换为FastText需要的格式
train_df = pd.read_csv('data/train_set.csv',sep='\t')
train_df['label_ft'] = '__label__' + train_df['label'].astype(str)
print(train_df.head())
train_df[['text','label_ft']].iloc[:-50000].to_csv('train_fasttext.csv', index=None, header=None, sep='\t')
df = pd.read_csv('train_fasttext.csv')
print(df.head())
#import fasttext
model = fasttext.train_supervised('train_fasttext.csv',lr=1.0, wordNgrams=2,
                                 verbose=2, epoch=25, loss='hs')

val_pred = [model.predict(x)[0][0].split('__')[-1] for x in train_df.iloc[-50000:]['text']
            ]
model.save_model('data/fasttext_demo.model')

f1值达到了0.901的效果。

在用fasttext的时候我遇到了一个问题
在这里插入图片描述
百度了好久也没找到答案,其实犯了一个很弱智的错误,是因为我自己建的.py文件命名为了fasttext,与下载的fasttext重名了,当时怎么也 没想到是这么回事,改了以后就可以正常运行了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值