首页 游戏 软件 资讯 排行榜 专题
首页
AI
科大讯飞-学术论文分类挑战赛:ERNIE 准确率0.79

科大讯飞-学术论文分类挑战赛:ERNIE 准确率0.79

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

科大讯飞-学术论文分类挑战赛:ernie 准确率0.79 - 游乐网

赛事任务

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

免费影视、动漫、音乐、游戏、小说资源长期稳定更新! 👉 点此立即查看 👈

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

paperid:9821title:Calculation of prompt diphoton production cross sections at Tevatron and LHC energiesabstract: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
登录后复制

数据说明

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

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

测试集1W篇论文。其中每篇论文都包含论文id、标题、摘要,不包含论文类别字段。

评估指标

本次竞赛的评价标准采用准确率指标,最高分为1。

计算方法参考https://scikit-learn.org/stable/modules/generated/sklearn.metrics.accuracy_score.html, 评估代码参考:

from sklearn.metrics import accuracy_scorey_pred = [0, 2, 1, 3]y_true = [0, 1, 2, 3]
登录后复制In [1]
!pip install paddle-ernie > log.log
登录后复制In [2]
import numpy as npimport paddle as P# 导入ernie模型from ernie.tokenizing_ernie import ErnieTokenizerfrom ernie.modeling_ernie import ErnieModelmodel = ErnieModel.from_pretrained('ernie-1.0')    # Try to get pretrained model from server, make sure you have network connectionmodel.eval()tokenizer = ErnieTokenizer.from_pretrained('ernie-1.0')ids, _ = tokenizer.encode('hello world')ids = P.to_tensor(np.expand_dims(ids, 0))  # insert extra `batch` dimensionpooled, encoded = model(ids)                 # eager executionprint(pooled.numpy())
登录后复制In [9]
import sysimport numpy as npimport pandas as pdfrom sklearn.metrics import f1_scoreimport paddle as Pfrom ernie.tokenizing_ernie import ErnieTokenizerfrom ernie.modeling_ernie import ErnieModelForSequenceClassification
登录后复制In [10]
train_df = pd.read_csv('train.csv', sep='\t')train_df['title'] = train_df['title'] + ' ' + train_df['abstract']train_df = train_df.sample(frac=1.0)train_df.head()
登录后复制In [11]
train_df.shape
登录后复制In [12]
train_df['categories'].nunique()
登录后复制In [13]
train_df['categories'], lbl_list = pd.factorize(train_df['categories'])
登录后复制In [14]
# 模型超参数BATCH=32MAX_SEQLEN=300LR=5e-5EPOCH=10# 定义ernie分类模型ernie = ErnieModelForSequenceClassification.from_pretrained('ernie-2.0-en', num_labels=39)optimizer = P.optimizer.Adam(LR,parameters=ernie.parameters())tokenizer = ErnieTokenizer.from_pretrained('ernie-2.0-en')
登录后复制In [15]
train_df.iterrows()
登录后复制In [16]
# 对数据集进行转换,主要操作为文本编码def make_data(df):    data = []    for i, row in enumerate(df.iterrows()):        text, label = row[1].title, row[1].categories        text_id, _ = tokenizer.encode(text) # ErnieTokenizer 会自动添加ERNIE所需要的特殊token,如[CLS], [SEP]        text_id = text_id[:MAX_SEQLEN]        text_id = np.pad(text_id, [0, MAX_SEQLEN-len(text_id)], mode='constant')        data.append((text_id, label))    return datatrain_data = make_data(train_df.iloc[:-5000])val_data = make_data(train_df.iloc[-5000:])
登录后复制In [ ]
# 获取batch数据def get_batch_data(data, i):    d = data[i*BATCH: (i + 1) * BATCH]    feature, label = zip(*d)    feature = np.stack(feature)  # 将BATCH行样本整合在一个numpy.array中    label = np.stack(list(label))    feature = P.to_tensor(feature) # 使用to_variable将numpy.array转换为paddle tensor    label = P.to_tensor(label)    return feature, label
登录后复制In [12]
EPOCH=1# 模型训练for i in range(EPOCH):    np.random.shuffle(train_data) # 每个epoch都shuffle数据以获得最佳训练效果;    ernie.train()    for j in range(len(train_data) // BATCH):        feature, label = get_batch_data(train_data, j)        loss, _ = ernie(feature, labels=label)         loss.backward()        optimizer.minimize(loss)        ernie.clear_gradients()        if j % 50 == 0:            print('Train %d: loss %.5f' % (j, loss.numpy()))                # 模型验证        if j % 100 == 0:            all_pred, all_label = [], []            with P.no_grad():                ernie.eval()                for j in range(len(val_data) // BATCH):                    feature, label = get_batch_data(val_data, j)                    loss, logits = ernie(feature, labels=label)                    all_pred.extend(logits.argmax(-1).numpy())                    all_label.extend(label.numpy())                ernie.train()            acc = (np.array(all_label) == np.array(all_pred)).astype(np.float32).mean()            print('Val acc %.5f' % acc)
登录后复制In [13]
test_df = pd.read_csv('test.csv', sep='\t')test_df['title'] = test_df['title'] + ' ' + test_df['abstract']test_df['categories'] = 0test_data = make_data(test_df.iloc[:])
登录后复制In [20]
all_pred, all_label = [], []# 模型预测with P.no_grad():    ernie.eval()    for j in range(len(test_data) // BATCH+1):        feature, label = get_batch_data(test_data, j)        loss, logits = ernie(feature, labels=label)        all_pred.extend(logits.argmax(-1).numpy())        all_label.extend(label.numpy())
登录后复制In [21]
pd.DataFrame({    'paperid': test_df['paperid'],    'categories': lbl_list[all_pred]}).to_csv('submit.csv', index=None)
登录后复制
来源:https://www.php.cn/faq/1426722.html
免责声明: 游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。

相关攻略

FDUSD 脱锚危机之下:对币安影响几何?
web3.0
FDUSD 脱锚危机之下:对币安影响几何?

FDUSD脱锚惊魂夜:币安生态稳定币的信任危机与系统性风险 2025年4月2日夜间,加密货币市场经历了一场突如其来的“压力测试”。由香港First Digital Trust Limited发行的美元稳定币FDUSD,在市场上演了惊心动魄的脱锚跳水,其兑USDT价格一度暴跌至0 8726美元。这场震

热心网友
04.01
Obsidian同步方案对比:为什么Git更适合管理笔记库?
科技数码
Obsidian同步方案对比:为什么Git更适合管理笔记库?

最近又折腾了下 Obsidian 的 Git 插件,虽然也有点麻烦,但它是适合我的。下面介绍下怎么配置和使用。 第一次使用 Obsidian 是在 2024 年,这是翻阅之前的文章 《Obsidia

热心网友
02.13
华为8B代码模型突破,32B巨头对手面临新挑战
科技数码
华为8B代码模型突破,32B巨头对手面临新挑战

这项由华为技术有限公司、南洋理工大学、香港大学和香港中文大学联合完成的突破性研究发表于2026年1月,论文编号为arXiv:2601 01426v1。研究团队通过一种名为SWE-Lego的创新训练方

热心网友
01.10
Wavesurf Wave13发布:集成SWE-1.5模型与Git工作流,重塑AI代码编辑
电脑教程
Wavesurf Wave13发布:集成SWE-1.5模型与Git工作流,重塑AI代码编辑

12 月 27 日消息,科技媒体 NeoWin 今天(12 月 27 日)发布博文,报道称 AI 代码编辑器 Windsurf 本周发布 Wave 13 版,通过大幅升级多智能体工作流、性能可访问

热心网友
12.29
小蚁NEO:特性、交易与投资指南
web3.0
小蚁NEO:特性、交易与投资指南

NEO(小蚁区块链)旨在构建智能经济网络。NEO通过资产数字化和智能合约实现自动化管理,用户需在支持NEO交易的平台注册账户并获取数字货币,选择合适的交易对后,即可下单交易并确认。交易完成后,可在账户中查看NEO资产,或转移至个人数字储存中安全保管NEO。

热心网友
12.13

最新APP

火柴人传奇
火柴人传奇
动作冒险 04-01
街球艺术
街球艺术
体育竞技 04-01
飞行员模拟
飞行员模拟
休闲益智 04-01
史莱姆农场
史莱姆农场
休闲益智 04-01
绝区零
绝区零
角色扮演 04-01

热门推荐

判断流浪动物是否友好时以下哪种信号是错误的
游戏攻略
判断流浪动物是否友好时以下哪种信号是错误的

支付宝蚂蚁庄园2026年4月4日今日最新答案揭晓 今日蚂蚁庄园小课堂的首道题目是:在判断流浪动物是否友善时,以下哪一种信号解读是不正确的? A、狗狗摇尾巴就一定代表友好 B、瞳孔放大通常表示恐惧 正确答案 狗狗摇尾巴就一定代表友好 详细解析 许多人存在一个普遍误区,认为犬类摇尾巴一定是开心和亲近的信

热心网友
04.04
他趣如何结婚
手机教程
他趣如何结婚

他趣:如何从真诚交友顺利走向婚姻殿堂 他趣并非直接促成婚姻的魔法钥匙,但它确实扮演着至关重要的角色——为众多单身人士搭建了一座从线上认识到线下相恋,最终携手步入婚姻的可靠桥梁。这个平台汇聚了真实且有婚恋意图的用户,让原本可能无缘相遇的两个人,有了相识、相知直至相守的珍贵机会。 第一步:完善个人资料,

热心网友
04.04
洛克王国世界必入手宠物与技能搭配推荐指南
游戏攻略
洛克王国世界必入手宠物与技能搭配推荐指南

洛克王国世界开荒攻略:首日必抓精灵与阵容搭配详解 《洛克王国世界》开服第一天,所有训练师的核心目标非常明确:高效利用初期时间,组建一套既能轻松探索地图,又能平稳应对各类战斗的精灵队伍。选择正确的开荒阵容,能让你的冒险之旅事半功倍;若选择不当,则可能陷入被动,浪费宝贵资源。那么,哪些宠物是玩家公认的“

热心网友
04.04
洛克王国世界精灵克制关系指南
游戏攻略
洛克王国世界精灵克制关系指南

洛克王国全属性克制关系解析:掌握十八系胜负关键 进入洛克王国,你将探索一个由18种精灵属性构成的丰富对战世界:普通、草、火、水、光、地、冰、龙、电、毒、虫、武、翼、萌、幽、恶、机械与幻系。各属性之间存在着复杂而精准的克制与抵抗规则,这对新手玩家而言可能显得纷繁复杂。本文旨在全面解析洛克王国属性克制表

热心网友
04.04
佣兵小镇乔丝琳怎么获得?佣兵小镇乔丝琳养成攻略
游戏攻略
佣兵小镇乔丝琳怎么获得?佣兵小镇乔丝琳养成攻略

光系核心英雄乔丝琳养成全攻略:从获取到毕业的深度指南 一、乔丝琳获取途径与资源投入规划 作为光系核心输出英雄,乔丝琳的获取时机非常明确,她将在服务器开区第3天通过专属转盘活动正式登场。玩家需要为其规划清晰的培养路径:起步品质建议至少达到红2,而终极目标则是彩4完全体毕业。 大额投入方案(适合追求极速

热心网友
04.04