程序员告诉你如何用技术手段玩转冲顶大会

2018 年 1 月 12 日 CSDN 杨光

点击上方“CSDN”,选择“置顶公众号”

关键时刻,第一时间送达!

作者简介:杨光,CSDN 博客专家,中科院软件所研发工程师,曾参与网易热、网易花田的研发工作,擅长移动应用开发,平时喜欢弹琴,也经常在博客中写一些技术文章,欢迎一起交流讨论。博客:http://blog.csdn.net/steveyg

声明:本文精选自 CSDN 博客,已获作者授权,内容仅供技术学习交流。

最近一两天,“直播答题”已席卷互联网。王思聪力推《冲顶大会》、周鸿祎的花椒直播上线《百万作战》、今日头条&西瓜视频推出《百万英雄》、映客在线答题《芝士超人》、一直播的《黄金十秒》……仿佛一夕之间,众多互联网直播版《开心辞典》冒了出来。

这些直播答题的题目范围涉及很广,天文地理历史科学娱乐影视音乐诗歌礼仪等,每次活动共 12 道题,也难怪王思聪会挑衅地说“觉得自己很聪明可以来试试”,反正,规则就是 10 秒中之内未答题和答错题都将被淘汰,且无法角逐当期的奖金。

虽然通过邀请好友可以获得复活次数,但是毕竟复活很宝贵,而且每轮只能复活一次,如果复活之后答错会更加可惜。那么怎么样才能够短时间内提升我们的准确率呢?

原理说明

1. 手机进入冲顶大会(或其他答题类 App);

2. 获取屏幕截图:

  • iPhone 可以通过 WDA 进行图片截取,或者通过 AirPlay/QuickTime 投影到电脑上截取,Mac 显示 iPhone 屏幕可参考教程:https://jingyan.baidu.com/article/64d05a02514064de54f73b7c.html

  • Android 可以通过 adb 截图并拉取到本地。

#adb进行截图  
adb shell screencap -p /sdcard/autojump.png  
adb pull /sdcard/autojump.png .
 

3. 通过 OCR 将题目和选项识别出来,此处使用了百度的 OCR,你也可以选用任意你喜欢的 OCR,如 tesseract-ocr 等;

4. 使用三种方法对识别出的问题进行判断。

#直接用浏览器打开问题  
def open_wabpage(question):  
   webbrowser.open('https://baidu.com/s?wd=' + question)  
#根据问题搜索结果计算每个选项出现的次数  
def words_count(question,answers):  
   print "根据词频:"  
   req = requests.get(url='http://www.baidu.com/s', params={'wd': question})  
   body = req.text  
   counts = []  
   for answer in answers:  
       num = body.count(answer)  
       counts.append(num)  
       print answer + " ---> " + str(num)  
   return counts;  
#计算问题+每个选项搜索的结果数  
def search_count(question,answers):  
   print "根据结果数量:"  
   counts = []  
   for answer in answers:  
       req = requests.get(url='http://www.baidu.com/s', params={'wd': question +"%20"+answer})  
       body = req.text  
       start = body.find(u'百度为您找到相关结果约') + 11  
       body = body[start:]  
       end = body.find(u"个")  
       num = body[:end]  
       num = num.replace(',', '')  
       counts.append(num)  
       print answer + " ---> " + str(num)  
   return counts

第一种方式是最直接的,但是打开浏览器比较耗时,而且不方便,所以将它作为优先级最低的可选操作。后两种方式能够较为准确的得出问题和每个选项之间的关联关系,综合他们的结果进行选择。

使用教程

1. 下载代码并安装 Python 2.7 环境,代码地址见文末;

2. 安装百度 ORC 库;

pip install baidu-aip

3. 在百度云(https://cloud.baidu.com/product/ocr.html)中创建一个项目,获取相应的 App ID、API Key 以及 secret_key,在 config.py 中进行替换;

4. 在 img_utils 中选择你喜欢的获取图片的方式,并且调整截图区域;

5. 在终端中运行。

python main.py

搜索相应的问题吧!

运行截图

更新

2018.01.11 冲顶大会增加了 API 直接抓题功能,几乎无需配置即可分析答案,详情见文末 GitHub。

辅助工具只能够提升准确率,对于一些很坑很怪的问题可能依然会存在一定问题,后面会不断对判断策略进行优化,也欢迎大家提出一些更优的策略。

代码地址:https://github.com/steveyg/AnswerHelper


————— 推荐阅读 —————

点击图片即可阅读

登录查看更多
1

相关内容

“花田”是网易2012年推出的新型婚恋交友平台,提倡享受恋爱、幸福结婚,服务于追求生活品质的用户。 网易花田有三个比较显著的特点:免费沟通、精准推送、社会化。 截至2013年10月底,注册用户突破200万。
【2020新书】实战R语言4,323页pdf
专知会员服务
100+阅读 · 2020年7月1日
【2020新书】从Excel中学习数据挖掘,223页pdf
专知会员服务
90+阅读 · 2020年6月28日
【2020新书】使用高级C# 提升你的编程技能,412页pdf
专知会员服务
57+阅读 · 2020年6月26日
一份简明有趣的Python学习教程,42页pdf
专知会员服务
76+阅读 · 2020年6月22日
【新书】Python数据科学食谱(Python Data Science Cookbook)
专知会员服务
114+阅读 · 2020年1月1日
【书籍】深度学习框架:PyTorch入门与实践(附代码)
专知会员服务
163+阅读 · 2019年10月28日
[综述]深度学习下的场景文本检测与识别
专知会员服务
77+阅读 · 2019年10月10日
机器学习入门的经验与建议
专知会员服务
92+阅读 · 2019年10月10日
机器学习在材料科学中的应用综述,21页pdf
专知会员服务
48+阅读 · 2019年9月24日
已删除
AI科技评论
4+阅读 · 2018年8月12日
10道题,测一测你的AI水平到底如何
七月在线实验室
8+阅读 · 2018年7月17日
Python | 爬爬爬:爬百度云,爬百度贴吧,爬爱奇艺
计算机与网络安全
3+阅读 · 2018年3月30日
Python 爬虫实践:《战狼2》豆瓣影评分析
数据库开发
5+阅读 · 2018年3月19日
百万英雄直播答题辅助系统,非OCR实现
数据挖掘入门与实战
4+阅读 · 2018年1月31日
教你用Python来玩跳一跳
七月在线实验室
6+阅读 · 2018年1月2日
别@微信团队了,我用Python给自己戴上了圣诞帽!
利用机器学习在15分钟内破解验证码!
全球人工智能
4+阅读 · 2017年12月21日
仅需15分钟,使用OpenCV+Keras轻松破解验证码
机器之心
4+阅读 · 2017年12月14日
A Survey on Bayesian Deep Learning
Arxiv
63+阅读 · 2020年7月2日
Arxiv
5+阅读 · 2020年3月26日
Deep Learning for Deepfakes Creation and Detection
Arxiv
6+阅读 · 2019年9月25日
Arxiv
22+阅读 · 2018年8月30日
Arxiv
11+阅读 · 2018年1月11日
VIP会员
相关VIP内容
【2020新书】实战R语言4,323页pdf
专知会员服务
100+阅读 · 2020年7月1日
【2020新书】从Excel中学习数据挖掘,223页pdf
专知会员服务
90+阅读 · 2020年6月28日
【2020新书】使用高级C# 提升你的编程技能,412页pdf
专知会员服务
57+阅读 · 2020年6月26日
一份简明有趣的Python学习教程,42页pdf
专知会员服务
76+阅读 · 2020年6月22日
【新书】Python数据科学食谱(Python Data Science Cookbook)
专知会员服务
114+阅读 · 2020年1月1日
【书籍】深度学习框架:PyTorch入门与实践(附代码)
专知会员服务
163+阅读 · 2019年10月28日
[综述]深度学习下的场景文本检测与识别
专知会员服务
77+阅读 · 2019年10月10日
机器学习入门的经验与建议
专知会员服务
92+阅读 · 2019年10月10日
机器学习在材料科学中的应用综述,21页pdf
专知会员服务
48+阅读 · 2019年9月24日
相关资讯
已删除
AI科技评论
4+阅读 · 2018年8月12日
10道题,测一测你的AI水平到底如何
七月在线实验室
8+阅读 · 2018年7月17日
Python | 爬爬爬:爬百度云,爬百度贴吧,爬爱奇艺
计算机与网络安全
3+阅读 · 2018年3月30日
Python 爬虫实践:《战狼2》豆瓣影评分析
数据库开发
5+阅读 · 2018年3月19日
百万英雄直播答题辅助系统,非OCR实现
数据挖掘入门与实战
4+阅读 · 2018年1月31日
教你用Python来玩跳一跳
七月在线实验室
6+阅读 · 2018年1月2日
别@微信团队了,我用Python给自己戴上了圣诞帽!
利用机器学习在15分钟内破解验证码!
全球人工智能
4+阅读 · 2017年12月21日
仅需15分钟,使用OpenCV+Keras轻松破解验证码
机器之心
4+阅读 · 2017年12月14日
Top
微信扫码咨询专知VIP会员