Datawhale 之NLP学习-打卡

Posted rn-05181226-rw

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Datawhale 之NLP学习-打卡相关的知识,希望对你有一定的参考价值。

Task1 赛题理解

1.赛题理解

赛题名称:零基础入门NLP之新闻文本分类
赛题目标:入门自然语言处理,接触NLP的预处理、模型构建和模型训练等知识点
赛题任务:对新闻文本进行分类

2.学习目标

理解赛题背景与赛题数据

3.赛题数据

报名比赛后即可下载相应数据:
以匿名处理后的新闻数据为赛题数据
组成:训练集 测试集A 测试集B 数据提交格式样本

4.数据标签

数据集中的标签对应关系:{‘科技‘: 0, ‘股票‘: 1, ‘体育‘: 2, ‘娱乐‘: 3, ‘时政‘: 4, ‘社会‘: 5, ‘教育‘: 6, ‘财经‘: 7, ‘家居‘: 8, ‘游戏‘: 9, ‘房产‘: 10, ‘时尚‘: 11, ‘彩票‘: 12, ‘星座‘: 13}

5.测评指标

评价标准为类别 f1_score的均值,结果越大越好

关于f1_score的理解, f1分数是分类问题的一个衡量标准,值在0~1之间

公式:

(F_1 = 2cdotfrac{precision cdot recall}{precision+recall})

每个类别有:

(precision_i=frac{TP}{TP+FP})?(1)

(recall_i=frac{TP}{TP+FN})?(2)

最后的结果(宏平均):

(f1_i=2cdotfrac{precision_i cdot recall_i}{precision_i+recall_i})?(3)

(score=frac{1}{n}sum f1_i)?(4)

其中:
??precision-精准度/查准率
??recall-召回率/查全率
??TP(True Positive)-预测答案正确
??FP(False Positive)-错将其他类预测为本类
??FN(False Negative)-本类标签预测为其他类标签

Python实现:

from sklearn.metrics import f1_score

#预测结果
pred_ls = [0,1,1,2,0,1]

#实际标签
true_ls = [0,2,0,1,0,1]

#求f1_score
#属性average:二分类问题则选择参数binary;
#如果考虑类别的不平衡性,需要计算类别的加权平均,则使用weighted;
#如果不考虑类别的不平衡性,计算宏平均,则使用macro
f1=f1_score(true_ls,pred_ls,average=‘macro‘)

分析上诉代码:
对于类0:TP=2,FP=1,FN=0,precision=2/3,recall=1,f1_score=4/5
对于类1:TP=1,FP=1,FN=2,precision=1/2,recall=1/3,f1_score=2/5
对于类2:TP=0,FP=1,FN=1,precision=0,recall=0,f1_score=0
宏平均分数为0.400

6.数据读取

使用pandas库完成数据的读、取、分析等操作

import pandas as pd
data_df = pd.read_csv("[path]	rain_set.csv", seq=‘	‘)

7.解题思路

赛题难点:给出的数据是匿名化的,无法直接使用中文分词等操作
参考思路:TF-IDF + 机器学习分类器;FastText;WordVec + 深度学习分类器;Bert词向量















以上是关于Datawhale 之NLP学习-打卡的主要内容,如果未能解决你的问题,请参考以下文章

深度神经网络在NLP的应用!

NLP模型BERT和经典数据集!

Jina AI 联合Datawhale,发起学习项目!

特征提取+分类模型4种常见的NLP实践思路

NLP模型BERT和经典数据集!

Datawhale赛事大满贯来了!