Python中关于“直播答题发钱”辅助工具搜索推荐算法的讨论

最近直播火热,网上也看到很多通过“抓图 - 文字识别 - 百度搜题推荐”的程序介绍,自己也整理了一份
###########举例######################
问题:9.中国历史上,在位时间最长的皇帝是?
备选答案: [‘康熙’, ‘乾隆’, ‘刘彻’]

Answer: [‘刘彻(9.091%)’, ‘康熙(63.636%)’, ‘乾隆(27.273%)’]
#######################################
想问问大家,对搜索答案这块的算法,怎么设计,有什么高见?

先抛砖引玉,目前想到的算法:
1. 通过百度网页,请求问题,以答案选项作为关键字,数数判断(主流)
2. 对答案采用“中文分词”,针对答案可能是 xxx-yyy-zzz 无法全字匹配的情况
3. 对问题进行“中文分词“,逆向搜索,针对 “下面那些不是美国的品牌”这类问题

对于 1 已经实现,之前也有人发过存在“不”的情况处理;目前想通过 jieba 实现 2 和 3,但是总感觉这块的思考不是“很专业”,请大家吐槽
Python中关于“直播答题发钱”辅助工具搜索推荐算法的讨论


42 回复

我无法理解你的问题。

xxx 是?直接把题目拿去搜。
其他带上答案搜。

昨天有一题,大提琴有几根弦。

简单搜索(百度):我在百度页面中搜索,第一个结果就是百度知道的结果,4 根。但是给出的答案是 6 根。
搜狗搜索(搜狗):我在搜狗页面中搜索,第一个结果就是搜狗立知的结果,4 根。但是给出的答案也是 6 根。

不明白他们是怎么给出的答案。。

把问题带上选项搜,比较搜索结果数量

感觉第一种完全是看搜索引擎靠不靠普…目前来看,百度还是算了吧,换个 google 估计是不是好点?

我就在这题凉凉了

去年有部超火的日剧叫四重奏,就是四个四流音乐家追求音乐梦想的故事。我也拿这部剧当神剧,可真没注意过大提琴几根弦。

已经开始耍猴了 放弃吧 都是 5 圆场 adb 截图加分析加百度 我一共用了 5 秒 主持人念题然后显示出完整题目 2 秒 留给我的只有 3 秒 然后我还需要判断 答案的准确性,顺便浏览一下百度出的内容 再然后按下选择按钮 忙碌了半个小时最后得到 5 块钱 感觉好累啊

估计就是买了一部分题库,不然解释不了为什么百度、搜狗连大提琴有几根弦这种没有悬念的问题都能答错。

上深度学习系统吧


好像没有听说过 6 根弦的大提琴啊,是我太孤陋寡闻了吗。

看维基百科的话是巴洛克大提琴 4 根,还有一种 7 根的,6 根的是啥就不知道了

有没有这种可能性。我怀疑是简单搜索,搜狗跟这些平台有合作…直接把题库都给他们了…我写的跟你差不多,截图,ocr 分析,到网上搜结果,都要 5,6 秒左右才能出答案。而且 ocr 还不一定全能识别全。他们这个速度有点快了…

阿贝鸠尼琴

🌝其实是人工答的,做一个前端页面,然后把答案发给用户

我也觉得是人工答题 23333333

并没有可能。快是因为搜狗用的是自家搜索引擎技术,基于深度学习的开放域问答系统,并且针对答题产品做了专项优化,并不是单纯从排序好的网页里简单 pattern 匹配。百度也一样。
这也是为啥答的快,但不准。

目前目前冲顶和西瓜的题目接口都是可以抓包调用的

抓包直接拿到题目字符串,省去 ocr 时间

#14 现在最重要的原因是 答案不一定准确 这就郁闷了 还需要自己去识别 而且现在都变聪明了 大部分都是 “一下”,“下列” 这种需要分词然后结合问题关键字去搜索的 我觉得这才是重点

西瓜问题接口如何抓取。

#22 https://api-spe-ttl.ixigua.com/cdn/h/1/heartbeat/13241407?_rticket=1516257924160
heartbeat(场次)和_rticket(时间)是变量,返回 protobuf 流,用 protoc --decode_raw 可解

#16 我觉得 UC 就是人工。

玩了最新的一场,我有点感觉简单搜索是 OCR,这次有两题,选项没显示出来…

OCR 太慢,还有识别错误的风险。Android 可以通过辅助应用相关的接口来获取题目,Xpose 应该也能实现类似效果。iOS 不知道有没有开放相关接口。

#16 百度简单搜索应该是人工,AI 会第一时间给出答案,然后过了四五秒会有人工纠正

牛,不过不怎么会分析接口

问:“ xxx ”这句歌词的原唱没有唱下面的哪首歌?
A:xxx
B:xxx
c:xxx

这种要拐几个弯的问题,还不如自己答。

有合作是不可能的

iOS 的话也可以入侵 app 内部 hook 相关函数得到的,非越狱就可以实现

西瓜不是用 spe-frontier-b.snssdk.com 的 WS 接口取题目了么?我看 WS 里面出题的时候会又加扰的题目出现

#33 应该不止一个接口,我这个目前能用,调用外部 protoc 解出完整数据包,整个流程比手机上慢 1 秒

好哒~我也来试试看~~

#35 我现在试了,这个接口延迟很高

#36 答题都结束了才拿到题目

您好,西瓜我用 jython 对下载下来的 protobuf 可以解包,但 protoc --decode_raw 如何做到实时自动解包出来转换为字符呢 ,能分享下代码嘛

#38
def decode_protobuf(content):
p = subprocess.Popen(‘protoc --decode_raw’, stdin=subprocess.PIPE,stdout=subprocess.PIPE)
text=p.communicate(content)[0]
return eval(“b’’’%s’’’”%text.decode(‘utf8’)).decode(‘utf8’)

大提琴那题我也碰到了,正确答案是 4 根,平台没出错啊
我用了两个手机答题,一个猜 5 根,一个猜 6 根,结果都凉了,所以印象特别深

就中文来说 还是百度靠谱 就知识点 各大搜索公司都有知识图谱

深度学习如何快速出答案?

回到顶部