前面两篇文章讲了用户意图的分割和识别,以及基于此设计的多轮对话过程。 本文继续讲自然语言处理(NLP)中实体信息的捕获及其在产品中的应用。 这也是如何构建智能客户服务系列的第三篇文章。

在线客服源码下载_在线客服系统app源码_在线客服代码

你可能想过,AI如何理解人的言语? ——当我在商场里告诉商场里的机器人我要去三楼时,它是怎么理解我的? 当我说去 NARS 时,它怎么知道 NARS 是什么以及它在哪里?

如果你想知道上面问题的答案,那么就得说说实体()。

首先,实体信息是什么意思?

它代表了关键信息,通常可以分为两种类型。 一类是与业务基本无关,可以算作一般信息的信息,如手机号码、邮箱、日期、时间等; 一个是业务相关的,基于实际场景。 定制。

你怎么理解呢? 接下来我用一个例子来说明。

01 与业务基本无关

例如,在第一个场景中,当您需要预订航班时,假设您会说:

帮我订一张明天的机票,从北京到上海,下午起飞的,给我打电话,把行程发到我的邮箱

好的,已为您找到以下符合条件的航班…

在该场景中,“明天”和“下午”是时间信息,“北京”和“上海”是位置信息,“”是手机号码。 因为这些信息可以说是常识,不随业务变化,所以一般内置到算法中进行识别并进行相应的转换。

上述场景中,AI端会先识别日期和时间,然后将“明天”转换为“2023年3月27日”,将“下午”转换为“14:00-18:00”,并然后与其他信息进行比较合并,数据终端向航空公司发起请求,然后告诉你返回的结果,这是符合条件的航班列表。

这个识别步骤听起来很简单,因为人类在语言学习的过程中已经能够有条件地反映什么是日期、什么是手机号码、什么是地点。

但对于AI来说,这些东西一开始都是同一个词,需要大量的算法来区分和提取这些信息。 这里的识别率与算法设计时语言理解的丰富程度密切相关。

例如,一开始就识别了“明天”和“昨天”,但忽略了“前一天”和“后天”的表达; 或“2023 年 2 月 2 日”最初被识别,而“2023”被忽略。 “2019年2月2日”这样的表述会直接降低识别率。 具体表现就是……智力低下的发生率增加。

在转换步骤中,有一个非常有趣的点:

当人们使用自然语言表达日期和时间等信息时,实际上并不完全符合标准逻辑。

例如,当你在晚上00点10分告诉智能助理“给明天定个闹钟”时,这里的“明天”很可能已经算作“今天”了。

当你对2023年1月的智能助手说“查看12月的账单”时,你实际上说的是2023年12月。要考虑到这些语言表达习惯,才能让智能助手“感觉像一个人”。

Siri 在这方面做得很好。 设置闹钟时,它会再次确认,“您的意思是设置今天早上8点的闹钟吗?”

02 业务相关

让我们回到第二种场景,结合业务中出现的实体。

继续举个栗子的例子,当你想买一杯奶茶,通过智能助手完成这个操作时,对话应该是这样的:

我要一杯奶茶,一点点,一大杯四季奶茶,全是糖,加一份红豆,不加冰。

好的,订单已下。

这里,“一点点”是奶茶的品牌,“四季奶绿”是奶茶产品名称,“大杯”是份量,“满糖”是含糖量……

由于它们是完全依赖于业务的表达方式,因此如果没有这个场景,这些话就没有任何意义。

比如,你在和别人聊天的时候突然说“一点点”,对方就听不懂。 它不像“北京”,北京永远是北京。

所以我说的就是这样的信息。 应根据实际场景进行定制。 也就是说,我需要告诉AI奶茶品牌是什么,奶茶产品名称是什么,份量是多少……

怎么讲呢?

一般有三种方式:字符串匹配、正则表达式、注解。

1、字符串匹配

字符串匹配,定义实体信息的集合,适用于定期出现的字段。 说起来相当晦涩,但我会通过用伪代码编写它来使其清楚(因为我不知道如何编写真正的代码)。 在购买奶茶的场景中,奶茶品牌、产品名称等实体信息的定义可以写成如下:

「奶茶品牌」=[‘一点点’、‘嘿茶’、‘乐乐茶’、‘奈雪的茶’]

“份量”= [“大杯”、“中杯”、“小杯”]

「产品名称」 = [‘四季奶绿’、‘红茶玛奇朵’、‘芝士芭蕾’]

这样,当用户说出其中一项时,AI就能知道对方在说什么。

2. 正则表达式

正则表达式定义了实体信息出现的规则,适用于有规律出现的信息。 以车牌号为例,常见的形式是省份缩写(一个汉字)+一个字母+五位数字,仍然以伪代码的形式表示,如下:

“车牌号”=[北京、上海、潞泽…江西金宇]{1}[AZ]{1}[0-9]{5}

#表示省份缩写词+一个大写字母+5个阿拉伯数字

同理,我们还可以通过这种方式定义其他常规词汇,比如设备批次号、身份证号、手机号、订单号等。

说到这里,你可能想说这两种方法根本就不是AI。 所以…我的朋友,你是对的,我也这么认为! 但方式只是方式,AI不是目的,而是要达到与人对话的最终效果。 那么我们来看看第三种非常AI的类型。

3. 注释

标注,即对表达某种含义的句子进行标注,使机器能够学习某种含义,适用于不固定或不规则的表达方式。

以笔者工作中的一个场景为例,有车贷或房贷的用户经常会来询问自己还清了多少钱,还剩下多少钱。 然后我整理了一些出现过的表述,如下:

我还清了多少钱?

我已经还清了多少贷款

我还清了多少贷款?

偿还了多少贷款?

我还清了多少钱?

我的贷款已还清多少?

我需要偿还多少钱?

还剩多少贷款需要偿还?

您需要支付多少贷款?

我需要付多少钱

显然,这些表达式既没有使用固定的名词,也没有明确的规则,可以写成正则表达式。 但从语义上可以清楚地看出用户在问什么,所以这里以注释的形式标注了含义。

我们定义已经还了多少钱的概念=“已还”,还剩下多少钱的概念=“剩余”,括号里就是标记的位置:

我还了多少钱? –“实体”=“返回”

我还清了[多少贷款]? –“实体”=“返回”

[我还清了多少]贷款? –“实体”=“返回”

[已偿还多少贷款]? –“实体”=“返回”

我已经【还了多少钱】? –“实体”=“返回”

[我的贷款已还清多少] – “实体”=“已还清”

我需要偿还多少钱? –“实体”=“剩余”

还款[还剩多少贷款需要偿还]? –“实体”=“剩余”

还款[需要偿还多少贷款]? –“实体”=“剩余”

[我还需要支付多少] – “实体”=“剩余”

在完成大量上述类型的标注后,当用户再次提出同样的问题时,AI很可能能够识别出相应的实体信息,然后对话就可以“像一个人一样”继续下去。

在实际落地场景中,提取方法并不是唯一的,也不一定是固定的。 具体采用什么方法来实现需求,取决于PM对技术方法的理解和对业务背景的熟悉程度。 归根结底,一切还是为了用户的需求服务。

好了,今天的内容就到这里啦~下一个话题是如何让AI变得更加像人——伪装智能。 感谢您的观看!

好了,今天的主题就讲到这里吧,不管如何,能帮到你我就很开心了,如果您觉得这篇文章写得不错,欢迎点赞和分享给身边的朋友。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注