自动化流程开源框架BotSharp
BotSharp是一款为方便构建智能对话机器人平台而开发的开源框架,最大的特点是所有模型算法都是基于.NET Core开发实现,甚至最基本的Penn Treebank分词标准,都重新用C#实现了。在机器学习python占绝对优势的时代算是不可多得的项目。该项目涉及自然语言理解,计算机视觉和音频处理技术,旨在促进智能机器人助手在信息系统中的开发和应用。目前里面的NLP部分实现的比较多一些,比如n-gram, TF-IDF, CRF, SVM和Bayes。Chabot所需要的算法都已经有了,大家下载完源代码就可以开始搭建Chabot平台了,开箱即用的机器学习算法使.NET程序员能够更快,更轻松地开发对话式人工智能应用程序。
BotSharp的目标是帮助.NET开发者构建自己的流程自动化机器人,以自然语言对话交流的方式让电脑完成一些机械重复的劳动,并加入智能感知进去。让机器人能在声音,图像和语言方面都能与使用者沟通。项目分成几个项目,封装在不同的Dll里,有基本数据算法库,自然语言库,计算机视觉库和语音识别及合成库,最后通过即时通讯通道和使用者进行互动,像Slack和Facebook Messenger这样的可以进行富内容展现的聊天平台。
BotSharp严格按照组件原则,解耦框架中所需的每个部分。因此,您可以选择不同的UI / UX,或选择不同的NLP Tagger,或选择更高级的算法来执行命名实体识别任务。它们都是基于接口进行模块化设计的。NLP流程管道的设计让你可以随意扩充机器人的识别能力。使用了标准的Open API,可以用Swagger进行API调试。使用了Docker容器技术,运行布署都很方便。
下面是一些特性总结:
-
无需依赖任何其他机器学习算法库,集成调试更容易。
-
内置多Bot管理,轻松构建Bot即服务平台。
-
具有生命周期的上下文输入/输出管理,使圣诞流程切换更可控。
-
使用自然语言处理管道机制轻松使用扩展,并构建自己独特的机器人处理流程。
-
用C#全面实现NLP基础算法而没有历史问题。
-
直接支持来自其他bot平台的导出/导入。
-
支持不同的UI提供商,如Rasa UI和Articulate UI。
-
支持多种数据请求和响应格式,如Rasa NLU和Dialogflow。
-
与流行的社交平台集成,如Facebook Messenger,Slack和Telegram。
-
多核并行计算优化。
项目本身还在不断的迭代中,代码可以在这里下载。如果大家觉得这个项目对自己很有帮助,请记得Like一下哦,得到大家的认可是对开源项目贡献者最大的支持。也欢迎大家提出意见和建议,有Pull Request更好了。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
用Python 进行深度学习
摘要: 深度学习背后的主要原因是人工智能应该从人脑中汲取灵感。本文就用一个小例子无死角的介绍一下深度学习! 人脑模拟 深度学习背后的主要原因是人工智能应该从人脑中汲取灵感。此观点引出了“神经网络”这一术语。人脑中包含数十亿个神经元,它们之间有数万个连接。很多情况下,深度学习算法和人脑相似,因为人脑和深度学习模型都拥有大量的编译单元(神经元),这些编译单元(神经元)在独立的情况下都不太智能,但是当他们相互作用时就会变得智能。 我认为人们需要了解到深度学习正在使得很多幕后的事物变得更好。深度学习已经应用于谷歌搜索和图像搜索,你可以通过它搜索像“拥抱”这样的词语以获得相应的图像。-杰弗里·辛顿 神经元 神经网络的基本构建模块是人工神经元,它模仿了人类大脑的神经元。这些神经元是简单、强大的计算单元,拥有加权输入信号并且使用激活函数产生输出信号。这些神经元分布在神经网络的几个层中。 inputs 输入 outputs 输出 weights 权值 activation 激活 人工神经网络的工作原理是什么? 深度学习由人工神经网络构成,该网络模拟了人脑中类似的网络。当数据穿过这个人工网络时,每一层...
- 下一篇
Golang面试题解析(五)
41.执行下面的代码发生什么? package main type Param map[string]interface{} type Show struct { *Param } func main() { s := new(Show) s.Param["RMB"] = 10000 } 考点:map初始化 map需要初始化后才能使用。 编译错误:invalid operation: s.Param["RMB"] (type *Param does not support indexing) 42.执行下面的代码发生什么? package main import "fmt" type student struct { Name string } func zhoujielun(v interface{}) { switch msg := v.(type) { case *student, student: msg.Name = "qq" fmt.Print(msg) } } 考点:类型转换 msg不属于student类型,所以没有Name字段。 改为: s := v.(student)...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7安装Docker,走上虚拟化容器引擎之路
- SpringBoot2全家桶,快速入门学习开发网站教程
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Red5直播服务器,属于Java语言的直播服务器
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS关闭SELinux安全模块
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2整合Redis,开启缓存,提高访问速度
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果