我就喜欢这种讨论技术的问题2333
首先为了避免有人不知道这款游戏——这是一款打着步行模拟tag的游戏,科幻壳子,和人工智能Kaizen对话,探索整个宇宙飞船。在游戏中你需要直接和人工智能通过打字的方式交流。AI会根据之前的聊天上文,以及你们的对话做出合适的回答——虽然有可能不是很合适。
《Event[0]》看起来可能拥有最先进的AI,可以无障碍与人沟通。但事实并非如此。任何一个游戏程序员都会告诉你,游戏中的AI是一系列规则的状态机或者行为树,不可能可以和玩家真正沟通。Event [0] 也是如此,所谓的AI不过是一个创造出来的假象。那么这种技术是如何实现的呢?
通过开发者访谈,我们可以看到Kaizen的运作机制。
第一步,程序会纠正你拼错的单词。当然如果你错的太离谱,程序是不可能纠正的。
第二步,程序会浏览你的输入字符串,提取关键词,并和数据库中的tag进行比较。比如I me my mine等词可以匹配的tag是Player,passenger crew others等词匹配的是crew, place location position等词可以匹配where,经过这样的匹配和重新组合,你的语句就能被程序翻译和解读。比如你输入Where are the rest of passengers? 和 Where's my crew?,匹配到的tag组合是一样的,你也就可以得到类似的答复。
第三步,在回答数据库里根据你输入的语句标签搜寻可能的回答,并进行非关键词适当的替换,甚至还需要结合情感状态才能进行最后的输出。
同时,系统也会记录上下文。比如你在之前提到了passengers,那么你下一句话的they就会被辨识为指代了船员。在整个游戏里有1W个以上的单词和数千个标签组成的数据库。
由于游戏中的Kaizen只是一个飞船上的AI,聊天内容仅限于飞船上,所以这个数据库容量不需要多大。但是如果你想要一个能真正和人对话的人工智能,恐怕就非常难了。
Event[0]是怎么做到和NPC流畅对话?
0 条评论