Datawhale零基础入门NLP——新闻文本分类(一)熟悉赛题(天池比赛)
一、赛题背景
这次是第三场赛事,赛事名称为零基础入门NLP之新闻文本分类挑战赛。
- 背景:自然语言处理
- 目的:根据新闻文本字符对新闻的类别分类
- 目标:接触预处理、模型构建和模型训练等知识点
二、赛制说明
本次赛事分为两个阶段:
- 正式赛(7.15-9.8):这是我们主要参赛的时间段。
- 天池下载数据,本地调试算法,在线提交结果
- 每天两次评测机会,实时评测
- 排行榜每小时更新(┗|`O′|┛ )
- 从高到低排序
- 没有最终排序,显示最优成绩
- 长期赛(9.14后):目前暂时没有计划参加
三、赛题数据
赛题类别
新闻数据
数据下载链接
https://tianchi.aliyun.com/competition/entrance/531810/information
数据文档
一共分为三个数据集,分别为:
- 测试集:20w
- 训练集A:5w
- 样本B:5w
赛题数据格式:
按照字符级别进行匿名处理。整合划分出14个候选分类类别:财经、彩票、房产、股票、家居、教育、科技、社会、时尚、时政、体育、星座、游戏、娱乐的文本数据。
数据集对应关系如下:
{‘科技’: 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的均值,选手提交结果与实际测试集的类别进行对比,结果越大越好。
可以通过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')
五、结果提交
需要按照sample_submit.csv进行,保证提交的是csv文件。
六、 专题学习资料
提供包括数据科学库、Baseline方案、从0到1打比赛等学习资料。
七、解题思路
思路分析
针对文本分类为题,需根据每句字符分类,经过下载和分析赛题数据,全都是阿拉伯数据,因此没有办法用中文分词等操作。
数据特征:非结构化数据
可能流程:
- 特征提取
- 分类模型
大赛提供的参考思路
- 思路1: TF-IDF+机器学习分类器
- 思路2:FastText
- 思路3:WordVec+深度学习分类器
- 思路4: Bert词向量