2020 CCF BDCI“小学数学应用解题”

1.介绍

1.1 概述

CCF BDCI是全国性质的一个数据挖掘类型的比赛,每年会有算法、系统赛道等等来考验选手。

1.2具体介绍

今年的赛题总共有这么几个:
顺便上一手各个赛题的baseline:baseline合集

这里就要为大家踩坑了,建议不要选择“小学数学应用题自动解题”!原因下面会讲

1.3不推荐原因:

  1. 主办方出题有问题,这个题意按照我们的理解应该是涉及到NLP的一个挺复杂的问题,但是主办方给出的baseline中,用人工手写规则来fit,也是活久见

这里是官方的baseline的代码:https://discussion.datafountain.cn/questions/3169/answers/24345

2.主办方给的数据集有问题,第一是数据量太少,训练集就只有1w2行,第二是不少答案给的都是错的
3.大部分人都是根据苏大佬的baseline来训练的,但是其中用到了ape210k的外部数据,跟据主办方回应是不可以的。
综上所述,我个人建议是不太推荐的

2.基本baseline的部署

2.1 下载主要代码

首先去baseline的github仓库baseline下载所有文件

2.2 下载模型

接下来可以下载三个权重模型:

  1. UER开源的base级别的权重提取码I0k6
  2. UER开源的Large级别的权重提取码I0k6
  3. 苏大佬自己训练出来的模型权重提取码jc7g

2.3 整合文件

随后你的文件目录应当如下图所示(math_slove.py就是上文的task_seq2seq_ape210k_math_word_problem.py):

2.4 准备环境

个人推荐使用anaconda创建一个虚拟环境:python==2.7,tensorflow==1.14, keras==2.3.1,bert4keras==0.8.8
之后将task_seq2seq_ape210k_math_word_problem.py中的文件路径修改即可

2.5 开始运行

模型训练:

python task_seq2seq_ape210k_math_word_problem.py

模型预测:

predict.py:
from task_seq2seq_ape210k_math_word_problem.py import predict
predict('test.csv','submit.csv',topk=1)
python predict.py

好了,这个时候就可以开始跑了

3. 注意事项

  1. 由于数据量还是比较大的,我个人推荐使用V100显卡运行,跑一轮大概50分钟左右
  2. 平台推荐:在我的再三比较下发现矩池云比较便宜(打钱!(bushi)

4. 参考链接:

https://github.com/bojone/ape210k_baseline
https://kexue.fm/archives/7809
https://github.com/kadengriffith/MWP-Automatic-Solver
https://github.com/MiuLab/E2EMathSolver
https://www.kesci.com/mw/project/5e0e10332823a10036b24d67
https://www.cnblogs.com/yikemogutou/p/11396045.html

posted @ 2020-11-04 21:01  Edwardlyz  阅读(575)  评论(1编辑  收藏  举报