新闻文本分类-Task4

本文介绍了基于fasttext的文本分类,详细讲解了fasttext的原理,与word2vec的区别,以及如何使用fasttext库进行文本分类。此外,还讨论了在pytorch中实现fasttext的方法,并分享了fasttext源码的学习资源。
摘要由CSDN通过智能技术生成

Task04:基于fasttext的文本分类

fasttext 原理说明

要说fasttext的原理,就不得不谈到word2vec。其实二者本身有着天然的联系。word2vec的主要学习方法有CBOW和Skip-gram,主要优化方法有hierarchical softmax和negative sampling。相关理论可以参考
https://blog.csdn.net/hongyesuifeng/article/details/84651900
https://blog.csdn.net/hongyesuifeng/article/details/90286126
word2vec主要通过词向量的形式来学习词表征,通常文本分类任务会将相应词向量加和平均。fasttext是一个高效的文本分类的库。
其和word2vec主要的不同点有:
1 加入了n-gram特征,该类特征通过实验可以比较好的特征分类的效果,在使用传统TFIDF+分类器进行文本分类的时候,加入n-gram特征也可以一定程度提升效果。
2 通过hash编码的方式来处理n-gram特征,可以缩减空间。
3 通过词的n-gram形成字词的表示,这里可以比较好的处理未登陆词(OOV)的问题。
fasttext模型架构为:
在这里插入图片描述
这里和Word2vec不同点是,这里的输入已经是embedding过的词向量了,不是one-hot编码进行表示,在学习x1,x2…Xn等上游任务中已经学会了embedding表示。这边的输入向量不止文档的词表征还加入了n-gram等字词的词向量表示。

使用fasttext库进行文本分类

这里主要通过fasttext包进行文本分类,这里主要提出中间遇到的几个问题:
1 fasttext安装的问题,直接使用pip install fasttext因为gcc的版本不够,所以不能直接安装,这里的解决方式有两种一个是升级gcc的版本。我通过第二个方法解决该问题,下载更老一个版本的fasttext,满足版本要求。
在这里插入图片描述
下载了0.9.1版本
在这里插入图片描述

pip install fasttext==0.9.1

安装后就可以直接使用import fasttext啦!

import pandas as pd
import numpy as np
import fasttext
from sklearn.metrics import f1_score
from sklearn.model_selection import train_test_split

# 转换为FastText需要的格式
train_df = pd.read_csv('./train_set.csv', sep='\t')
test_df = pd.read_csv('./test_a.csv')

train_df['label_ft'] = '__label__' + train_df['label'].astype(str)
train_df[['text','label_ft']].to_csv
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值