Google Coding代码数据集
数据集文件存储位置
/mnt/cos/cos_shanghai_1/raw_datasets/google_coding
解压缩并提取数据库文件后的数据集文件存储位置如下:
/mnt/cos/cos_shanghai_1/raw_datasets/google_coding/google_coding_unzip
数据集文件schema
每个文件夹中有两个数据库文件raw_data.sqlar
和solutions.sqlar
,其余为样例数据和测试数据。其中每个数据库文件的存储格式如下,
1 | CREATE TABLE sqlar( |
其中,raw_data.sqlar文件存放的是每个参赛选手的提交、测试数据,solutions.sqlar存放的是每次提交的代码,注意,在年代较早的google coding比赛某些场次中,solutions.sqlar数据库文件缺失或不含有代码内容。
raw_data.sqlar文件结构
该数据库文件每一行存放一个json字符串
- 第一行一般称为index.json字符串,存放的是题目信息,有两个键”challenge”和”language”,前者是题目的描述,包括题目的约束要求,题目标题,题目id等信息;后者是允许使用的计算机语言的标号等。
- 第二行起的若干行为standing.json字符串,存放的是题目的补充信息,有三个键”challenge”、“full_scoreboard_size”和”user_scores”,其中”challenge”存放的是题目的补充约束条件,“full_scoreboard_size”存放的是排名榜的人数,最后一个键值存入的是每一个选手,在其比赛的整个过程中每次提交的得分、罚时和排名情况。
- 有的数据集在上述两种字符串以后,一直到数据库结束有一个attempts/user.json,每一行存放一个选手的详细提交信息,有两个键值,其中”challenge”键存放的是每次提交代码后的排名信息;在”attempts”键中存放有每次提交代码的测试信息,该信息按提交的时间先后顺序存放在一个list中,每一个元素的格式如下:
1 | { |
- 其中“is_scoring”如果为真,则说明此次提交的代码通过了全部测试点,运行结果正确,代码存放在远程数据库中,访问网址如”source_file“中的”url“,该代码解决的问题id为”task_id“,该id可由第一行的json文件中题目id经过一次hash得到题目信息。
初步处理结果
初步完成代码挑选、代码题目配对的数据集文件放于
/mnt/cos/cos_shanghai_1/raw_datasets/google_coding/google_coding_jsonl
目录结构说明:
目录共含有三类文件:jsonl
文件,txt
文件和_SUCCESS
或者_FAILURE
文件。
- 对于全体带有_SUCCESS的文件,处理完毕,按text和meta格式存放的,能够解决问题(通过全部测试点,评分选项为True)的代码存放于jsonl文件中,不能够解决问题(不能通过全部测试点)的代码按数据库原格式存放在txt文件中;
- 对于全体带有_FAILURE的文件,是处理失败的,失败的原因有:没有solutions.sqlar文件,或者solutions.sqlar文件为空,或者raw_data.sqlar文件为空;
- 有接近一半的代码文件为空。
- 使用海外服务进行源代码网页抓取后,补充了极少代码,大部分raw_data.sqlar仍然只提供了排名信息而没有提供attempts信息,因此仍然无法获取源代码,这部分题目只能被标记为FAILURE
处理结果统计
比赛名 | AC代码量数据量 | 未AC代码数据量 | 总计代码量 | jsonl文件大小 |
---|---|---|---|---|
2020qr | 118526 | 214631 | 333157. | |
评论