Datawhale零基础入门NLP赛事 - Task1 赛题理解
程序员文章站
2022-05-25 09:49:39
Datawhale零基础入门NLP赛事 - Task1 赛题理解一、赛事名称及介绍一、赛事名称及介绍赛事名称::零基础入门NLP - 新闻文本分类.赛事介绍:赛题简介赛题以新闻数据为赛题数据,赛题数据为14个类别的新闻文本,要求选手对新闻文本进行分类。(为了防止人工标注,官方对赛事数据的文本按照字符级别进行了匿名处理)难度分析该赛题难度相对较低,适合广大NLP小白入门。......
Datawhale零基础入门NLP赛事 - Task1 赛题理解
一、赛事名称及介绍
赛事名称::
零基础入门NLP - 新闻文本分类.
赛事介绍:
- 赛题简介
赛题以新闻数据为赛题数据,赛题数据为14个类别的新闻文本,要求选手对新闻文本进行分类。(为了防止人工标注,官方对赛事数据的文本按照字符级别进行了匿名处理) - 难度分析
该赛题难度相对较低,适合广大NLP小白入门。
二、数据的简单观察
-
数据量
训练集:文件大小为839MB,共计200000条数据。
测试集:文件大小为210MB,共计50000条数据。 -
数据分布
类别分布图:
三、简单思路
-
机器学习
TF-IDF/词袋模型+机器学习分类器(机器学习分类器可尝试:XGB、LGB、朴素贝叶斯等) -
深度学习
WordVec + 深度学习分类器(深度学习分类器可尝试:TextCNN、TextRNN或者BiLSTM等)
四、baseline搭建
import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
from lightgbm import LGBMClassifier
from sklearn.feature_extraction.text import CountVectorizer
def paint(data):
sns.countplot(data)
plt.show()
if __name__ == '__main__':
# 文件读取
train= pd.read_csv('./data/train.csv', sep="\t")
test = pd.read_csv('./data/test.csv')
# x,y划分
train_y = train['label']
train_x = train['text']
test_x = test['text']
# 词袋模型
vectorizer= CountVectorizer(min_df=0.05,max_df=0.8,decode_error='replace')
vectorizer = vectorizer.fit(train_x)
print("词袋模型训练完成")
# 文本转换
train_x = vectorizer.transform(train_x).toarray()
test_x = vectorizer.transform(test_x).toarray()
print("文本转换完成", train_x.shape, test_x.shape)
# 模型训练
model = LGBMClassifier(eval_metric='auc')
model.fit(train_x, train_y)
print("模型训练完成")
# 预测
pre = model.predict(test_x)
print(pre)
本文地址:https://blog.csdn.net/weixin_46545555/article/details/107486316