Coder Social home page Coder Social logo

oier's Introduction

OIerDb

OIerDb is a database for Chinese OI participants.

OIerDb 是**信息学竞赛选手的一个数据库.

如何订正数据

请点我了解数据修复

The following data are the unlicensed data gathered and formatted by fjzzq2002 from noi.cn. These data are modified and completed.

  • CTSC 2010-2017
  • APIO 2010-2017
  • NOI 2010-2017
  • NOI D类 2014-2017
  • WC 2015-2017
  • NOIP 2013-2017

The rest of the data are directly from noi.cn, including:

  • CTSC 2018-2019
  • APIO 2018-2019
  • NOI 2009 / 2018-2019
  • NOI type D 2010-2013 / 2018-2019
  • WC 2018-2019
  • NOIP 2010-2012 (not complete) / 2018

这些数据是在开源项目中,由fjzzq2002整理的,并进行了部分完善

  • CTSC 2010-2017
  • APIO 2010-2017
  • NOI 2010-2017
  • NOI D类 2014-2017
  • WC 2015-2017
  • NOIP 2013-2017

其余数据来源于NOI官网,包括

  • CTSC 2018-2019
  • APIO 2018-2019
  • NOI 2009 / 2018-2019
  • NOI 非ABC类选手 2010-2013 / 2018-2019
  • WC 2018-2019
  • NOIP 2010-2012 (提高组一等奖) / 2018

将来会及时更新新数据,也可能会添加缺失数据。

捐赠记录

日期 金额 备注
2019-03-07 20.00元 杭心语 北京大学
2019-03-09 20.00元
2019-03-10 10.00元
2019-03-14 6.66元
2019-03-15 10.00元 小伙子加油啊
2019-03-16 5.00元 Level -1
2019-03-18 10.00元
2019-03-18 6.00元
2019-03-18 9.99元 白雪粉粉何所似
2019-03-21 30.00元
2019-03-22 10.00元 捐赠给OIerDb,并Orz
2019-03-23 17.00元
2019-03-24 10.00元 资瓷oierdb!
2019-03-24 100.00元 oierdb捐助
2019-03-25 6.00元 备注能留的也太少了⑧
2019-03-25 5.00元
2019-03-28 10.00元
2019-03-29 30.00元 enor2017
2019-03-30 5.00元
2019-03-30 23.33元 Orz 无限仰慕作者
2019-04-02 15.00元
2019-04-02 200.00元 西安铁一中教练aqx
2019-07-25 10.00元
2019-07-30 10.00元
2019-07-31 3.50元 @imikeliu 捐
2019-08-02 20.00元 oierdb
2019-08-15 10.00元
2019-08-16 10.00元
2019-08-18 5.00元
2019-08-30 1000.00元 洛谷捐助
2019-09-06 50.00元 gbakkk5951
2019-09-25 2.33元
2019-09-25 2.33元 Github.com/panda2134
2019-09-26 10.00元
2019-10-01 0.10元
2019-10-12 5.00元
2019-10-28 20.00元
2019-11-01 8.00元
2019-11-10 20.00元 Andrew82
2019-11-13 10.00元 滋瓷之坤哥哥QwQ
2019-11-29 20.00元
2019-12-07 11.11元
2019-12-07 1.28元
2019-12-11 66.00元 发个红包,加油!
2019-12-14 10.00元
2019-12-21 10.00元
2019-12-21 1.00元
2019-12-23 10.24元
2019-12-23 20.20元 wzk2020出线冲冲冲!
2020-01-19 9.99元 卑微果壳
2020-01-30 5.00元
2020-02-16 1.00元
2020-12-02 10.00元 Fighting~~~
2020-12-02 5.00元
2020-12-10 100.00元 yloi
2020-12-16 10.00元
2021-01-25 1.00元 加油
2021-01-28 5.00元
2021-02-19 100.00元
2021-02-22 20.21元
2021-02-22 99.82元 来自蔡德仁的凝视
2021-02-22 100.00元 skyline
2021-02-24 10.22元 For OIer Amethyst
2021-02-25 200.00元
2021-02-25 1.00元
2021-03-06 2.00元
2021-03-14 5.00元 来自退役选手的感谢
2021-04-06 6.66元 才注意到能捐款
2021-04-10 10.00元
2021-04-13 9.99元 希望OIerDb能够长久
2021-05-10 50.00元 长沙

搭建指南

这个项目是"OIerDb",但其实可以方便地改装成为任何一个学科竞赛获奖的数据库。项目由如下几部分组成:

合并及数据预处理

原始数据文件

data.txt

data.txt中是所有的获奖记录,实则为csv格式,每一行格式如下:

比赛名称,奖项,姓名,年级,学校,分数,省份,性别,

下面是一个例子

NOI2018,金牌,杨骏昭,高一,南京外国语学校,522,江苏,男,

需要注意的是,如果其中有一项缺省,逗号的数目不能减少,且每行最后还有一个逗号。

school_oped.txt

school_oped.txt中是表示学校合并信息的文件,同时记录有学校所属的省份。每一行格式如下:

省份,地市,学校名称1,学校名称2,(更多学校名称,结尾无逗号)

下面是一个例子

江苏,苏州市,江苏省苏州中学,江苏省苏州中学校,苏州中学

需要注意,每一个在data.txt中出现的学校名称都应当在这个文件中出现。 在getter.py中提供了一个基于百度地图api的从学校名称找定位的函数,通过这个函数可以初步地获得学校所在省份和地市,并合并一下定位相同的学校。这个效果并不充分,合并更多学校很大程度上基于人工判断,如果有人希望部署这个系统至其他位置,可参考本项目中school_oped.txt中做出的合并。

合并及数据处理脚本

两个脚本均是python3脚本,并需要pypinyin才能够正常运行。

new_merger.py

new_merger.py 是最重要的数据合并器。

new_merger.py 从 data.txtschool_oped.txt 读入数据,并输出csv格式到result.txt中。

school_analyzer.py

school_analyzer.py 是学校获奖记录统计及排名器。

new_merger.py 从 data.txtschool_oped.txt 读入数据,并输出csv格式到OI_school.txt中。

这个脚本将每个学校的获奖记录统计,并计算分数。分数由一个函数f(排名,比赛类型,比赛年份)得出

f(排名,比赛类型,比赛年份) = 0.8 ^ (今年年份-比赛年份) * g(排名*400/总参赛人数) * 比赛权重

g(x)在x = 0-60时为 100-40上的线性函数,x在60-250上为 36 - 7.5 上的线性函数,x在250-400上为7.5-0上的线性函数。

权重 = {"NOI":1,"NOID类":0.75,"CTSC":0.6,"WC":0.5,"APIO":0.4,"NOIP提高":0.1,"NOIP普及":0.04}

如果您有兴趣修改这个评分函数(或参数),请对比说明您的函数(或参数)的优越性。毕竟现在应用的也是一念之间的产物。

在线部署

作者的部署

作者的部署使用了MySQL,但实际上您使用什么数据库都可以(尽管这里只提供了php格式的查询MySQL数据库并返回的代码)。在更新/新添加数据时,先运行数据预处理的脚本,而后将生成的csv格式数据导入到数据库中,就结束了。

search.php 和 school.php

根据查询查表,而后返回 json 格式的数据。您需要更改php中的数据库信息以适应自己的设置。具体实现可能不是很漂亮。

欢迎您来作出贡献,提出意见和建议,或者自己搭一个玩玩。

oier's People

Contributors

anguei avatar blackwhitetony avatar catreap avatar frankli0324 avatar geziyue avatar imgbotapp avatar limstash avatar littlefall avatar muodoo avatar nocrizwang avatar panda2134 avatar samxiaocd avatar serokssr avatar shuyumo2003 avatar studyingfather avatar tsstudio avatar xeonacid avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.