科大讯飞学术论文分类挑战赛 0.79+ baseline

简介: 科大讯飞学术论文分类挑战赛 0.79+ baseline


1、赛事背景


随着人工智能技术不断发展,每周都有非常多的论文公开发布。现如今对论文进行分类逐渐成为非常现实的问题,这也是研究人员和研究机构每天都面临的问题。现在希望选手能构建一个论文分类模型。


2、赛事任务


本次赛题希望参赛选手利用论文信息:论文id、标题、摘要,划分论文具体类别。

赛题样例(使用\t分隔):

  • paperid:9821
  • title:Calculation of prompt diphoton production cross sections at Tevatron and LHC energies
  • abstract:A fully differential calculation in perturbative quantum chromodynamics is presented for the production of massive photon pairs at hadron colliders. All next-to-leading order perturbative contributions from quark-antiquark, gluon-(anti)quark, and gluon-gluon subprocesses are included, as well as all-orders resummation of initial-state gluon radiation valid at next-to-next-to-leading logarithmic accuracy.
  • categories:hep-ph


3、评审规则



1. 数据说明

训练数据和测试集以csv文件给出,其中:

  • 训练集5W篇论文。其中每篇论文都包含论文id、标题、摘要和类别四个字段。
  • 测试集1W篇论文。其中每篇论文都包含论文id、标题、摘要,不包含论文类别字段。


2. 评估指标


本次竞赛的评价标准采用准确率指标,最高分为1。计算方法参考https://scikit-learn.org/stable/modules/generated/sklearn.metrics.accuracy_score.html, 评估代码参考:

from sklearn.metrics import accuracy_score
y_pred = [0, 2, 1, 3]
y_true = [0, 1, 2, 3]
accuracy_score(y_true, y_pred)


3. 评测及排行


1、赛事提供下载数据,选手在本地进行算法调试,在比赛页面提交结果。

2、每支团队每天最多提交3次。

3、排行按照得分从高到低排序,排行榜将选择团队的历史最优成绩进行排名。


4、作品提交要求


文件格式:预测结果文件按照csv格式提交

文件大小:无要求

提交次数限制:每支队伍每天最多3次

预测结果文件详细说明:

  1. 以csv格式提交,编码为UTF-8,第一行为表头;
  2. 提交前请确保预测结果的格式与sample_submit.csv中的格式一致。具体格式如下:

paperid,categories

test_00000,cs.CV

test_00001,cs.DC

test_00002,cs.AI

test_00003,cs.NI

test_00004,cs.SE


5、赛程规则


正式赛

7月12日——8月11日

  • 初赛截止成绩以团队在初赛时间段内最优成绩为准(不含测试排名)。
  • 初赛作品提交截止日期为8月11日17:00;正式赛名次公布日期为8月12日10:00。

长期赛

8月12日——9月20日

因赛事以学习实践为主,正式赛将转变为长期赛,供开发者学习实践。本阶段提交后,系统会根据成绩持续更新榜单,但该阶段榜单不再进行公示和奖励。


6、奖项设置


本赛题设立一、二、三等奖各一名,具体详情如下:

  • 一等奖:1支队伍,周赛一等奖证书,奖金:1000元
  • 二等奖:1支队伍,周赛二等奖证书,奖金:800元
  • 三等奖:1支队伍,周赛三等奖证书,奖金:500元


7 、基于Roberta的学术论文分类模型


  • 分类标签分布:

    100.png


  • 文本长度统计


拼接后title和abstract的文本长度分布


101.png

import gc
import os
import numpy as np
import pandas as pd
import seaborn as sns
import torch
from pylab import rcParams
from simpletransformers.classification import ClassificationModel, ClassificationArgs
from sklearn.metrics import accuracy_score
os.environ["CUDA_VISIBLE_DEVICES"] = "0"  # 设置显卡
# 配置
sns.set(style='whitegrid', palette='muted', font_scale=1.2)
HAPPY_COLORS_PALETTE = ["#01BEFE", "#FFDD00", "#FF7D00", "#FF006D", "#ADFF02", "#8F00FF"]
sns.set_palette(sns.color_palette(HAPPY_COLORS_PALETTE))
rcParams['figure.figsize'] = 25, 20
RANDOM_SEED = 42
np.random.seed(RANDOM_SEED)
torch.manual_seed(RANDOM_SEED)
train = pd.read_csv('data/train/train.csv', sep='\t')
test = pd.read_csv('data/test/test.csv', sep='\t')
sub = pd.read_csv('data/sample_submit.csv')
# 拼接title与abstract
train['text'] = train['title'] + ' ' + train['abstract']
test['text'] = test['title'] + ' ' + test['abstract']
label_id2cate = dict(enumerate(train.categories.unique()))
label_cate2id = {value: key for key, value in label_id2cate.items()}
train['label'] = train['categories'].map(label_cate2id)
train = train[['text', 'label']]
train_y = train["label"]
train_df = train[['text', 'label']][:45000]
eval_df = train[['text', 'label']][45000:]
model_args = ClassificationArgs()
model_args.max_seq_length = 20
model_args.train_batch_size = 8
model_args.num_train_epochs = 1
model_args.fp16 = False
model_args.evaluate_during_training = False
model_args.overwrite_output_dir = True
model_type = 'roberta'
model_name = 'roberta-base'
print("training {}.........".format(model_name))
model_args.cache_dir = './caches' + '/' + model_name.split('/')[-1]
model_args.output_dir = './outputs' + '/' + model_name.split('/')[-1]
model = ClassificationModel(
    model_type,
    model_name,
    num_labels=39,
    args=model_args)
model.train_model(train_df, eval_df=eval_df)
result, _, _ = model.eval_model(eval_df, acc=accuracy_score)
print(result)
data = []
for index, row in test.iterrows():
    data.append(str(row['text']))
predictions, raw_outputs = model.predict(data)
sub = pd.read_csv('data/sample_submit.csv')
sub['categories'] = predictions
sub['categories'] = sub['categories'].map(label_id2cate)
sub.to_csv('result/submit_{}.csv'.format(model_name), index=False)
del model
gc.collect()


线上提交结果:

6   返回分数    0.7937  1_roberta-base_addlen.csv       致Great  2021-07-12 16:04:22


8 、提升思路


  • 【论文解读】文本分类上分利器:Bert微调trick大全
    https://zhuanlan.zhihu.com/p/386603816
  • 尝试传统LSTM、CNN、hierarchical attention networks (长文本分类)
  • 不同模型结果融合(Blending/Voting)
相关文章
|
5月前
|
人工智能 算法 数据安全/隐私保护
无表情人脸预测政治信仰,AI准确率惊人!斯坦福研究登国际顶刊
【8月更文挑战第10天】斯坦福大学的研究揭示了面部识别技术的新应用:通过分析无表情人脸图片预测政治倾向。研究在《American Psychologist》发表,表明人类评估者与AI均能在控制人口统计学特征的情况下准确预测政治取向,相关系数分别为0.21和0.22。利用年龄、性别和种族信息时,算法准确性提升至0.31。研究还发现保守派倾向于有更大的下半部面部。尽管成果引人注目,但其局限性和潜在的隐私问题仍需审慎考量。
151 62
|
5月前
|
机器学习/深度学习 人工智能
清华研究登Nature,首创全前向智能光计算训练架构,戴琼海、方璐领衔
【8月更文挑战第30天】清华大学研究人员在《自然》杂志上发表了一项开创性成果,提出了一种全前向智能光计算训练架构,解决了传统光学AI方法依赖电子计算机模拟和优化的问题,实现了光学系统的自学习和自设计。该架构通过将光学系统映射到参数化神经网络中,消除了反向传播需求,展示了在多个领域的广泛应用前景,如深度光学神经网络和高分辨率散射成像等。这一成果为光学AI的发展开辟了新道路,但实际应用中仍需克服一些挑战。论文详情见:https://www.nature.com/articles/s41586-024-07687-4
57 2
|
6月前
|
人工智能 算法
第四届 Data-Juicer数据挑战赛暨天池 Better Synth 多模态大模型数据合成挑战赛
阿里云、NVIDIA主办,阿里云天池平台、魔搭社区、阿里巴巴通义实验室共同组织的第四届 Data-Juicer 数据挑战赛,暨天池 Better Synth 多模态大模型数据合成挑战赛开赛啦~
|
6月前
|
数据采集 人工智能 测试技术
datawhale AI夏令营 ABM预测
Starting on 2024.07.26, aim to deeply understand ABM's principles, construction methods, applications,
|
5月前
|
机器学习/深度学习 数据采集 自然语言处理
【NLP】讯飞英文学术论文分类挑战赛Top10开源多方案--1 赛后总结与分析
参与讯飞英文学术论文分类挑战赛的经验,包括使用的多种模型和技术,如TextCNN、FastText、LightGBM和BERT,以及提分策略和遇到的问题。
46 0
|
8月前
|
机器学习/深度学习 存储 自然语言处理
视觉任务微调王道 | 国科大联合阿里巴巴提出Mona,让Adapter成为你的All Need
视觉任务微调王道 | 国科大联合阿里巴巴提出Mona,让Adapter成为你的All Need
196 1
|
人工智能 达摩院 算法
AI顶会论文解读 | 达摩院榜首人脸检测模型MogFace
AI顶会论文解读 | 达摩院榜首人脸检测模型MogFace
|
机器学习/深度学习 人工智能 自然语言处理
识别「ChatGPT造假」,效果超越OpenAI:北大、华为的AI生成检测器来了
识别「ChatGPT造假」,效果超越OpenAI:北大、华为的AI生成检测器来了
168 0
|
机器学习/深度学习 计算机视觉
大视觉模型方向,计算机视觉顶尖期刊 IJCV 特刊征稿
大视觉模型方向,计算机视觉顶尖期刊 IJCV 特刊征稿
200 0
|
机器学习/深度学习 人工智能 监控
CVPR 2022 Oral | 人大高瓴人工智能学院让AI学会了听音乐,还开源9288个视频数据集
CVPR 2022 Oral | 人大高瓴人工智能学院让AI学会了听音乐,还开源9288个视频数据集
163 0