gpt4 book ai didi

ibm-cloud - 使用 IBM Conversation Service 创建意图/实体的最佳实践

转载 作者:行者123 更新时间:2023-12-02 00:39:42 25 4
gpt4 key购买 nike

我目前正在使用 IBM Conversation Service。除了官方文档中的信息或此处记录的信息之外,是否存在任何创建意图的最佳实践:https://github.com/watson-developer-cloud/text-bot#best-practices ?

我可以看看其他演示吗?我见过 IBM 的汽车仪表板和天气机器人。

问候,

凯蒂尔

最佳答案

意图

意图是对话的机器学习组件。

当您使用最终用户的代表性语言训练系统时,它们的效果最佳。代表不仅可以表示最终用户的语言,还可以表示用于捕获该问题的媒体。

重要的是要了解问题会驱动答案/意图,而不是相反。

人们经常认为你需要先定义意图。首先收集问题可以让您了解用户会问什么,并专注于您的意图采取的行动。

预定义的意图更容易产生人为的问题,您会发现并不是每个人都会问您认为他们会问的意图。因此,您可以浪费时间在不需要的领域进行培训。

制造问题

人为制造的问题并不总是坏事。它们可以方便地引导您的系统以捕获更多问题。但是在创建它们时你必须小心。

首先,您可能认为一个常见的术语或短语可能不适合普通大众。他们没有领域经验。因此,请避免使用只有在阅读 Material 后才会说的领域术语或短语。

其次,你会发现,即使你不遗余力地尝试和改变事物,你仍然会重复模式。

拿这个例子:

how do I get a credit card?
Where do I get a credit card?
I want to get a credit card, how do I go about it?
When can I have a credit card?

这里的核心术语 credit card没有变化。他们可以说 visa , master card , gold card , plastic甚至只是 card .话虽如此,意图可以非常聪明。但是在处理大量问题时,最好是变化的。

聚类

对于经过适当训练的集群,您至少需要 5 个问题。最佳值是 10。如果您收集问题而不是制造,您会发现没有足够训练的集群。只要你有一个类似这样的模式的长尾部就可以了:

example long tail graph

(水平 = 问题数,垂直 = 按大小排序的集群 ID)

如果您发现有太多独特的问题(图形 = 平线),那么意图组件并不是最擅长解决这个问题的。

聚类时要寻找的另一件事是彼此非常接近的聚类。如果您的“意图”是给出答案,您可以通过为两者制定答案并合并集群来提高性能。这可能是强制执行弱集群的好方法。

测试

一旦你把所有的东西都聚集在一起,随机删除 10%-20%(取决于问题的数量)。不要看这些问题。您将这些用作盲测。测试这些会让你对它在现实世界中的表现有一个合理的期望(假设问题不是制造出来的)。

在早期版本的 WEA 中,我们进行了所谓的实验(k 折验证)。系统会从训练中删除一个问题,然后再问回来。对于所有问题,它都会这样做。目的是测试每个集群,看看哪些集群正在影响其他集群。

NLC/Conversation 不会这样做。要做到这一点需要永远。您可以改用蒙特卡罗交叉折叠。为此,您从训练集中随机抽取 10%,对 90% 进行训练,然后对移除的 10% 进行测试。您应该这样做几次并平均结果(至少 3 次)。

结合您的盲测,它们应该彼此相对靠近。如果他们说在彼此的 5% 范围之外,那么你的训练有问题。使用蒙特卡罗结果来检查原因(不是你的盲集)。

此测试的另一个因素是信心。如果您不打算在一定的置信水平下采取行动,那么在您的测试中也使用它来查看最终用户体验将如何。

实体

目前实体非常基本,但可能会发生变化。您将在您 try catch 的内容的明确范围很窄的情况下使用实体。目前没有机器学习组件,所以它只能检测你告诉它的内容。

它还允许您传回系统可以采取行动的关键字。例如,有人可能会说“猫和狗”,但您想返回 @Weather:rain

正则表达式

确定用户意图的最后一种形式是条件部分。这也非常强大,因为您可以创建嵌套的正则表达式。例如:
input.text.matches('fish|.*?\b[0-9]{4,6}\b.*?')

如果他们在问题中只说“fish”或 4-6 位数字,则会触发此示例。

关于ibm-cloud - 使用 IBM Conversation Service 创建意图/实体的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39800476/

25 4 0