欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Datawhale零基础入门NLP赛事 - Task1 赛题理解

程序员文章站 2022-05-25 09:49:39
Datawhale零基础入门NLP赛事 - Task1 赛题理解一、赛事名称及介绍一、赛事名称及介绍赛事名称::零基础入门NLP - 新闻文本分类.赛事介绍:赛题简介赛题以新闻数据为赛题数据,赛题数据为14个类别的新闻文本,要求选手对新闻文本进行分类。(为了防止人工标注,官方对赛事数据的文本按照字符级别进行了匿名处理)难度分析该赛题难度相对较低,适合广大NLP小白入门。......

一、赛事名称及介绍

赛事名称::
零基础入门NLP - 新闻文本分类.

赛事介绍:

  1. 赛题简介
    赛题以新闻数据为赛题数据,赛题数据为14个类别的新闻文本,要求选手对新闻文本进行分类。(为了防止人工标注,官方对赛事数据的文本按照字符级别进行了匿名处理)
  2. 难度分析
    该赛题难度相对较低,适合广大NLP小白入门。

二、数据的简单观察

  1. 数据量
    训练集:文件大小为839MB,共计200000条数据。
    测试集:文件大小为210MB,共计50000条数据。

  2. 数据分布
    类别分布图:
    Datawhale零基础入门NLP赛事 - Task1 赛题理解

三、简单思路

  1. 机器学习
    TF-IDF/词袋模型+机器学习分类器(机器学习分类器可尝试:XGB、LGB、朴素贝叶斯等)

  2. 深度学习
    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