TASK 1 赛题理解
赛题;零基础入门NLP赛事-新闻文本分类
地址:新闻文本分类
学习目标
- 理解赛题背景与赛题数据
- 完成赛题报名和数据下载,理解赛题的解题思路
了解赛题
- 赛题概况
- 数据概况
- 预测指标
- 分析赛题
赛题概况
赛题数据为新闻文本,并按照字符级别进行匿名处理。整合划分出14个候选分类类别:财经、彩票、房产、股票、家居、教育、科技、社会、时尚、时政、体育、星座、游戏、娱乐的文本数据。
赛题数据由以下几个部分构成:训练集20w条样本,测试集A包括5w条样本,测试集B包括5w条样本。为了预防选手人工标注测试集的情况,我们将比赛数据的文本按照字符级别进行了匿名处理。
数据概况
处理后的赛题数据如下:
数据集中标签对应关系如下:
0 | 科技 | 1 | 股票 | 2 | 体育 |
---|---|---|---|---|---|
3 | 娱乐 | 4 | 时政 | 5 | 社会 |
6 | 教育 | 7 | 财经 | 8 | 家居 |
9 | 游戏 | 10 | 房产 | 11 | 时尚 |
12 | 彩票 | 13 | 星座 |
评价指标
本赛题的评价指标为类别的f1_score 的均值:
F
1
=
2
×
p
r
e
c
i
s
i
o
n
×
r
e
c
a
l
l
p
r
e
c
i
s
i
o
n
+
r
e
c
a
l
l
F_1 = 2 \times \frac{precision \times recall}{precision + recall}
F1=2×precision+recallprecision×recall
p r e c i s i o n = t r u e p o s i t i v e s t r u e p o s i t i v e s + f a l s e p o s i t i v e s precision = \frac{true \; positives}{true \; positives + false \; positives} precision=truepositives+falsepositivestruepositives
r e c a l l = t r u e p o s i t i v e s t r u e p o s i t i v e s + f a l s e n e g a t i v e s recall = \frac{true \; positives}{true \; positives + false \; negatives} recall=truepositives+falsenegativestruepositives
f1_score: 是recall和precision的调和均值,调和平均可以惩罚极端情况。一个具有 1.0 的精度,而召回率为 0 的分类器,这两个指标的算术平均是 0.5,但是 f1_score 会是 0。f1_score 给了精度和召回率相同的权重,它是通用 fβ指标的一个特殊情况,在 fβ中,β 可以用来给召回率和精度更多或者更少的权重。(还有其他方式可以结合精度和召回率,例如二者的几何平均,但是 f1_score 是最常用的。)
本赛题尝试将 f1_score 最大化,结果越大分类效果越好。
赛题分析
赛题思路分析:赛题本质是一个文本分类的问题,需要根据每句的字符进行分类。但是赛题给的数据是匿名化的,不能直接使用中文分词等操作。
对匿名化字符进行建模,进而完成文本分类过程。文本数据是一种典型的非结构化数据,因此可能涉及到特征提取和分类模型两个部分。
- 思路1: TF-IDF + 机器学习分类器
- 思路2:FastText
- 思路3: WordVec + 深度学习分类器
- 思路4: Bert词向量
TF-IDF + 机器学习分类器
TF-IDF (Term Frequency-inverse Document Frequency):一种针对关键词的统计分析方法,用于评估一个词对一个语料库的重要程度。
评估标准:认为词的重要程度跟它在文章中出现的次数成正比,与它在语料库出现的次数成反比。(为了剔除常用词对关键字的影响,提高关键词和文章的相关性)
例如:the this 这类的词可能在文章中占比很高,以此认为该词为关键词的话最终分类效果很弱。
-
TF 词频
对某文档 d j d_j dj里的词语 t i t_i ti而言, t i t_i ti的词频表示为:
t f i , j = n i , j ∑ k n k , j tf_{i,j} = \frac{n_{i,j}}{\sum_k n_{k,j}} tfi,j=∑knk,jni,j$n_{i,j} : t_i$在文档$d_j$中出现的次数 分母为$d_j$中出现的所有字数
-
IDF 逆向文件频率
如果包含词语t的文档越少,则IDF越大。用以说明t在整个文档集上具有很好的区分能力。
I D F = l o g ( 语 料 库 中 文 档 总 数 包 含 该 词 的 文 档 数 + 1 ) IDF = log(\frac{语料库中文档总数}{包含该词的文档数 + 1}) IDF=log(包含该词的文档数+1语料库中文档总数) -
在使用TF-IDF对文本提取特征之后,使用分类器进行选择:SVM, LR, XGBoost, RandomForest等等