一、天池比赛报名及数据下载
1.1 比赛报名
1.1.1 注册账号
打开天池官网https://tianchi.aliyun.com/ 注册账号。注意可以用淘宝/支付宝账号直接登录,节省很多时间。
1.1.2 完善个人信息
注册完成后,点击右上角账号,进入个人信息页,完善个人信息。比如 邮箱,手机号,工作单位,学校,专业等。信息不完善影响后续报名比赛。本次题目是学习赛题,所以不需要实名即可报名。
1.1.3 比赛报名
打开https://tianchi.aliyun.com/competition/gameList/coupleList 学习赛页面,点击【零基础入门NLP - 新闻文本分类】进行报名。
1.2 数据下载
在报名成功后的页面,选择【赛题与数据下载】,可以下载数据。
打开下载下来的NLP_data_list_0715.csv文件, 里面包含三个链接
将数据下载到本地目录,并解压。至此,准备工作完成。
二、理解赛题背景及赛题数据
2.1 赛题背景
零基础入门NLP-新闻文本分类塞是Datawhale与天池联合发起的零基础入门系列赛事。赛题以自然语言处理为北京,要求根据新闻文本字符对行文的类别进行分类。
2.2 赛题数据
在【1.2】中下载的数据为3个csv文件,里面是按照字符级别进行匿名处理过的新闻文本信息。整合划分出14个候选分类类别:财经、彩票、房产、股票、家居、教育、科技、社会、时尚、时政、体育、星座、游戏、娱乐。
- train_set.csv 训练集,20w条样本。包括分类(label)和文本(text)两列。 在数据集中标签的对应的关系如下:
分类 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |
标签 | 科技 | 股票 | 体育 | 娱乐 | 时政 | 社会 | 教育 | 财经 | 家居 | 游戏 | 房产 | 时尚 | 彩票 | 星座 |
- test_a.csv 测试集A,包含5w条样本。
- test_a_sample_submit.csv 提交结果样例数据.
2.3 数据读取
import pandas as pd
train_df = pd.read_csv('./train_set.csv', sep = '\t', nrows=100)
print(train_df.head())
2.4 评估指标
评价标准为f1_score的均值,
越大,说明模型的质量越好。
F1-Score意义及计算方式见wiki:
三、理解赛题思路
赛题本质是一个文本分类问题,需要根据每句的字符进行分类,但是赛题给出的数据是匿名化的,不能使用中文分词等操作,我们需要对匿名字符进行建模,然后进行文本分类。 由于文本是一种典型的非结构化数据,因此需要涉及 特征提取和分类模型两个部分。任务链接中给出了一些参考模型:
TF-IDF + 机器学习分类器
使用TF-IDF对文本提取特征,然后使用分类器分类,可以选择SVM, LR, XGBOOST分类器。
参照:
FastText
FastText是入门款的词向量,利用Facebook提供的FastText工具,可以快速构建出分类器。
WordVec + 深度学习分类器
WordVec是进阶款的词向量,通过构建深度学习完成分类,深度学习分类的网络结构可以选择TextCNN, TextRNN或者BiLSTM
Bert词向量
Bert是高配款的词向量具有强大的建模学习能力。