三九宝宝网宝宝百科宝宝知识

python能写微软小冰么

02月22日 编辑 39baobao.com

[微软资格认证考试:微软新认证提前看之微软认证技能专家]E-learning课程5160、5161中文版课程将在2006年年底结束工作Exam 70-536使用Microsoft . Framework 应用程序开发基础课程2541、课程2542中文版课程将在2006年年底结...+阅读

聊天机器人已经有了很多很好的实现,比如图灵机器人、微软小冰都非常的智能而且语气都与人类相似。但这并不是一件一劳永逸的事情,在特定的场景下问题的回答是有边界的或者符合特定业务场景的,所以还是需要可以按需定制开发的机器人。chatterBot项目是一个用Python实现聊天机器人的开源项目(作者:Gunther Cox,github地址),下面介绍下chatterBot的实现方式以及如何在这个项目的基础上做定制开发:chatterBot将一个机器人分为input Adapter、logic Adapter、storage Adapter、output Adapter以及Trainer模块。

input Adapter: 这个模块被设计用来获取并处理用户输入,获取输入是指自动从外部获取输入,比如从gitter room, twitter等这些都是项目自带的输入插件。处理用户输入是把获取到的输入转化为可以进行下一步处理的Statement对象。Statement对象是对用户输入的抽象,包含了输入的text,附加信息并提供了序列化,对比等方法。input Adapter被设计成为插件式的,所以在实践当中,我们可以实现自己的input Adapter,比如为每个用户打上id,这样输入就包含了用户信息,在接下来的处理中就可以根据不同用户实现不同逻辑了。

logic Adapter: 完成输入处理后就到了逻辑处理,这依然是一个插件式的设计,主进程在启动时会将用户定义的所有逻辑处理插件添加到logic context中,然后交MultiLogicAdapter进行处理,MultiLogicAdapter会依次调用每个logic Adapter,logic Adapter被调用时先执行can_process方式判断输入是否可以命中这个逻辑处理插件。比如说 "今天天气怎么样"显然需要命中天气逻辑处理插件,但时间逻辑处理插件的can_process方法则应该返回False。

在命中后logic Adapter要负责计算出对应的回答(也是包装成Statement对象)以及可信度(confidence),MultiLogicAdapter会取可信度最高的回答,并进入下一步。项目已经自带了很多logic Adapter,有close match、close meaning、时间逻辑、数学逻辑,甚至还有情感逻辑,大家可以自己探索。在实践当中,我们还是需要自己定制开发一些逻辑处理插件,如果我们希望自己的逻辑处理插件优先级始终高于自带的插件,可以提高confidence,自带的逻辑处理插件返回的confidence最大是1,只要confidence比1大就是最高优先级了。

storage Adapter: 刚才介绍logic Adapter时其实还有一点没有说明,就是大部分的逻辑处理还是基于训练集的,在处理时需要与训练集做匹配,所以这个项目将训练集的持久化也做成了插件式的,自带的持久化有文件型(json格式)、mongodb,我们也可以做自己的持久化层,比如支持redis,支持mysql。output Adapter: 这个模块就不用详细介绍了,基本与input Adapter一致,只是这里处理的是输出。

也是插件式设计,所以我们也可以定制开发,比如与腾讯等语音合成服务提供商的接口集成,我们的机器人就可以"开口说话了"。Trainer: 这个模块提供训练机器人的方法,自带的方法有两种,一种是通过输入list来训练,比如["你好","你好啊"],后者是前者的回答,另一种是通过导入Corpus格式的文件来训练。如果这两种方法都没有办法满足的话,我们还可以写自己的训练模块,但总的来说还是要将最终的训练集转换成上述两种类型。

总结: chatterBot这个项目并不是一个非常完善的聊天机器人项目(如果你希望一安装就获得一个话唠一样的机器人那就可以放弃了),总的来说自带的功能有限,但是这个项目并不简单,因为项目本身结构非常清晰,又高度插件化,所以非常适合在此基础上做定制化开发,so 动手吧。

以下为关联文档:

近期微软产品更新对微软认证考试的影响自去年年底到目前为止,微软软件产品和认证考试的变动都非常大,首先是新产品SQL Server 2005和Visual Studio 2005的发布,接连是全新的微软认证体系的出炉,在2006整个上半年都引...

python培训班哪个好在选择Python培训班的时候可以从以下几个方面出发: 一、选择口碑好的培训班 当我们开始做一件新的事情的时候,我们最先做的事情就是去打听这件事好不好,如果不好的话,我们可能会...

如何自学 Python其实python非常适合初学者入门。相比较其他不少主流编程语言,有更好的可读性,因此上手相对容易。自带的各种模块加上丰富的第三方模块,免去了很多“重复造轮子”的工作,可以更快...

Python 2和 Python 3有哪些主要区别1. print不再是语句,而是函数,比如原来是 print 'abc' 现在是 print('abc')但是 python2.6+ 可以使用 from __future__ import print_function 来实现相同功能>2. 在Python 3...

java好还是pythonjava和Python一个属于后起之秀,一个属于行业经典,对于IT技术人才来说是非常难以抉择的,而且这两种语言发展空间都是非常不错的,可以从事的岗位有很多,根据自己的实际需求来决定就...

微软小冰读心术怎么玩微软小冰读心术是什么原理读心术链接:webapps.msxiaobing.com微软小冰读心术是什么原理: 微软小冰这个通过你的回答进行推断分解,逐步缩小到猜测人名的范围,这些问题类似于决策树的分类思想,用户输入一系...

Python学习手册的目录《Python3 教程》Python3 基础语法Python3 基本数据类型Python3 解释器Python3 注释Python3 运算符Python3 数字(Number)Python3 字符串Python3 列表Python3 元组Python3 字典...

python怎么学个人也在学习中.给你点建议吧1.《Python简明教程》:这个只合适大体的了解Python的一些语法、机制等基本情况.可以快速的了解Python大体.建议第一次接触Python可以先看看这(我...

如何能写好文章当文字的形式与要表达得意境不谋而合的时候,一篇好的文章就诞生。 先说文字的形式,不外乎“字词句篇”四字。不要有错别字,用词要恰当,句子要通顺表达意思要清晰。对于篇章结构...

推荐阅读
图文推荐