图灵测试真正检查的内容

前段时间,我建议与我的机器人Misha一起玩图灵测试 。 尝试过此方法的人都知道,机器人播放器是基本确定的。 那些没有尝试过的人可以在该文章下的第一条评论中阅读。

现在是时候安排情况汇报,谈论机器人的设备并得出结论了。



游戏规则


游戏规则已在上一篇文章中列出,我将在此处重复,以便您和我不会在链接上运行。

  1. 连接到机器人的每个参与者都可以扮演玩家回答问题或法官问这些问题的角色。
  2. 如果参与者决定担任裁判,那么机器人将为他随机选择一个玩家-在人类玩家中,或者连接一个机器人。 也就是说,在游戏中总是有一个回答者,而法官只问他一个问题。
  3. 如果参与者决定成为一名玩家,则机器人会以相似的方式寻找他与参与者裁判配对。
  4. 游戏分为5个问题。 在每个回合结束时,法官都会做出决定,他要与之交流,与人交流或与机器交流-这就是比赛的结局。 如果他不能决定,那么他可以开始下一轮比赛或放弃比赛。
  5. 机器人扮演五岁的小男孩米莎(Misha)的角色。 为了不使法官容易完成任务,建议玩家也代表Misha做出回应。


从发布到撰写本文,共玩了256场游戏(有点奇怪,但确实如此)。

其中,他们以明显的结果结束,即双方都打到下一轮结束(没人打超过一个回合),而法官决定-115场比赛

  • 机器人解决方案-74
  • 决定“人”-41

有26个错误的决定,其中:

  • 解决方案“机器人”(实际上是一个人)-15
  • 人为解决方案(实际上是机器人)-11

如您所见,人们误将机器人误认为是机器人,而不是将机器人误认为是一个人。

结果,在(74-15)/ 115 = 51%的游戏中正确识别了该机器人,并且在11/115 = 9.5%的游戏中该机器人被误认为一个人,也就是说,我们可以自信地说Misha机器人未通过测试。


相比之下, 在2012年的一项竞赛中 ,法官在150次对话中有29%以Odessa bot Zhenya Gustman为一个人,而在2014年,有300%的访谈是33%的法官。

内幕是什么


该机器人是用Python编写的,大致包括三个模块:

  • 实际上是一个带有游戏引擎的机器人
  • 机器人经理
  • 机器人

游戏的主要算法包含在Game类中,该类存储参与者ID并实现一个简单的状态机:

  • 游戏开始
  • 等待法官的提问
  • 等待玩家的回应
  • 等待法官的决定
  • 游戏结束


在状态之间的转换时,机器人将法官的问题传递给玩家,将答案从玩家传递给法官。 仅发送一条消息,并且该僵尸程序进入下一个状态,因此,如果有人尝试用两个消息进行询问或回答,他将看到该僵尸程序不允许这样做。

当机器人从机器人接收到响应时,它不会立即发送响应,但是会延迟一段时间-它没有立即显示,我根据galqiwi的评论添加了它,谢谢。

每个状态更改都会保存在SQLite数据库中,以防万一发生意外情况-电源故障,操作系统重新启动,或者仅是僵尸程序所有者(我是说)想要停止它并重做一些事情。 机器人从新开始,从数据库加载已保存的游戏,然后游戏继续。

此外,还有两条等待线-等待球员的法官和等待法官的球员。 参与者开始新游戏时,将查看相应的队列是否有伙伴。 如果不是,则将参与者排队。

机器人管理器位于单独的线程中。 他定期在等待球员的裁判队伍中寻找并为他们创建机器人的副本。 它故意延迟了时间,因此机器人不会总是有时间来拦截裁判,而人类玩家也有机会连接到游戏。 管理器可以为机器人创建各种选项,您只需要注册它们的类即可。 但是到目前为止,仅实施了一项。

最后是机器人模块。 但是,在介绍机器人内部之前,我将向您介绍其工作原理和依据。

首先,我填充了此文本文件:

T: 
T:   
Q:   ?
Q:   ?
Q:   ?
Q:   ?
Q:  ?

T: 
Q:   ?

T:  
T: 
Q:  ?
Q:   ?
Q:   ?

T:  
T: , 
Q:  ?
Q:  ?

… . — , , --. . , . pymorphy2 kmike, YARN, XML SQLite — 22 , …

:

    def normalSynonyms(self,orig):
        r = self.morph.parse(orig)
        res = []
        for parse in r:
            word = parse.normal_form
            syns = self.yarn.synonyms(word)
            for g in syns:
                words = self.yarn.words(syns[g])
                res = res + words
        return res

.

getAnswer(self, text)

, . , - , . , .

:

  1. , . , .
  2. -, , , , . .


, «» , , — , . , , — .

" , , 12000 . «-» 300 . ."

, , , . , .


, , , , , .

, , , . , , .   - , . , , .

— , , . , .

. ,   , — - - . - , . , , « » — . , , .

, , , , - . , , , .


, -:


Raspberry Pi 3. SSD, , , .

, .


, , — . , , , , , , .

, , , " ?" ( «Computing Machinery and Intelligence»)   « ». , , — , . .

:
"    ,   « »   ,     .   , ,   - .   ,   , ,  , ."

- , , , , . , .


:
"     , ,  ,   .    ."

, , . , , , , , , — « [] ?», , .

:
"2018-10-23 13:01:53,385 186 Player2Judge , ?"

— , :





, , . , , ?

. « » ? R2-D2 C-3PO « »? «A.I.»? « »? « »? - ? , , , , - .

— , ? , , .

, R2-D2 -, , .

, , — . ( « » ) , , , , , , , .

, C-3PO , , , , . - , .

. , , :

  • , ;
  • , , , .

, —   . .

, . , « ?», (1950), , . « » , .

:
"… , , , , ; , , ."

Source: https://habr.com/ru/post/zh-CN427259/


All Articles