nlp - 以相同的意图进行 Rasa 多次查找
问题描述
我一直在尝试使用 Rasa NLU 作为酒店预订聊天机器人。我正在尝试提取两个特征,房间类型和房间数量。这是我的 nlu.md 文件
## intent:greet
- hey
- hello
- hi
- good morning
- good evening
- hey there
## intent:goodbye
- bye
- goodbye
- see you around
- see you later
## intent:affirm
- yes
- indeed
- of course
- that sounds good
- correct
## intent:deny
- no
- never
- I don't think so
- don't like that
- no way
- not really
## intent: book_room
- i would like to book a room
- i want a room
- i want to book room
- i would like a room
- i want to have a room
- i want to book
- i would like to book
## intent: book_n_rooms
- [num_rooms] rooms
- I would like to book [num_rooms]
- I want [num_rooms] rooms
- I need [num_rooms] rooms
- I want to have [num_rooms] rooms
## intent: room_type
- I would like a [room_type_name] room
- Well, I want [room_type_name]
- I need [room_type_name] rooms
- I prefer [room_type_name] rooms
## book_room_all_details
- I would like a [room_type_name] [num_rooms]
- I would like [num_rooms] of [room_type_name]
- I want [num_rooms] of [room_type_name]
- I prefer [room_type_name] [num_rooms]
- I like [num_rooms] of [room_type_name]
- book [num_rooms] [room_type_name] rooms
- I would like to book [num_rooms] [room_type_name]
- I would like to book [2](num_rooms) [deluxe](room_type_name) rooms
- I would like to book [3](num_rooms) [deluxe](room_type_name) type rooms
- I want [1](num_rooms) [simple](room_type_name) room
- I want [1](num_rooms) [simple](room_type_name) type room
- I want [2](num_rooms) [simple](room_type_name) rooms
- book [3](num_rooms) [simple](room_type_name) type rooms
- book [3](num_rooms) [simple](room_type_name) rooms
- I would like [5](num_rooms) rooms [deluxe](room_type_name)
- I want [5](num_rooms) rooms [deluxe](room_type_name)
- I prefer [5](num_rooms) rooms [deluxe](room_type_name)
- I prefer [5](num_rooms) rooms [deluxe](room_type_name)
## regex:num_rooms
- [0-9]+
## lookup:room_type_name
- Simple
- Deluxe
- simple
- deluxe
- SIMPLE
- DELUXE
## intent:bot_challenge
- are you a bot?
- are you a human?
- am I talking to a bot?
- am I talking to a human?
当我输入“预订 2 间豪华客房”时,机器人问我需要多少间客房。意图被错误地分类。我尝试了这个答案RASA NLU: Multiple entity extract from Single intent,但这并没有取得成果。请帮忙。
解决方案
请注意regex
和lookup
被转换为特征。仅仅因为您在查找表中列出“DELUX”并不意味着您的助手总是将其提取为room_type
. 另请参阅 Rasa 的文档。
我猜你的助手主要是不工作,因为你的NLU数据需要更新:(1)你需要用适当的值替换[num_rooms]
和。[room_type_name]
Rasa 不会自行替换[num_rooms]
为数字。意图下列出的例子应该是正常的句子。(2)book_room_all_details
应标记为意图,否则您的助手不知道该意图。
这里更新的 NLU 数据:
## intent:book_room
- i would like to book a room
- i want a room
- i want to book room
- i would like a room
- i want to have a room
- i want to book
- i would like to book
## intent:book_n_rooms
- [4](num_rooms) rooms
- I would like to book [1](num_rooms)
- I want [2](num_rooms) rooms
- I need [3](num_rooms) rooms
- I want to have [2](num_rooms) rooms
## intent:room_type
- I would like a [deluxe](room_type_name) room
- Well, I want [simple](room_type_name)
- I need [Simple](room_type_name) rooms
- I prefer [DELUXE](room_type_name) rooms
## intent:book_room_all_details
- I would like to book [2](num_rooms) [deluxe](room_type_name) rooms
- I would like to book [3](num_rooms) [deluxe](room_type_name) type rooms
- I want [1](num_rooms) [Simple](room_type_name) room
- I want [1](num_rooms) [simple](room_type_name) type room
- I want [2](num_rooms) [SIMPLE](room_type_name) rooms
- book [3](num_rooms) [simple](room_type_name) type rooms
- book [3](num_rooms) [SIMPLE](room_type_name) rooms
- I would like [5](num_rooms) rooms [deluxe](room_type_name)
- I want [5](num_rooms) rooms [DELUXE](room_type_name)
- I prefer [5](num_rooms) rooms [Deluxe](room_type_name)
- I prefer [5](num_rooms) rooms [deluxe](room_type_name)
## regex:num_rooms
- [0-9]+
## lookup:room_type_name
- Simple
- Deluxe
- simple
- deluxe
- SIMPLE
- DELUXE
推荐阅读
- ios - 在等待属性初始化的 init 中调用函数
- database - hybris - 一对多和多对多关系
- python-3.x - 在 Python 中用可变长度的字符串和数字很好地列打印一个列表
- javascript - React Native Android:在一行中包含文本到父视图内部
- android - 在本地网络上加载 PWA 作为 Android 上的主屏幕应用程序
- javascript - JS 或 PHP 密码保护 Figma 或通用原型链接的方式?
- c# - c#Visual Studio 2017如何将json对象数组元素添加到现有json
- c++ - 在 MSVC++ 10.0 上选择模板函数实现的解决方法
- charts - Google Charts - 以当地语言显示星期几
- node.js - !HEROKU: [remote denied] master -> master (pre-receive hook denied) error: failed to push some refs