零基础入门NLP - 新闻文本分类赛题理解

mhxin

赛题背景

本次新人赛是Datawhale与天池联合发起的0基础入门系列赛事第三场 —— 零基础入门NLP之新闻文本分类挑战赛。

赛题以自然语言处理为背景,要求选手根据新闻文本字符对新闻的类别进行分类,这是一个经典文本分类问题。通过这道赛题可以引导大家走入自然语言处理的世界,带大家接触NLP的预处理、模型构建和模型训练等知识点。

为更好的引导大家入门,我们同时为本赛题定制了系列学习方案,其中包括数据科学库、通用流程和baseline方案学习三部分。通过对本方案的完整学习,可以帮助掌握数据竞赛基本技能。同时我们也将提供专属的视频直播学习通道。

赛题数据

赛题以新闻数据为赛题数据,数据集报名后可见并可下载。赛题数据为新闻文本,并按照字符级别进行匿名处理。整合划分出14个候选分类类别:财经、彩票、房产、股票、家居、教育、科技、社会、时尚、时政、体育、星座、游戏、娱乐的文本数据。
赛题数据由以下几个部分构成:训练集20w条样本,测试集A包括5w条样本,测试集B包括5w条样本。为了预防选手人工标注测试集的情况,我们将比赛数据的文本按照字符级别进行了匿名处理。处理后的赛题训练数据如下:

labeltext
657 44 66 56 2 3 3 37 5 41 9 57 44 47 45 33 13 63 58 31 17 47 0 1 1 69 26 60 62 15 21 12 49 18 38 20 50 23 57 44 45 33 25 28 47 22 52 35 30 14 24 69 54 7 48 19 11 51 16 43 26 34 53 27 64 8 4 42 36 46 65 69 29 39 15 37 57 44 45 33 69 54 7 25 40 35 30 66 56 47 55 69 61 10 60 42 36 46 65 37 5 41 32 67 6 59 47 0 1 1 68

在数据集中标签的对应的关系如下:

{'科技': 0, '股票': 1, '体育': 2, '娱乐': 3, '时政': 4, '社会': 5, '教育': 6, '财经': 7, '家居': 8, '游戏': 9, '房产': 10, '时尚': 11, '彩票': 12, '星座': 13}

赛题数据来源为互联网上的新闻,通过收集并匿名处理得到。因此选手可以自行进行数据分析,可以充分发挥自己的特长来完成各种特征工程,不限制使用任何外部数据和模型。
数据列使用t进行分割,Pandas读取数据的代码如下:

train_df = pd.read_csv('../input/train_set.csv', sep='t')

评测标准

评价标准为类别f1_score的均值,选手提交结果与实际测试集的类别进行对比,结果越大越好。
$$F1=2*\frac{Precision*Recall}{Precision+Recall}$$
可以通过sklearn完成f1_score计算:

from sklearn.metrics import f1_score
y_true = [0, 1, 2, 0, 1, 2]
y_pred = [0, 2, 1, 0, 0, 1]
f1_score(y_true, y_pred, average='macro')

总结

这里是入门NLP的第一次打卡, 只对赛题做一个简要的介绍,有关赛题的分析以及baseline的搭建, 后续会做详细的介绍。

这是入门NLP的基础比赛,对于NLP问题而言,首先想到的当然是用RNN来解决问题。 因此,Baseline会使用LSTM来搭建一个分类网络。

当然,实际上,并不只有一种解决方式, 我们同样可以使用CNN来处理序列问题,后续讨论。

Reference

[1] 竞赛地址
[2] 官方赛题理解

阅读 1.7k
82 声望
12 粉丝
0 条评论
82 声望
12 粉丝
文章目录
宣传栏