我正在开发一个客户关系聊天机器人。用户可以输入问候语,inital_query或与产品相关的查询。初始查询是用户将其user_id提供给聊天机器人的时间。这样做是为了从数据库中过滤结果。
我创建了一些培训示例,以帮助聊天机器人将其他人的initial_query分类。但是问题在于,如果在训练数据中未指定user_id,则聊天机器人无法将其识别为实体。 例如
## intent:initial_query
- My name is [Karthik](name) and my user ID is [0234](UserID)
这是initial_query
的一个示例。这里指定的userId为0234。但是数据库包含更多用户,每个用户具有唯一的userId,因此我无法将所有ID添加到训练示例中。
当指定用户ID时,我应该怎么做才能使机器人理解?我在某处看到可以使用查找表。但是当我尝试使用查找表时,它仍然无法识别不属于训练示例的ID。
这是我用来在代码中尝试查找表的link。
intent_entity_featurizer_regex对我似乎不起作用。我被困在这里,因为这是机器人的关键部分。如果查找表不是解决此问题的最佳方法,那么我也欢迎其他想法。
谢谢
答案 0 :(得分:1)
我会因为总是对你说Need more training data而陷入困境,但我想在这里也能起到一定作用。
我相信您可以采取一些行动:
如果您将new_crf
与Rasa一起使用,则必须意识到它实际上是在学习发声模式,并根据该实体周围的内容而不是实际值来识别实体。
您也可以在Rasa中使用正则表达式,但是正则表达式功能化器不仅是查找工具。无论令牌是否匹配该模式,都会向CRF添加标志。鉴于此,它仍然需要足够的训练数据来学习该令牌对于该实体很重要。