在日常生活中新闻具备有多的信息,在世界人工智能大赛互联网舆情企业风险事件的识别和预警 比赛中参赛选手需要根据新闻识别主体新闻类型

比赛官网(报名可下载数据集):http://ailab.aiwin.org.cn/competitions/48

比赛给定了的1w条左右的训练数据,以及部分企业主体名称的汇总。接下来我们看如何一步一步完成本场比赛的。

比赛思路

对比赛要求进行分析后,可以将赛题任务具体划分为:

  • 任务1:企业主体抽取:抽取出新闻中主要的企业名称,并与完整的企业名称进行对应;(NER任务)

  • 任务2:新闻类型分类:根据新闻的内容将新闻的类型进行具体分类;(文本分类任务)

完成思路:

  • 将任务1和任务2,分开完成;

  • 将任务1和任务2,一起用Bert建模;

任务1:使用TFIFD完成

对文本进行分词:

import jiebadef strcut(s):seg_list = jieba.cut(s)return ' '.join(list(seg_list))train_title = train_data['NEWS_TITLE'].apply(strcut)

TFIDF + 线性模型:


from sklearn.feature_extraction.text import TfidfVectorizertfidf = TfidfVectorizer(ngram_range=(1,1))
train_title_ttidf = tfidf.fit_transform(train_title)

验证集分类精度约89%。

任务1:使用BERT分类

进行token处理:

from transformers import BertTokenizer
tokenizer = BertTokenizer.from_pretrained('bert-base-chinese')
train_encoding = tokenizer(list(tr_x), truncation=True, padding=True, max_length=128)
val_encoding = tokenizer(list(val_x), truncation=True, padding=True, max_length=128)

读取模型并定义优化器:

import torch
from transformers import AutoModelForSequenceClassification, AdamW, get_linear_schedule_with_warmup
device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
model.to(device)optim = AdamW(model.parameters(), lr=5e-5)
total_steps = len(train_loader) * 1

任务2:使用正则匹配

通过公司主体与数据集中字符串匹配:

for row in train_data.iloc[:100].iterrows():match1 = company_name[company_name['name'].apply(lambda x: x in row[1].NEWS_TITLE)]if match1.shape[0] > 0:match1.loc[:, 'name_len'] = match1['name'].apply(len)match1 = match1.sort_values(by='name_len')match1 = match1.iloc[-1]['name']else:match1 = ''match2 = company_name[company_name['name_short'].apply(lambda x: x in row[1].NEWS_TITLE)]if match2.shape[0] > 0 and match1 == '':match2.loc[:, 'name_len'] = match2['name_short'].apply(len)match2 = match2.sort_values(by='name_len')match2 = match2.iloc[-1]['name']else:match2 = ''

识别结果:

标题: 东阳光(600673.SH):控股股东一致行动人宜昌东阳光药业质押2500万股
主体标签: 宜昌东阳光药业股份有限公司
主体识别结果: 宜昌东阳光药业股份有限公司标题: 千亿市值蒸发超九成,康美药业财务造假坑了谁?
主体标签: 康美药业股份有限公司
主体识别结果: 康美药业股份有限公司

任务2:BERT 序列标注

加载BERT序列标注模型:

import torch
from transformers import BertForTokenClassification, AdamW, get_linear_schedule_with_warmup
model = BertForTokenClassification.from_pretrained('bert-base-chinese', num_labels=7)device = torch.device("cuda:1" if torch.cuda.is_available() else "cpu")
model.to(device)

识别结果:

标题:山东省政府办公厅就平邑县玉荣商贸有限公司石膏矿坍塌事故发出通报
机构: 山东省政府办公厅
机构: 平邑县玉荣商贸有限公司标题:[新闻直播间]黑龙江:龙煤集团一煤矿发生火灾事故
位置: 黑龙江
机构: 龙煤集团

代码&数据

比赛报名地址:http://ailab.aiwin.org.cn/competitions/48

文章完整代码:https://github.com/datawhalechina/competition-baseline

沉迷学习,三连

世界人工智能大赛方案解析!相关推荐

  1. 世界人工智能大赛方案汇总(nlp,cv)

    Datawhale学习 开源贡献者:阿水.致Great.姚程栋.卜首等 有同学希望通过今年的世界人工智能大赛来提升专业能力,同时增加履历,拿到这次赛事的直推offer.根据大家反馈遇到的问题,我们邀请 ...

  2. 世界人工智能大赛OCR赛题方案!

    Datawhale干货 作者:阿水,北京航空航天大学,Datawhale成员 本文以世界人工智能创新大赛(AIWIN)手写体 OCR 识别竞赛为实践背景,给出了OCR实践的常见思路和流程.本项目使用P ...

  3. 世界人工智能大赛来了!

    Datawhale赛事 主办方:世界人工智能大会组委会 2021世界人工智能创新大赛(AIWIN),由世界人工智能大会组委会主办,AI SPACE承办,是全球范围内初具影响力的人工智能赛事,是2021 ...

  4. 世界人工智能大赛赛制创新 人机搭档谁更强?

    7月29日,"福建海峡银行杯"2022世界人工智能围棋大赛将在福州正式开幕,八位人类职业棋手将与八款人工智能围棋程序搭档联棋,决出两对组合,晋级年底举行的决赛. 世界人工智能围棋大 ...

  5. 世界人工智能创新大赛来了!

    Datawhale赛事 主办方:世界人工智能大会组委会 2021世界人工智能创新大赛(以下简称AIWIN),由世界人工智能大会组委会主办,AI SPACE承办,是全球范围内初具影响力的人工智能赛事,是 ...

  6. 深度解析2023世界人工智能大会

    1.2020年世界人工智能大会,此次大会的主要目的是什么? 我们现在的社会是一个科技快速发展的国家,因为我们已经不会再为了温饱的问题而操心,而是越来越追求自己的精神享受.然而科技在这一方面也是发展非常 ...

  7. 2020年AI竞赛获奖方案复盘系列(二) 遥感语义分割竞赛trick-2020华为云人工智能大赛

    前言 这是去年博主参加的一个语义分割竞赛,最终取得了top3%(13/377).这是博主第一次参加遥感图像语义分割竞赛,借着这次机会博主开始了语义分割的学习旅程,比起最终名次,博主更在意的是在这个过程 ...

  8. 全国人工智能大赛 行人重识别(Person ReID)赛项 季军团队方案分享

    全国人工智能大赛-行人重识别(Person ReID)赛项-季军团队由5名博士生组成,该次比赛初赛和复赛阶段的代码后续将整理开源,敬请期待! 团队名称:DMT 团队成员: 罗浩.何淑婷. 古有志. 王 ...

  9. 2020恩智浦智能车大赛规则_2020年世界人工智能围棋大赛落幕,各路围棋AI共同论道...

    作为今年世界三大人工智能赛事之一,"福建海峡银行杯"2020年世界人工智能围棋大赛于12月3日完赛,上届冠军星阵围棋成功卫冕,采薇围棋.天狗围棋.里拉零分别夺得亚军.季军和第四名. ...

最新文章

  1. Unity Note 1
  2. python学习路线-Python学习路线图(2020年最新版)
  3. 阿里云 刷新缓存 java_【从入门到放弃-Java】并发编程-NIO-Buffer
  4. 新的Azure通信服务(ACS)如何实现WebRTC?
  5. Spark练习 - 提交作业到集群 - submit job via cluster
  6. v380云存储如何查询_使用 JuiceFS 在云上优化 Kylin 的存储性能
  7. AI架构师:深度学习框架、部署上线及应用,一文梳理
  8. C语言里面邻接表的创建
  9. YAF label getcookie() php加密函数 自己调用任意模板
  10. python进阶书籍 流畅的python
  11. 手算逆元及手动模拟扩展欧几里得算法及思路推导
  12. ssh登录报错Pseudo-terminal will not be allocated because stdin is not a terminal
  13. mac删除的文件还能找回吗
  14. 关于先有鸡蛋还是先有鸡的理解
  15. 天猫四大独门利器,助力品牌引领消费趋势
  16. 可以通过培训“速成速转”
  17. 美国纽约大学计算机专业排名,纽约大学计算机科学排名怎么样?专业好不好?
  18. 新媒体运营教程:AARRR模型之留存有关方法论
  19. 关于乱码(MessyCode)问题
  20. MTK工具sigma的使用

热门文章

  1. Hadoop学习笔记(1) ——菜鸟入门
  2. 关于字符串的分割问题
  3. 使用java.util.Timer来周期性的执行制定的任务
  4. 巧用Excel 2010数据透视表制作销售报表
  5. KDE社区:首个KDialogue正式开放
  6. 【组队学习】【31期】青少年编程(Scratch 四级)
  7. 刻意练习:Python基础 -- Task08. 异常处理
  8. 算法基础知识科普:8大搜索算法之AVL树(下)
  9. 行列式求值、矩阵求逆
  10. 【PAT (Basic Level) 】1014 福尔摩斯的约会 (20 分)