学习笔记(12)- chatopera的语义理解系统
参考https://github.com/chatopera/clause-py-demo
前提:安装完毕 Docker、Docker Compose 和 Python3.x
git clone https://github.com/chatopera/clause-py-demo.git
cd clause-py-demo
docker-compose pull
我使用了sudo
创新python环境,并使用
(env) xuehp@haomeiya002:~/git/clause-py-demo$
sudo pip3 install thrift
sudo pip3 install absl-py
sudo pip3 install clause
sudo pip3 install -r requirements.txt
export DOCKER_HOST=8056
sudo docker-compose up
等待,这样服务就运行起来了。
注意:
- bot.py 是一个示例程序
- 加载文件profile.json,这个文件定义了一个机器人,例如:点餐机器人
- 处理同义词,识别意图。这些在文件profile.json中已经定义。文件见后文
- 和服务端交互,继续完成以下操作:训练机器人、开始对话。如下图
- 运行bot.py失败,ConnectionResetError: [Errno 104] Connection reset by peer

profile.json文件,很重要。定义了一个机器人,意图、交互方式(说法)、槽位、槽值的抽取方式
{
"chatbotID": "bot007",
"dicts": [
{
"name": "food",
"type": "vocab",
"dictwords": [
{
"word": "汉堡",
"synonyms": "汉堡包;漢堡;漢堡包"
},
{
"word": "蕃茄酱"
}
]
},
{
"name": "phoneNumber",
"type": "regex",
"patterns": ["[1]([3-9])[0-9]{9}"]
}
],
"intents": [
{
"name": "take_out",
"description": "下外卖订单",
"slots": [
{
"name": "time",
"dictname": "@TIME",
"requires": true,
"question": "您想什么时候送到?"
},
{
"name": "loc",
"dictname": "@LOC",
"requires": true,
"question": "您希望该订单送到哪里?"
},
{
"name": "food",
"dictname": "food",
"requires": true,
"question": "您需要什么食物?"
},
{
"name": "phone",
"dictname": "phoneNumber",
"requires": true,
"question": "您的手机号是什么?"
}
],
"utters": [
{
"utterance": "我想订一份{food}"
},
{
"utterance": "我想点外卖"
},
{
"utterance": "我想点一份外卖,{time}用餐"
},
{
"utterance": "我想点一份{food},送到{loc}"
}
]
}
]
}
学习笔记(12)- chatopera的语义理解系统的更多相关文章
- SQL反模式学习笔记12 存储图片或其他多媒体大文件
目标:存储图片或其他多媒体大文件 反模式:图片存储在数据库外的文件系统中,数据库表中存储文件的对应的路径和名称. 缺点: 1.文件不支持Delete操作.使用SQL语句删除一条记录时,对应的文 ...
- springmvc学习笔记(12)-springmvc注解开发之包装类型參数绑定
springmvc学习笔记(12)-springmvc注解开发之包装类型參数绑定 标签: springmvc springmvc学习笔记12-springmvc注解开发之包装类型參数绑定 需求 实现方 ...
- matlab学习笔记12单元数组和元胞数组 cell,celldisp,iscell,isa,deal,cellfun,num2cell,size
一起来学matlab-matlab学习笔记12 12_1 单元数组和元胞数组 cell array --cell,celldisp,iscell,isa,deal,cellfun,num2cell,s ...
- Spring源码学习笔记12——总结篇,IOC,Bean的生命周期,三大扩展点
Spring源码学习笔记12--总结篇,IOC,Bean的生命周期,三大扩展点 参考了Spring 官网文档 https://docs.spring.io/spring-framework/docs/ ...
- Ext.Net学习笔记12:Ext.Net GridPanel Filter用法
Ext.Net学习笔记12:Ext.Net GridPanel Filter用法 Ext.Net GridPanel的用法在上一篇中已经介绍过,这篇笔记讲介绍Filter的用法. Filter是用来过 ...
- golang学习笔记12 beego table name `xxx` repeat register, must be unique 错误问题
golang学习笔记12 beego table name `xxx` repeat register, must be unique 错误问题 今天测试了重新建一个项目生成新的表,然后复制到旧的项目 ...
- Spring MVC 学习笔记12 —— SpringMVC+Hibernate开发(1)依赖包搭建
Spring MVC 学习笔记12 -- SpringMVC+Hibernate开发(1)依赖包搭建 用Hibernate帮助建立SpringMVC与数据库之间的联系,通过配置DAO层,Service ...
- Python3+Selenium3+webdriver学习笔记12(js操作应用:滚动条 日历 内嵌div)
#!/usr/bin/env python# -*- coding:utf-8 -*-'''Selenium3+webdriver学习笔记12(js操作应用:滚动条 日历 内嵌div)'''from ...
- 并发编程学习笔记(12)----Fork/Join框架
1. Fork/Join 的概念 Fork指的是将系统进程分成多个执行分支(线程),Join即是等待,当fork()方法创建了多个线程之后,需要等待这些分支执行完毕之后,才能得到最终的结果,因此joi ...
随机推荐
- 【Webpack】
目录 关于模块化编程 Webpack的工作方式 三个重要的概念 使用Webpack创建一个项目 正式使用Webpack 使用Webpack进行ES6的模块化编程 "本质上,Webpack是一 ...
- HttpClient的CircularRedirectException解决办法
解决方法: HttpGet httpGet = new HttpGet(" http://XXXX.XXX"); httpGet.getParams().setParameter( ...
- 6_12 油田(UVa572)<图的连通块DFS>
有一家石油公司负责探勘某块地底下的石油含量,这块地是矩行的,并且为了探勘的方便被切割为许多小块.然后使用仪器对每个小块去探勘.含有石油的小块称为一个pocket.假如两个pocket相连,则这两个po ...
- acm数论之旅(转载) -- 逆元
ACM数论之旅6---数论倒数,又称逆元(我整个人都倒了( ̄﹏ ̄)) 数论倒数,又称逆元(因为我说习惯逆元了,下面我都说逆元) 数论中的倒数是有特别的意义滴 你以为a的倒数在数论中还是1/a吗 ( ...
- Could not find result map com.youotech.tl_cons_credit_rating.entity.Result
后端报错如下: java.lang.IllegalArgumentException: Result Maps collection does not contain value for com.yo ...
- 一张linux光盘查看是哪个版本号的方法
在此查看版本号,方法如下:打开光盘,查找rpm包中的release,就是版本号.
- Travis CI Build Continuous Integration
什么是持续集成 持续集成(Continuous Integration)是经常合并小的代码更改的实践,而不是在开发周期结束时合并大的更改.目的是通过以较小的增量开发和测试来构建更健康的软件.这就是Tr ...
- tab 切换 和 BottomNavigationBar 自定义 底部导航条
BottomNavigationBar 组件 BottomNavigationBar 是底部导航条,可以让我们定义底部 Tab 切换,bottomNavigationBar是 Scaffold ...
- iframe onload事件触发两次
标准参考 关于 HTML 4.01 规范中 onload 内在事件说明:http://www.w3.org/TR/html401/interact/scripts.html#adef-onload 关 ...
- 解决linux 运行自动化脚本浏览器无法启动问题
1.前提你的驱动和版本对应无问题时,依旧报未知错误无法启动chrome 解决方法加上两行: options.addArguments("no-sandbox");options.a ...