rasa_nlu 如何使用 lookup_tables 进行实体提取?
How rasa_nlu using lookup_tables for entity extraction?
我正在尝试使用 rasa nlu 和 rasa core 开发聊天机器人。但我没有得到 link 如何 rasa_nlu 使用 lookup_tables 进行实体提取。我已经经历了 (http://blog.rasa.com/improving-entity-extraction/) link 但没有得到它。 lookup_table 应该如何用于提取实体?
要求:
如果要使用查找 tables,请确保:
- 你有组件 intent_entity_featurizer_regex and ner_crf in your NLU pipeline
- 您要匹配的实体具有定义明确且范围狭窄的实体
- 食品名称、公司名称、汽车品牌等实体不太可能出现在您不想匹配它们的上下文中。因此,查找 table 对他们来说是一个很好的用例。
- 像对象这样的实体(例如 "car"、"house"、"paper")出现在各种您根本不想匹配它们的上下文中。因此,使用查找 tables 甚至可能导致更糟糕的结果。
在你的训练数据中
为了使用 look up tables,您可以直接在训练数据中定义它们,例如:
## intent:check_balance
- what is my balance <!-- no entity -->
- Could I pay in [yen](currency)? <!-- entity matched by lookup table -->
## lookup:currency <!-- lookup table list -->
- Yen
- USD
- Euro
或者您可以将它们写在文本文件中:
Yen
USD
Euro
然后在训练数据中包含文本文件的路径:
## intent:check_balance
... like before
## lookup:food
<path to your look up table text file>.txt
输入 我可以用欧元支付吗?,然后 Rasa NLU 将插槽 currency
的值设置为 Euro
。
它们是如何工作的
查找中的单个项目 table 被添加到正则表达式 (regex) 中,该正则表达式应用于您的用户发送给机器人的消息。但是,如果您的用户输入了拼写错误,则查找 tables 不起作用,例如查找 table 条目 Pesos
将不匹配 Peesos
。要同时匹配这些情况,您可以尝试在您链接的博客文章中描述的模糊匹配。确保您查找的 table 不会变得太大,因为 Rasa NLU 必须检查每个句子是否与您查找的 table 条目之一相匹配。
也许 Rasa NLU documentation 也能帮到你。
我正在尝试使用 rasa nlu 和 rasa core 开发聊天机器人。但我没有得到 link 如何 rasa_nlu 使用 lookup_tables 进行实体提取。我已经经历了 (http://blog.rasa.com/improving-entity-extraction/) link 但没有得到它。 lookup_table 应该如何用于提取实体?
要求:
如果要使用查找 tables,请确保:
- 你有组件 intent_entity_featurizer_regex and ner_crf in your NLU pipeline
- 您要匹配的实体具有定义明确且范围狭窄的实体
- 食品名称、公司名称、汽车品牌等实体不太可能出现在您不想匹配它们的上下文中。因此,查找 table 对他们来说是一个很好的用例。
- 像对象这样的实体(例如 "car"、"house"、"paper")出现在各种您根本不想匹配它们的上下文中。因此,使用查找 tables 甚至可能导致更糟糕的结果。
在你的训练数据中
为了使用 look up tables,您可以直接在训练数据中定义它们,例如:
## intent:check_balance
- what is my balance <!-- no entity -->
- Could I pay in [yen](currency)? <!-- entity matched by lookup table -->
## lookup:currency <!-- lookup table list -->
- Yen
- USD
- Euro
或者您可以将它们写在文本文件中:
Yen
USD
Euro
然后在训练数据中包含文本文件的路径:
## intent:check_balance
... like before
## lookup:food
<path to your look up table text file>.txt
输入 我可以用欧元支付吗?,然后 Rasa NLU 将插槽 currency
的值设置为 Euro
。
它们是如何工作的
查找中的单个项目 table 被添加到正则表达式 (regex) 中,该正则表达式应用于您的用户发送给机器人的消息。但是,如果您的用户输入了拼写错误,则查找 tables 不起作用,例如查找 table 条目 Pesos
将不匹配 Peesos
。要同时匹配这些情况,您可以尝试在您链接的博客文章中描述的模糊匹配。确保您查找的 table 不会变得太大,因为 Rasa NLU 必须检查每个句子是否与您查找的 table 条目之一相匹配。
也许 Rasa NLU documentation 也能帮到你。