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

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

作者: 致Great | 来源:发表于2021-07-15 20:36 被阅读0次

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的学术论文分类模型

  • 分类标签分布:


  • 文本长度统计

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

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)

相关文章

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

    比赛题目:学术论文分类挑战赛 比赛链接:http://challenge.xfyun.cn/topic/info?...

  • 科大讯飞 中文成语填空挑战赛baseline

    比赛名称:中文成语填空挑战赛算法挑战大赛 比赛链接:https://challenge.xfyun.cn/topi...

  • 语音识别

    常用平台 科大讯飞 百度语音 这篇博客以科大讯飞为例 常用功能 语音识别 语音合成 集成步骤 在科大讯飞开发平台注...

  • 科大讯飞

    2017年11月15日,科技部在京召开新一代人工智能发展大会及重大科技项目启动大会。会议对新一代人工智能发展进行了...

  • 科大讯飞

    陆续关注它,十年后会发生什么谁也说不定

  • 科大讯飞

    精准的定位,新兴的市场,足够多的优质用户。这是科技公司之所以立足的根本。中国无数个上市公司品牌大多数都是传统传统行...

  • 科大讯飞

    昨天晚上把简历投了一波,没想到今天就收到了笔试通知。比起投了半个月的中兴通讯来说,科大讯飞速度实在是杠杠的。 一上...

  • 科大讯飞

    科大讯飞是一家国内语音技术做的特别好的上市企业,在安徽,叫安徽科大讯飞信息科技股份有限公司。比如语音识别,语音翻译……

  • 科大讯飞

    2019年,节后的三连阳,又让大A股焕发了无限生机,之前写过一篇文章易会满的上任,意义非凡!(在简书被关小黑屋了)...

  • 老板这样对你是真的好吗?科大讯飞准备优化30%的正式员工!

    【科大讯飞董事长谈裁员:对员工的过度宽容是对员工的害】 科大讯飞准备优化30%的正式员工,科大讯飞董事长刘庆峰今日...

网友评论

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

      本文链接:https://www.haomeiwen.com/subject/alpmpltx.html