2020 CCF BDCI“小学数学应用解题”
1.介绍
1.1 概述
CCF BDCI是全国性质的一个数据挖掘类型的比赛,每年会有算法、系统赛道等等来考验选手。
1.2具体介绍
今年的赛题总共有这么几个:
顺便上一手各个赛题的baseline:baseline合集
这里就要为大家踩坑了,建议不要选择“小学数学应用题自动解题”!原因下面会讲
1.3不推荐原因:
- 主办方出题有问题,这个题意按照我们的理解应该是涉及到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 下载模型
接下来可以下载三个权重模型:
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. 注意事项
- 由于数据量还是比较大的,我个人推荐使用V100显卡运行,跑一轮大概50分钟左右
- 平台推荐:在我的再三比较下发现矩池云比较便宜(
打钱!(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