首届“算法控”马拉松程序设计竞赛
十一月 11th, 2012 | Posted by in 算法竞赛本次竞赛旨在为ACMer提供小项目的机会,丰富自己的经历。优秀作品将会上线。来证明一下自己吧~~
比赛结果公示: http://blog.acmicpc.info/compare/result.html
本次比赛面向各界征集赞助,包括个人、学校或公司等,赞助奖金或奖品可以获得宣传机会。赞助将全额作为奖励发给获奖选手。联系方式:私信联系微博@acmicpc,站内信联系人人公共主页ACMICPC,email联系contest#acmicpc.info (#改为@)
截至2012年11月23日的赞助信息
杨哲赞助的微软亚洲研究院杯子一个
刁瑞赞助的鼠标垫一个
许超赞助的100美元(只给最好的Haskell解法,如果没有Haskell解法则保留到下一次)
ACdream赞助的迅雷VIP季度激活码一个
王亚晖赞助的Moleskine的本子一个(只给成绩最好的妹子)
刘骥赞助的《黑客与画家》一本;为最好的C#程序赞助的《CLR via C#》中文第三版一本,原作者亲笔签名!
此结果由一篇博文所提供的思路计算而得。该博文所提供的方法不是一个完美的方法,计算结果并不完全准确(大约80%+正确,尚未仔细统计),建议不要将此参考结果用于训练。提供参考结果的目的是和自己的算法结果进行比较,这样只需人工检查自己与参考结果不相同的博文来判断是否优于参考结果,从而以较小的工作量判断自己的算法是否更好。但请留意避免过拟合。
下载页面:http://pan.baidu.com/share/link?shareid=292167&uk=553925021
该文本文件共5000行,每行一个数字为1,2或3中的某一个,为本题目要求的返回值。
竞赛题目
ACMer博客的定制化分类器
比赛内容
blog.acmicpc.info 是收集ACMer博客的网站。实时获取最新博客,便于学习。但是其中含有很多博文并不应该被放入网站中。我们需要对它们进行识别。请写一个接口,接受两个参数:标题和文章摘要,然后返回文章类型。
数据集
我们将提供 blog.acmicpc.info 收集到的真实数据集,包括每条博客的题目和摘要。
我们会提供5000条数据的下载文件,用于您在本地分析,如果您觉得有必要,也可以自己搜集数据测试,并不必须使用我们提供的数据。
数据集下载页面:http://pan.baidu.com/share/link?shareid=112547&uk=553925021
解压缩后包含两个文件夹:title和summary,每个文件夹下有0至4999为文件名的文件,分别代表5000个文章的题目和摘要,按照文件名对应。
注意编码都是UTF-8,如不了解文件编码请自行学习。
比赛代码限制
接受的语言包括C, C++, Java, PHP等。其他语言也可以,也可以使用多语言组合,但是不要太冷门,最好容易移植到其他语言。某些语言有特殊奖励,参见赞助信息。
提交代码要求和一般Online Judge相同,不能使用网络通信、写文件等违规操作,不能使用第三方类库,可以适量使用网上公开的、没有版权问题的代码。
允许加载一个或者多个数据文件。比如您可以自己制作一个词库。需要加载的数据文件需要一并提交。数据文件总大小不能超过32MB
对一篇文章运行一次判定需要在1秒钟之内完成,测试机器为普通配置的笔记本。运行环境为Linux,运行时占用内存不超过32MB
程序源代码中不要放大量数据。
比赛代码格式要求
您的代码中需要包含一个函数或方法名为classify,接受两个参数表示文章题目和文章摘要。返回为整型数据,只能为1,2,3三种数值,分别表示:
返回值1:是acm竞赛或者其他算法竞赛相关博客,这包括了解题报告、算法总结、算法学习、参赛经验等。
返回值2:与acm竞赛无关,但和技术学习有关,这包括了数据库技术、网络技术等。
返回值3:和技术毫无关系的普通博文。
可以根据需要定义其他函数或者类,作品中可包含多个文件。代码中可以包含主函数、主类、主方法。
最好附带一个说明文件。测试的时候我们可能会适当修改,以保证可以运行。
评测数据
我们将使用比赛结束后, blog.acmicpc.info 新收集到的若干条博客进行评测。这样保证测试集是无法事先获取的。
评测数据会被公开,因为有些数据可能介于两类博客之间,不好分析,所以公开可以避免评测的时候加入过多主观看法。
评测方式
我们将在比赛结束后,使用参赛选手提供的代码,运行所有评测数据。并公布所有运行结果。综合大家的反馈意见和我们的人工审核,决定排名。在作品符合题目要求的前提下,评奖的时候主要参考分类准确性。
提问
如果有疑问,请email联系contest#acmicpc.info (#改为@)
参赛资格
所有人都可以参加,无需报名,直接提交作品即可。
提交方式
程序、数据文件、说明文件等请压缩后发送至 contest#acmicpc.info (#改为@) 邮件标题为:真实姓名-算法控作品提交
请使用常用邮箱发送给我们,这将是比赛期间我们与您联系的唯一方式。如果压缩后仍然很大,建议加密压缩后放置在网盘等处,将链接和解压密码发送给我们。
截止时间
为了不影响大家正常学习和工作,我们设定了较长的比赛时间:截止至2013年3月15日。在此之前,您都可以提交代码给我们,我们会告知您代码在我们这里的运行情况。如果重复提交,将以最后一次提交的为准。重复提交不影响成绩。
如果有一部分人提前提交,我们有可能会公布一些在已知数据集(非最终测试集)上的测试结果,供大家参考。
奖项
优秀的程序将被移植到网站上,实际上线使用。我们将使用 @acmicpc 新浪微博为前三名发布人才推荐。
对于争议较大的情况,允许存在并列排名。
如果获得公司或者个人赞助奖金,在赞助人没有特殊要求的情况下,则大致按照5:3:2发给前三名。如有并列或其他特殊情况,则可能对比例进行调整。赞助奖品根据赞助人要求发放给优秀选手。
本站保留最终解释权。
You can follow any responses to this entry through the RSS 2.0 You can skip to the end and leave a response. Pinging is currently not allowed.
顶一个
8错。
正好最近在搞这个。。。32MB的限制太坑爹了,本来想load一个几个G的Knowledge Base来着。。。
没限制不好上线,占用资源太多的话,小成本网站撑不住。相当于只是需要个民间土方子,而不是给皇帝治病。这么有针对性的问题,应该有简易的方案解决才对。欢迎参加!
发现C#有奖品了!果断参加!
突然发现不能使用第三方类库——HTML Parser也要自己写么?
呃……本意是不希望用分词工具和机器学习软件包(本地训练参数可以用,上线的分类代码不能用)。HTML Parser倒是无所谓,比如Python语言已经自带HTMLParser模块了,不可能不让用。不过,有必要用HTML Parser?应该直接删掉标签和某些标签下的内容就好了吧?可以简单用正则替换。
之前做项目的时候,自己替换会有一些script或者css的东西容易出错,用parser靠谱一点。另外说不定树结构会有用。。。
欢迎用Haskell…
mark之
感觉用机器学习的话,还需要对训练数据手工标注啊。。。
思考一下没有标注,或者很少标注会不会也能做出点什么?毕竟问题非常特殊。
比较靠谱的应该是要带个比较大的资料库吧。。32MB筛的得多粗啊,还不如抓取的时候连tag一起抓掉算了,再加上一部分依赖用户聚一下。
对这个问题来讲,32MB我不觉得粗。我们提供的5000个文章数据下载在未压缩的情况下总大小都没有超过32MB,而这些数据已经足够有代表性了,实际上线遇到的文章数也只有数万,其中的关键词更是极其有限。这个问题并不需要做精度很高的中文分词,甚至不做分词直接去查询关键字我相信也是有可能做得很好的。总之实际问题有实际的考虑,这不是要对全网的文章做分类,而只是对ACMer博客中出现的文章做分类。另外网站所用空间都是我们自己租的,管理员暂时都是学生,所租空间配置并不高,硬盘很小,为了能够实际上线,词库越小越好。
靠谱的是先用快速分词,然后剔除stop words然后用naive bayes进行训练,这是一个典型的document classification问题,并且是有固定学习主题是ACM,是一个已经清晰定义的问题了。现在只是需要楼主一些negative sample就能做好,并不需要一个很大的关键词词库啊什么的,输出结果就是个基本的bayes网络就行。
提供的数据包括了题目所说的三种类别,但是没有标注是哪个类别,需要你自己想办法。下月我会给一个大约90%左右分类正确的计算结果以及大致思路,也是某个程序跑出来的,但是程序不提供。可以用做benchmark,和自己的计算结果做对比。
“民间土方子“。。。这词用得好
我室友说她可以赞助英库输入法贴画
好的,能模仿已有的赞助信息写一下吗?我好添加进去。
咦?你的室友是谁?……
这些都是positive sample,没有提供个negative sample集合么,还是自己把这3000个分出来?
这些不完全是positive sample,是没有标注的数据。