当前位置: 首页 > news >正文

智能语义识别电影机器人的rasa实现

文章目录

  • 0.前言
  • 1.项目整体框架
  • 2.rasa训练数据结构
  • 4.rasa启动命令及用到的API

0.前言

最近做了一个智能电影机器人的项目,我主要负责用户语义意图识别,用的框架是rasa,对应的版本为 3.6.15,对应的安装命令为:

pip3 install rasa==3.6.15 # 安装这个时候可能需要科学上网
pip3 install 'rasa[jieba]'
pip3 install 'rasa[transformers]'
pip3 install 'rasa[FallbackClassifier]'
pip3 install 'rasa[nlu]'

1.项目整体框架

在这里插入图片描述
用户客户端通过语音说出他想看的电影,然后通过语音转文字模块,将文字传送给rasa,rasa识别出用户的意图和相应的关键字,通过rasa的api给到java端,(java这里其实充当是rasa里面的action这个操作,其实可以用python实现。)java端通过意图和关键字在es里面查询相应的索引,这里用es做媒资库的原因,是es的模糊搜索能力比关系型数据库强,最后将搜索到的媒资供用户选择进行播放。

2.rasa训练数据结构

由两部分数据组成,意图训练数据和相应的关键词查找数据,这里没有采用相应的关键词穷举放入意图训练数据进行训练,这里的意图训练数据只是训练的语料模版,然后实际使用的时候用户说话里面的实体由另一份关键词查找数据进行填充,这里用的是rasa的RegexEntityExtractor组件。现在举例这些两份数据,如何发挥作用的。

这是一份查询视频的意图训练数据,当用户说“我要看电影赌侠”的时候,这里rasa识别到的意图(intent)为query_video,这里的两个实体(entity)为contentType和title,分别识别为电影和赌侠

version: "3.1"
nlu:
- intent: query_video
examples: |- 我要看[电影](contentType)[赌侠](title)- 播放看[电影](contentType)[赌侠](title)- 我想看[电影](contentType)[赌侠](title)

由两部分数据组成,意图训练数据和相应的关键词查找数据,这里没有采用相应的关键词穷举放入意图训练数据进行训练,这里的意图训练数据只是训练的语料模版,然后实际使用的时候用户说话里面的实体由另一份关键词查找数据进行填充,这里用的是rasa的RegexEntityExtractor组件。现在举例这些两份数据,如何发挥作用的。

这是一份查询视频的意图训练数据,当用户说“我要看电影赌侠”的时候,这里rasa识别到的意图(intent)为query_video,这里的两个实体(entity)为contentType和title,分别识别为电影和赌侠

version: "3.1"
nlu:
- intent: query_video
examples: |- 我要看[电影](contentType)[赌侠](title)- 播放看[电影](contentType)[赌侠](title)- 我想看[电影](contentType)[赌侠](title)

在这里插入图片描述如果用户说“我想看电影速度与激情”,这个数据可能不在我们的训练的意图数据中,但是rasa识别了意图为query_video,这里的两个实体(entity)为contentType为电影,title通过正则匹配为速度与激情,关键词数据的样式为

version: "3.1"
nlu:
- lookup: title
examples: |- 速度与激情8- 石头娃- 中甲精华- 畲族彩带传承人- 最美奋斗者- 唤醒巨人

在这里插入图片描述
3.rasa训练配置如下

pipeline:
name: JiebaTokenizer
name: LanguageModelFeaturizer
model_name: "bert"
model_weights: "bert-base-chinese"
name: "RegexEntityExtractor"
use_word_boundaries: False
use_lookup_tables: True
use_regexes: True
name: "DIETClassifier"
epochs: 100
tensorboard_log_directory: ./log
learning_rate: 0.001
name: "ResponseSelector"
name: "EntitySynonymMapper"
name: FallbackClassifier
threshold: 0.9
ambiguity_threshold: 0.01policies:
name: MemoizationPolicy
max_history: 1
name: TEDPolicy
max_history: 1
epochs: 10
name: RulePolicy
max_history: 1

4.rasa启动命令及用到的API

rasa run --enable-api --cors "*" --port 5506
post http://127.0.0.1:5506/conversations/usertest88/messages
{"sender":"user","text":"我想看电影速度与激情"}

如需源码,请关注微信公众号:造轮子的坦克,回复w,获取个人微信,然后私发给您。

相关文章:

智能语义识别电影机器人的rasa实现

文章目录 0.前言1.项目整体框架2.rasa训练数据结构4.rasa启动命令及用到的API 0.前言 最近做了一个智能电影机器人的项目,我主要负责用户语义意图识别,用的框架是rasa,对应的版本为 3.6.15,对应的安装命令为: pip3 install rasa…...

C# 实现腾讯云 IM 常用 REST API 之会话管理

目录 关于腾讯 IM REST API 开发前准备 范例运行环境 常用会话管理API 查询账号会话总未读数 查询单聊会话消息记录 下载最近会话记录 小结 关于腾讯 IM REST API REST API 是腾讯即时通信 IM 提供给服务端的一组 HTTP 后台管理接口,如消息管理、群组管理…...

MySQL之Schema与数据类型优化(三)

Schema与数据类型优化 BLOB和TEXT类型 BLOB和TEXT都是为存储很大的数据而设计的字符串数据类型,分别采用二进制和字符方式存储。 实际上它们分别属于两组不同的数据类型家族:字符类型是TINYTEXT,SMALLTEXT,TEXT,MEDIUMTEXT,LONG…...

大语言模型发展历史

大语言模型的发展历史可以追溯到自然语言处理(NLP)和机器学习早期的探索,但真正快速发展起来是在深度学习技术兴起之后。以下是大语言模型发展的一个简要历史概述: 早期阶段(20世纪50-90年代): …...

Nginx - 安全基线配置与操作指南

文章目录 概述中间件安全基线配置手册1. 概述1.1 目的1.2 适用范围 2. Nginx基线配置2.1 版本说明2.2 安装目录2.3 用户创建2.4 二进制文件权限2.5 关闭服务器标记2.6 设置 timeout2.7 设置 NGINX 缓冲区2.8 日志配置2.9 日志切割2.10 限制访问 IP2.11 限制仅允许域名访问2.12 …...

简述js的事件循环以及宏任务和微任务

前言 在JavaScript中,任务被分为同步任务和异步任务。 同步任务:这些任务在主线程上顺序执行,不会进入任务队列,而是直接在主线程上排队等待执行。每个同步任务都会阻塞后续任务的执行,直到它自身完成。常见的同步任…...

[力扣题解] 797. 所有可能的路径

题目&#xff1a;797. 所有可能的路径 思路 深度搜索 代码 // 图论哦!class Solution { private:vector<vector<int>> result;vector<int> path;// x : 当前节点void function(vector<vector<int>>& graph, int x){int i;// cout <&l…...

【QT八股文】系列之篇章3 | QT的多线程以及QThread与QObject

【QT八股文】系列之篇章3 | QT的多线程 前言4. 多线程为什么需要使用线程池线程池的基础知识python中创建线程池的方法使用threading库队列Queue来实现线程池使用threadpool模块&#xff0c;这是个python的第三方模块&#xff0c;支持python2和python3 QThread的定义QT多线程知…...

基于python flask的web服务

基本例子 from flask import Flask app Flask(__name__) app.route(/)#检查访问的网址&#xff0c;根路径走这里 def hello_world():return hello world#返回hello worldif __name__ __main__:# 绑定到指定的IP地址和端口app.run(host0.0.0.0, port1000, debugTrue)##绑定端…...

HTTP 响应分割漏洞

HTTP 响应分割漏洞 1.漏洞概述2.漏洞案例 1.漏洞概述 HTTP 响应拆分发生在以下情况&#xff1a; 数据通过不受信任的来源&#xff08;最常见的是 HTTP 请求&#xff09;进入 Web 应用程序。该数据包含在发送给 Web 用户的 HTTP 响应标头中&#xff0c;且未经过恶意字符验证。…...

Algoriddim djay Pro Ai for Mac:AI引领,混音新篇章

当AI遇上音乐&#xff0c;会碰撞出怎样的火花&#xff1f;Algoriddim djay Pro Ai for Mac给出了答案。这款专业的DJ混音软件&#xff0c;以AI为引擎&#xff0c;引领我们进入混音的新篇章。 djay Pro Ai for Mac的智能混音功能&#xff0c;让每一位DJ都能感受到前所未有的创作…...

常见算法(3)

1.Arrays 它是一个工具类&#xff0c;主要掌握的其中一个方法是srot&#xff08;数组&#xff0c;排序规则&#xff09;。 o1-o2是升序排列&#xff0c;o2-o1是降序排列。 package test02; import java.util.ArrayList; import java.util.Arrays; import java.util.Comparat…...

集中抄表电表是什么?

1.集中抄表电表&#xff1a;简述 集中抄表电表&#xff0c;又称为远程抄表系统&#xff0c;是一种现代化电力计量技术&#xff0c;为提升电力行业的经营效率和客户服务质量。它通过自动化的形式&#xff0c;取代了传统人工抄水表&#xff0c;完成了数据信息实时、精确、高效率…...

第八届能源、环境与材料科学国际学术会议(EEMS 2024)

文章目录 一、重要信息二、大会简介三、委员会四、征稿主题五、论文出版六、会议议程七、出版信息八、征稿编辑 一、重要信息 会议官网&#xff1a;http://ic-eems.com主办方&#xff1a;常州大学大会时间&#xff1a;2024年06月7-9日大会地点&#xff1a;新加坡 Holiday Inn …...

09.自注意力机制

文章目录 输入输出运行如何运行解决关联性attention score额外的Q K V Multi-head self-attentionPositional EncodingTruncated Self-attention影像处理vs CNNvs RNN图上的应用 输入 输出 运行 链接&#xff08;Attention Is All You Need&#xff09; 如何运行 解决关联性 a…...

时政|杂粮产业

政策支持 《新一轮千亿斤粮食产能提升行动方案&#xff08;2024—2030年&#xff09;》明确&#xff0c;按照“巩固提升口粮、主攻玉米大豆、兼顾薯类杂粮”的思路&#xff0c;因地制宜发展马铃薯、杂粮杂豆等品种&#xff0c;根据市场需求优产稳供。 产地发展 河北省石家庄…...

docker 安装 私有云盘 nextcloud

拉取镜像 # 拉取镜像 sudo docker pull nextcloud运行nextcloud 容器 # 内存足够可以不进行内存 --memory512m --memory-swap6g # 桥接网络 --network suixinnet --network-alias nextcloud \ sudo docker run -itd --name nextcloud --restartalways \ -p 9999:80 \ -v /m…...

第十一届蓝桥杯物联网试题(国赛)

国赛题目看着简单其实还是挺复杂的&#xff0c;所以说不能掉以轻心&#xff0c;目前遇到的问日主要有以下几点&#xff1a; 本次题主要注重的是信息交互&#xff0c;与A板通信的有电脑主机和B板&#xff0c;所以处理好这里面的交互过程很重要 国赛中避免不了会收到其他选手的…...

算法金 | Dask,一个超强的 python 库

本文来源公众号“算法金”&#xff0c;仅用于学术分享&#xff0c;侵权删&#xff0c;干货满满。 原文链接&#xff1a;Dask&#xff0c;一个超强的 python 库 1 Dask 概览 在数据科学和大数据处理的领域&#xff0c;高效处理海量数据一直是一项挑战。 为了应对这一挑战&am…...

Java 说唱歌手

Yo yo yo&#xff0c;欢迎来到Java地带&#xff0c;技术的盛宴开启&#xff0c; 从JDK到JVM&#xff0c;我们构建的是数字世界的奇迹。 Spring Boot启动&#xff0c;微服务架构轻盈起舞&#xff0c; IoC解耦依赖&#xff0c;AOP切面如丝般顺滑。 Maven管理依赖&#xff0c;Gra…...

Harpy与App Store提交:为什么审核员看不到更新提示的终极指南

Harpy与App Store提交&#xff1a;为什么审核员看不到更新提示的终极指南 【免费下载链接】Harpy Notify users when a new version of your app is available and prompt them to upgrade. 项目地址: https://gitcode.com/gh_mirrors/ha/Harpy Harpy是一个强大的iOS应用…...

Ryujinx模拟器完全指南:从基础原理到高级应用

Ryujinx模拟器完全指南&#xff1a;从基础原理到高级应用 【免费下载链接】Ryujinx 用 C# 编写的实验性 Nintendo Switch 模拟器 项目地址: https://gitcode.com/GitHub_Trending/ry/Ryujinx 一、核心认知&#xff1a;模拟器技术解析与平台适配 模拟器工作机制&#xf…...

3个智能革新让黑苹果配置效率提升90%:OpCore-Simplify自动化EFI生成解决方案

3个智能革新让黑苹果配置效率提升90%&#xff1a;OpCore-Simplify自动化EFI生成解决方案 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 黑苹果&#…...

网络自动重连工具:告别频繁断网烦恼的终极解决方案

网络自动重连工具&#xff1a;告别频繁断网烦恼的终极解决方案 【免费下载链接】BIT-srun-login-script 北京理工大学深澜校园网登录脚本&#xff0c;以实现命令行登录或者断线重连等&#xff0c;仅提供登录功能 项目地址: https://gitcode.com/gh_mirrors/bi/BIT-srun-login…...

突破限制!无需模拟器的3种Windows APK安装方案

突破限制&#xff01;无需模拟器的3种Windows APK安装方案 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer Windows APK安装一直是跨平台应用的痛点&#xff0c;传统模拟…...

Java的运行时数据区

Java虚拟机在执行Java程序时会把它所管辖的内存划分为若干个区域&#xff0c;这些区域各有用途&#xff0c;生命周期也各自不同。1、程序计数器。是每条线程都有的一小块私有区域。在程序执行时&#xff0c;一个CPU内核内只能有一条线程执行&#xff0c;不会有多条线程并行执行…...

Human3.6M数据集获取与预处理实战指南:从百度网盘到可用的.pkl文件

1. Human3.6M数据集简介与下载准备 Human3.6M是目前人体姿态估计领域最权威的基准数据集之一&#xff0c;包含11名专业演员在17种日常活动场景下的360万帧动作捕捉数据。我第一次接触这个数据集时&#xff0c;面对近50GB的原始文件和复杂的目录结构也一头雾水。这里分享从下载到…...

如何快速生成自己的数字人?亲测指南

数字人已成为短视频营销、跨境电商等领域的新工具&#xff0c;如何快速生成自己的数字人&#xff1f;本文结合亲测经验&#xff0c;分享实用方法。 一、数字人生成的核心步骤&#xff08;3步搞定&#xff09; 生成数字人无需复杂技术&#xff0c;只需三步即可完成。首先&#x…...

【声音克隆】Qwen3-TTS-12Hz-1.7B-Base零基础部署教程:5分钟搞定10国语言语音合成

Qwen3-TTS-12Hz-1.7B-Base零基础部署教程&#xff1a;5分钟搞定10国语言语音合成 声音克隆技术迎来重大突破&#xff01;Qwen3-TTS-12Hz-1.7B-Base作为新一代语音合成模型&#xff0c;支持中文、英文、日文等10种主要语言和多种方言风格。本文将带你从零开始&#xff0c;只需5…...

4.2-4.4

这期准备iic驱动上一期已经准备好了设备树&#xff0c;iic的驱动代码分为 I2C 适配器驱动和 I2C 设备驱动&#xff0c;一般iic适配器驱动由soc厂商去写iic设备树追加&#xff1a;1 &i2c4 { 2 status "okay"; 3 pinctrl-0 <&i2c4m1_xfer…...