如何使用RASA NLU处理复合类型的实体?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用RASA NLU处理复合类型的实体?相关的知识,希望对你有一定的参考价值。
让我说我有这句话:“我叫John James Doe”
{
"rasa_nlu_data": {
"common_examples":
[
{
"text": "My name is John James Doe",
"intent": "Introduction",
"entities": [
{
"start": 11,
"end": 25,
"value": "John James Doe",
"entity": "Name"
}
]
}
],
"regex_features" : [],
"entity_synonyms": []
}
}
这里子字符串John James Doe
是Name
类型的复合实体,具有3个简单实体(First Name
,Middle Name
,Last Name
),如下所示:
- 约翰 - 名字(简单实体)
- 詹姆斯 - 中间名(简单实体)
- Doe - 姓氏(简单实体)
那么,RASA中有没有我可以制作一种训练格式来处理这些复合类型的实体。
感谢任何帮助,谢谢。
答案
我相信如果你继续训练一个实体类型的Name,为所有名称提取一段文本,然后尝试从返回的实体文本处理单个复合部分,你会更容易。原因在于,如果您尝试训练组件,您将很快在训练数据中提供大量组合,这将无效。
还要记住,当你走得更深时,这不是一个微不足道的问题。如果您单独使用位置来确定第一个/中间/最后一个,那么您可能在日本遇到问题(https://www.sljfaq.org/afaq/names-for-people.html),如果您尝试根据内容进行训练以识别名称(即选择Doe作为姓氏),则很容易问题:美国人不知道其他人被认为是姓氏的名字(杰克逊,亨特等),中间名也有很大差异(https://en.m.wikipedia.org/wiki/Middle_name)
以上是关于如何使用RASA NLU处理复合类型的实体?的主要内容,如果未能解决你的问题,请参考以下文章