Git Product home page Git Product logo

millionheroassistant's Introduction

万能答题助手

参考了微信跳一跳助手的思路,通过截取手机上面的题目,利用百度文字识别识别问题和答案。

运行

开启浏览器同步支持:

支持任意游戏模式:

科普性知识测试

回锅肉属于什么菜系

北京奥运会是什么时候

简洁版本:

我什么都不会勒,但是想带女友打怪升级

真有一个办法,提供了小白版本:

  • 无需下载配置复杂的工具链
  • 专人协助
  • 一键运行

小白版本是基于目前的主干分支开发的,继承了主干分支的功能,主要是使用上面的配置的东西变少了,专门提供给不太懂技术的小白,大神请使用开源代码折腾。

小白版本 目前是需要收取一定的费用,价格是19.9(万能版本),如果只玩主流的四个,价格是9.9,请走捐赠入口捐赠后联系,或者加微信也可以,微信在最下面。

由于时间的问题,没时间维护这个小白了,所以小白版本停止发售。

只有 iphone, 没有 android 手机怎么办?

简单靠谱的办法是使用模拟器。

  1. 首先还是要下载adb工具,下文有介绍
  2. 下载夜神模拟器并安装
  3. 安装完成后,打开 cmd, 检查是否有模拟器设备 adb devices
  4. 在模拟器中安装答题应用
  5. 运行答题辅助脚本python main.py,如果有问题下文有解决办法,请参照安装步骤

支持捐赠

捐赠后请给我留言,如下福利:

  • 项目结束后,整体讲解
  • 免安装版提供支持,已完成,无需任何下载
  • 无条件辅助安装包

开课了,有想要学习的可以加入圈子,长期更新

微信小程序:

芥末圈子

百度OCR

notice: 百度的注册开发者后,创建应用就可以看见自己的 key 和 secret 。

部署

  1. 从python官网安装python3.6环境
  2. pip install -r requirements.txt
  3. 创建默认的临时文件夹mkdir -p screenshots
  4. 修改默认的配置文件config.yaml,配置文件夹中可以配置临时数据目录和appcode

ADB工具配置

以 linux 为例:

  1. 下载 android-platform-tools,访问google下载,默认 mac,windows, linux 均支持
  2. 配置环境变量,进入 platform 目录下面export PATH=$(pwd):PATH配置 adb 工具到系统的 path 下面
  3. 手机打开开发者模式
  4. 使用usb连接手机后信任,adb devices来检查是否有自己的设备,确认已经连接
  5. 接下来就进入百万英雄,等待有题目的时候就运行python main.py即可

Win 打包方法

  1. 安装pyinstaller工具
pip install pyinstaller
  1. 打包
pyinstaller main.spec

打包完成后,在dist文件夹下面会有打包后的release.

Release

  • 2018/2/18: 开源pyinstaller的配置文件
  • 2018/1/23: 使用多线程,改善mac上面的卡顿问题
  • 2018/1/22: 增加数据同步设置
  • 2018/1/21: 增加问题备份,增加搜狗,增加图片放缩,加速,游戏切换,自适应
  • 2018/1/18: 增加uc辅助,另外修复统计bug
  • 2018/1/15: 增加芝士大会的支持,另外增加特别关键字
  • 2018/1/14: 新增知识库功能, 内置adb,小白版一键运行
  • 2018/1/13: 增加浏览器支持,修复部分bug
  • 2018/1/12: 更改搜索策略,自动决策,减少python依赖
  • 2018/1/11: 结巴分词预编译和多核分词优化
  • 2018/1/10: 增加ios分支,修复master文本摘要bug
  • 2018/1/9: 修复答案获取bug,增加长文本信息摘要算法,增加百度OCR
  • 2018/1/9: 使用相似度猜测答案,请切换分支使用

分支说明

  • master: 主要是 Android 手机使用,支持汉王 / 百度识别 / ocrspace
  • knearby: 根据文本关联度**,答案更加清晰,目前只支持百度识别

V2 文本关联相似度分析

对于答题这样的项目,首先一个问题,然后有三个答案可以选择,能不能通过分别统计问题与三个答案的关联度来选择出正确的答案,由于数据采集是来自百度的,可能会受到部分广告数据的影响,但是在集合相当大的情况下,关联度还是会呈现正相关。

假设题目是:

**历史上著名的科举制度开始于那个朝代?

  • 汉朝
  • 唐朝
  • 隋朝

我们先用百度分别搜索汉朝唐朝隋朝,得到如下数据:

朝代 搜索出的数量(来自百度为您找到相关结果约)
汉朝 17900000
唐朝 30500000
隋朝 16600000

然后我们在用题目 + 答案的方式,搜索示例:

**历史上著名的科举制度开始于那个朝代? 汉朝 得到三次的搜索结果:

关键字 搜索出的数量(来自百度为您找到相关结果约)
Q + 汉朝 602000
Q + 唐朝 837000
Q + 隋朝 658000

关联度计算方式:

K = count(Q&A) / (count(Q) * count(A))

关联度如下:

答案 关联度
汉朝 0.0336
唐朝 0.0274
隋朝 0.0396

贡献者(不分先后)

参考项目

millionheroassistant's People

Contributors

dong-fang avatar lonelam avatar luyiming avatar sjm1992st avatar smileboywtu avatar snownee avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

millionheroassistant's Issues

怎么禁止模拟器连接adb?

每次一开模拟器,手机adb就掉了,要重复连,我只想用模拟器答题,而手机连接电脑运行答题程序

出现substring not found

有时候, 我看题目和选项都识别正常, 但是没有分析结果,提示substring not found. 这个问题主要是因为什么, 由于没有录屏,所以无法重现,抱歉.

获取出来的问题是乱码

win7,cmd 和 powershell 用过了,交互式正常,但是获取图片的问题和答案是乱码。请问怎么解决。

对于冲顶的适配还是有点问题啊,提几个建议~

1.有时会把评论第一行也识别到选项里了,冲顶所有题都是3个选项,可以按识别选项数目判断,达到3个就过滤其他的识别内容;
screenshot0114_131033
这个识别出来是:

`------------------------------------------------------------------------
SWOT分析法中,"S"是什么意优势劣势机会阿拉玉→19680363

7.SWOT分析法中,"S"是什么意
优势
劣势
机会
阿拉玉→19680363
+----------------------------+------+
| 选项 | 同比 |
+----------------------------+------+
| 机会 | 16 |
| 优势 | 12 |
| 劣势 | 11 |
| 阿拉玉→19680363 | 6 |
| 7.SWOT分析法中,"S"是什么意 | 0 |
+----------------------------+------+


肯定回答(**): 机会
否定回答( ): 7.SWOT分析法中,"S"是什么意


use 3.4445133209228516 秒
欢迎下次使用`

2.搜索能不能去掉题号?题号的数字对搜索结果还是有影响的…

3.为什么我在chrome_search文件里的browser.get("http://www.baidu.com") 改为google,能打开google,但一识别问题chrome就退出了?如果我想默认调用google搜索,我该怎么设置?分词搜索推荐答案是用的百度知道吧,我想结合百度和google的结果综合判断。。

你好作者

我是一个python的初学者,我在学习你的代码过程中,并没有发现你在当中用到你readme里所说的V2 文本关联相似度分析的算法。而是看到你直接在搜索的结果当中,用了答案匹配出来的同比列表,是不是这样的呢 感谢作者答疑解惑 🙏

缺少keyboard模块

Traceback (most recent call last):
File "main.py", line 15, in
import keyboard
ModuleNotFoundError: No module named 'keyboard'

还有一个问题

西瓜视频已经有了官方外挂搜狗搜索了。。。
建议把重点转移到百万赢家or冲顶大会or芝士超人

numpy缺失问题

环境win 7,requirements.txt中所有组件已经按照要求安装(确定已安装numpy),adb安装并调试通过。运行结果如下:

E:\milion\MillionHeroAssistant-master>python main.py
capture time: 09:58:47
/sdcard/screenshot.png: 1 file pulled. 27.8 MB/s (814862 bytes in 0.028s)
screen width: 1080, screen height: 1920
guess keyword: 2.“读书破万卷”的下一句是什么?

Traceback (most recent call last):
File "main.py", line 91, in
main()
File "main.py", line 77, in main
sentences = get_summary(text, summary_sentence_count)
File "E:\milion\MillionHeroAssistant-master\core\textsummary.py", line 27, in
get_summary
return [str(sentence) for sentence in summarizer(parser.document, sentences)
]
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python36-32\lib\sit
e-packages\sumy\summarizers\lsa.py", line 36, in call
self._ensure_dependecies_installed()
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python36-32\lib\sit
e-packages\sumy\summarizers\lsa.py", line 53, in _ensure_dependecies_installed
raise ValueError("LSA summarizer requires NumPy. Please, install it by comma
nd 'pip install numpy'.")
ValueError: LSA summarizer requires NumPy. Please, install it by command 'pip in
stall numpy'.

E:\milion\MillionHeroAssistant-master>

调用浏览器出错

必须要满足指定版本的浏览器才能调用?

`D:\搜狗高速下载\MillionHeroAssistant-master0113\MillionHeroAssistant-master>python main.py

请在答题开始前就运行程序,
答题开始的时候按Enter预测答案

按Enter键开始,按ESC键退出...
capture time: 14:25:12
6308 KB/s (586698 bytes in 0.090s)
screen width: 1080, screen height: 1920

浏览器加载失败
Message: session not created exception: Chrome version must be >= 62.0.3202.0
(Driver info: chromedriver=2.35.528161 (5b82f2d2aae0ca24b877009200ced9065a772e73),platform=Windows NT 10.0.10586 x86_64)

Process Process-1:
Traceback (most recent call last):
File "D:\Program Files\Python36\lib\multiprocessing\process.py", line 258, in _bootstrap
self.run()
File "D:\Program Files\Python36\lib\multiprocessing\process.py", line 93, in run
self._target(*self._args, **self._kwargs)
File "D:\搜狗高速下载\MillionHeroAssistant-master0113\MillionHeroAssistant-master\core\chrome_search.py", line 61, in run_browser
browser.quit()
UnboundLocalError: local variable 'browser' referenced before assignment

5动漫形象“史努比”出自于漫画?

《花生漫画》
《狗狗漫画》
《史努比》
微信用户58656213697750复活码3697750复活码
3697750复活码3697750复码3697750复活码
substring not found
欢迎下次使用

请在答题开始前就运行程序,
答题开始的时候按Enter预测答案

按Enter键开始,按ESC键退出...`

Max retries exceeded with url

requests.exceptions.ConnectionError: HTTPConnectionPool(host='localhost', port=8100): Max retries exceeded with url: /screenshot (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x10b4954e0>: Failed to establish a new connection: [Errno 61] Connection refused',))

Process finished with exit code 1

针对最新出题方法的一个思路

现在很多题都是多重逻辑,直接搜索题干参考意义不大,反而直接给出每个选项的搜索结果显得更有意义,能否设置不同按键给出不同搜索结果?谢谢!

No module named 'yaml'

"config.py", line 4, in <module>
    import yaml
ModuleNotFoundError: No module named 'yaml'

按照网上的方法安装了模块也没有解决,requirements都安装了,老版本代码没有引入yaml所以没问题。。。请问这怎么解决啊

有时候没有截上屏会报错

capture time: 16:23:19
adb: error: remote object '/storage/emulated/0/screenshot.png' does not exist
screen width: 1080, screen height: 1920

图像裁剪有问题

冲顶的图像裁剪有问题,左边就裁了0.534一半都没了
我稍微修改了一下,您可以看一下 分别是:0.05 0.150 0.947 0.600

提出两个改进方向

首先是免费OCR引擎,百度的免费额度只有每天500次,无法多人同时使用,汉王的则需要收费。推荐ocr.space,每个key每月有25000次调用,多用几个邮箱可以申请到多个key轮流使用。识别精准度我个人测试是没问题的,比google的tesseract强太多,tesseract的中文真的太烂了。
第二个就是ios的wda了,这个我看已经在roadmap里了貌似。
如果方向认同,我可以参与开发,谢谢。

代码手误

main.py里面46行 get_text_from_image写成了get_test_from_image,手误了吧

编码报错!

是python3的问题吗? 为啥我运行会是这样。。。(截取片段


哪一种茶不属于绿茶?

安吉白片
太平猴
老青茶
'locale' codec can't encode character '\u5e74' in position 2: Illegal byte sequence
欢迎下次使用

图片匹配好像有问题

crop_area = crop_areas[game_type] 这行代码算出来的一直都是(0,0,0,0)。需要调整什么配置吗

关于orc.space api key

今天试了下,晚上一直回车,就是没有去识别,截取正确的。可能是使用次数过多
然后用自己的百度接口
ORC的知道
有个orc.space
api key =“”” 这里是哪个,百度云没有找到这个相关的Key。这是什么

用orcspace是不是有问题

使用orcspace怎么用不了???
/sdcard/screenshot.png: 1 file pulled. 12.7 MB/s (1463645 bytes in 0.110s)
screen width: 1080, screen height: 1920
Traceback (most recent call last):
name 'get_text_from_image' is not defined
File "J:/MillionHeroAssistant-master (1)/MillionHeroAssistant-master/main.py", line 234, in main
按Enter键开始,按ESC键退出... __inner_job()
File "J:/MillionHeroAssistant-master (1)/MillionHeroAssistant-master/main.py", line 145, in __inner_job
keywords = get_text_from_image(
NameError: name 'get_text_from_image' is not defined

学习了

\u63a5\u53e3\u914d\u7f6e\u4e4b\u7c7b\u7684\u4e1c\u897f\u6253\u7801\u54e6

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.