具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本申请保护的范围。
本发明人在实现本申请的过程中发现,用户在与另一个用户进行对话时,其某句话所表达的意图往往是与其近期的一些行为相关的。例如,用户与对方说“不要了”,直接用语言模型可能无法获知其具体意图是什么。但是,若能监控到用户行为数据中该用户几分钟前刚买了商品,那么该用户的意图就很可能是取消放弃购买商品;若用户行为数据中用户今天已经收到货物,那么该用户的意图很有可能为用户需要退货。因此,在本申请实施例中,通过分析用户行为数据与对话文本,建立一套基于用户行为数据以及对话文本之上的用户意图识别系统,以此来提高用户意图识别的准确率及召回率。下面对具体的实现过程进行详细地介绍。
参见图1,本申请实施例首先提供了一种用户意图识别方法,该方法可以包括以下步骤:
S101:在第一用户与第二用户通过即时通讯工具进行对话的过程中,接收第一用户向第二用户发送的第一对话文本;
具体实现时,第一用户一般是买家用户,第二用户一般是卖家用户,第一用户在需要购买第二用户的商品对象,或者需要向第二用户询问一些问题时,都可能会与第二用户进行对话。当然,在本申请实施例中,第二用户在使用“智能机器人”的情况下,相当于是第一用户与该智能机器人在进行对话,但是,实际上该智能机器人相当于是代表第二用户的客服人员与第一用户进行对话,第一用户在对话过程中,也相当于将智能机器人作为第二用户的客户人员对待,因此,第一用户在发送对话文本时,可以称为第一用户向第二用户发送的对话文本。
其中,关于第一用户使用的即时通讯工具,一般而言,是与其当前正在使用的用户行为数据库相关联的,例如,在当前的用户行为数据库中浏览商品对象的过程中,如果需要与第二用户发起对话,则可以默认调用该即时通讯工具。其中,该即时通讯工具可以是安装在第一用户终端设备中的一个独立的应用程序,或者也可以是以网页版的形式存在,等等。
S102:根据所述第一对话文本确定待分析的目标文本内容;
在接收到第一用户发送给第二用户的对话文本之后,就可以确定需要分析的目标文本内容。具体的,可以直接将当前接收到的一条对话文本作为此次分析的内容。这里所谓的当前接收到的一条对话文本可以是第一用户在完成一次文本编辑点击“发送”或者通过快捷键等方式发送的文本内容,也即第一用户每次发送一条对话文本,就以该对话文本的内容为对象进行用户意图识别。
当然,在实际应用中,用户也可能会通过多次发送的多个短句,表达出一个完整的意图。例如,用户先发送一条文本:“我不喜欢这件衣服”,紧接着又发送了一条:“想换另一件”,此时,这两句话可以完整的表达出该用户想要换货这一意图。因此,在这样的情况下,可以结合最近几次收到的对话文本组合在一起作为目标文本内容,以分析出用户的真实意图。也就是说,所谓的“第一对话文本”可以有多条,并且各条对话文本之间的停顿时间均小于某预置的阈值。例如,某第一对话文本包括A、B、C三条,则如果A与B之间的停顿时间、以及B与C之间的停顿时间均小于某阈值(例如2s),则可以将这三条对话文本组合在一起,作为目标文本内容,进行用户意图的分析。当然,假设在收到对话文本C之后,停顿了很长时间才收到下一条对话文本D,则对话文本D可能不会作为此次分析的目标文本内容。或者,在对话文本C之后用户没有再发送其他的对话文本,则也可以不再将其他的对话文本加入到此次分析的目标文本内容中,例如,等待5s之后,如果没有收到新的对话文本,则直接将之前已经收到的、并且每次停顿时间都很短的对话文本A、B、C作为此次分析的目标文本内容。具体的,可以在收到一条对话文本之后,对接收到的下一条或者多条对话文本的时间间隔进行统计,如果时间间隔都很短,则证明用户的这几条对话文本之间的关联可能会很大,结合在一起能更完整的表达用户的意图,因此,就可以将当前接收到的对话文本以及下一条或多条对话文本组合为目标文本内容,然后对该目标文本内容进行分析。
S103:在与所述即时通讯工具关联的用户行为数据库中获取该第一用户执行的与该第二用户相关的操作行为的第一行为数据;
在确定了待分析的目标文本内容之后,就可以获取该第一用户在用户行为数据库中执行的与该第二用户相关的行为数据。其中,用户行为数据库中的行为数据包括:第一用户在交易平台中针对第二用户的商品对象发生的操作行为对应的行为数据。例如,可以包括第一用户对第二用户的商品对象发生的购物、售后等操作行为,或者浏览、评论、点击第二用户商品对象等操作行为。关于这种行为数据,可以是从服务器端保存的行为数据库中查询到。具体的,由于服务器端的行为数据库中可能保存了大量用户的数据,因此,在获取第一用户执行的与第二用户相关的行为数据时,可以首先根据第二用户的用户标识从行为数据库中读取与第二用户相关的操作行为的行为数据,也就是说,此时得到的数据都是与第二用户相关的,但是可能分别是多个买家用户执行的,因此,还可以进一步根据第一用户的用户标识,从与第二用户相关的操作行为的行为数据中读取该第一用户执行的操作行为的行为数据。
可见,在本申请实施例中,提取出的行为数据仅仅是与当前第一用户以及第二用户相关的、在用户行为数据库内的行为数据,而不是不加区分的收集海量的行为数据(例如浏览其他网站的行为数据等等),因此,分析的数据量不会非常大,但同时也可以满足分析出用户的当前意图的需求。这样,在分析的效率上可以得到保障,可以避免由于时间过长造成反应过于迟钝的现象(由于需要与第一用户进行对话,因此,如果分析的数据量过大则会造成分析意图所花费的时间过长,进而会造成第一用户的等待,影响第一用户的体验),满足即时通讯工具中对实时性的要求。
S104:结合所述第一行为数据对所述目标文本内容进行语义分析,确定用户意图识别结果。
在获取到第一用户执行的与该第二用户相关的行为数据之后,就可以结合这种行为数据对目标文本内容进行语义分析,确定用户意图识别结果。
关于具体在结合行为数据对目标文本内容进行语义分析的过程中,可以有多种方式具体的实现方式。例如,在其中一种实现方式下,可以预先建立用户意图决策模型,该模型的输入有两个维度上的特征,一个维度是目标文本内容的初步分析结果,另一个维度是行为数据的相关信息,将这两个维度上的信息输入到该决策模型之后,该决策模型即可输出用户的意图分析结果。为了便于理解,下面首先对决策模型进行介绍。
在本申请实施例中,为了通过上述方式来确定用户意图分析结果,可以包括以下两个部分:
一是用户意图识别决策器训练,二是线上实时用户意图识别决策器的运行。
决策模型可以选择一种神经网络结构模型,首先需要通过一些样本数据对该模型进行训练。训练的过程相当于已知一些对话文本的样本,也已知与这些样本相关的用户行为数据,并且已知各个对话文本在对应的用户行为数据情况下所体现出的用户意图(也即期望值);将这些已知的信息输入到一个神经网络结构模型(相当于是一个函数,训练的目的是确定出函数中常量参数的取值,以符合当前应用场景的需要)中进行迭代,并预先指定好期望误差,每一次的迭代,神经网络结构模型都可以输出一个计算结果,将该结果与期望值计算得出一个训练误差,然后与期望误差进行比较,如果大于期望误差,则说明当前的神经网络结构模型还不能准确拟合,于是对网络权限进行调整,之后再重新计算,以此类推,每次迭代之后都对网络权限进行一些调整,直到训练误差小于期望误差,则可以将调整了网络权限之后的神经网络结构模型保存为用户意图决策模型。
其中,为了使得决策模型具有更高的通用性,在模型训练过程中,对于输入的两个特征维度的数据还可以进行一些处理。首先,对于对话文本样本,可以确定出一个或者多个候选的文本主题词,例如,某对话文本样本是“我要购买这件衣服”,对应的候选的文本主题词可以有“需要购物”、“需要替别人购物”,等等。其中,在训练模型的阶段,由于文本样本的数量是有限的,因此,为对话文本样本确定文本主题词的过程可以用人工的方式来指定,或者,为了使得训练的过程也尽可能实现自动化,还可以预先建立语义主题模型,通过该语义主题模型来自动分析出各个对话文本样本对应的候选的文本主题词。
其中,语义主题模型中首先需要包含一个主题库。该主题库指语料文本与一条简要主题词的集合对,这里的语料文本一般也用户在对话过程可能会说的话,换言之,语料文本也可以是从即时通讯工具中收集到的用户之间的对话文本。主题库里面的主题词是指能扼要得表达用户意图的词或短语,例如:需要购物、不满意、询问地址、娱乐邀请等;主题库的建立可以通过自然语言的语义分析进行主题词的提取,最后通过人工的筛选和处理归类等之后录入主题库。例如,主题库结果示意如表1所示:
表1
ID |
语料文本 |
文本主题词 |
1 |
我要购买这件衣服。 |
需要购物 |
2 |
你好。 |
问候 |
3 |
可以和我一起玩游戏吗? |
邀请娱乐 |
4 |
你们的地址是什么? |
询问地址 |
5 |
这个有没有货? |
询问库存 |
6 |
我不要了。 |
否定 |
… |
… |
… |
在建立了主题库之后,在语义主题模型中还可以包含一个相似主题计算的算法,例如,该算法可以是首先将对话文本样本以及语料文本进行分词,分别得到词项向量,然后通过计算两个向量之间的距离等方式计算出两个文本之间的相似度。这样,对于任一个对话文本样本而言,为了确定出其候选的文本主题词,就可按照上述算法来进行。也就是说,对于各个对话文本样本,不需要再人工的方式为其指定文本主题词,而是可以利用上述语义主题模型自动确定出候选的文本主题词,以此来提高训练过程的效率。
另外,关于用户行为数据,在训练模型的过程中,相当于是分别为各个对话文本样本指定了相关的用户行为数据,也即用户在向某卖家用户发送对话文本样本之前,发生哪些与该卖家用户相关的行为(可能是一个或者多个)。同样,在输入到模型中进行训练之前,可以确定出各个行为数据分别对应的行为主题词。为此,对于训练过程,由于行为数据有限,因此,可以采用人工指定的方式来确定行为主题词,或者,在另一种方式下,还可以预先建立用户行为模型。在该用户行为模型中,可以包含一个用户行为库,该用户行为库指用户分别对其他用户进行过的历史行为数据库,包括与其他用户发生的交易购物行为、售后行为、浏览对方信息行为、评论行为、点击行为等等;用户行为库的建立过程,可以采集用户的历史行为然后进行统计归类排序最后录入用户历史行为数据库,得到一个用户行为模型。例如,用户行为模型的结构示意如表2所示:
表2
第一用户 |
第二用户 |
行为主题词 |
日期 |
Jack |
Tom |
发生退款 |
2013-07-27 12:13:00 |
Jack |
Tom |
发生购物 |
2013-07-13 15:38:10 |
Jack |
Tom |
浏览商品(id=xxxx) |
2013-07-13 15:11:08 |
Jack |
Lucy |
发生对话 |
2013-07-02 21:00:16 |
Jack |
Lucy |
评论照片 |
2013-07-02 20:55:45 |
Jack |
Lucy |
浏览资料 |
2013-07-02 20:53:10 |
… |
… |
… |
… |
具体实现时,该用户行为模型中可以保存有操作类型与行为主题词之间的对应关系,这种操作行为的类型包括用户行为数据库中包含的各种行为数据分别所属的类型,这样,对于训练样本中的各个行为数据,就可以与该用户行为模型中的各种行为类型进行比对,得到对应的行为主题词。
总之,对于训练样本而言,对话文本样本可以转换为一个或多个文本主题词,行为数据可以转换为对应的行为主题词,因此,每一条训练样本可以有一个对话文本对应的一个或多个文本主题词,以及该对话文本对应的一个或多个行为数据转换得到的行为主题词组成的向量来表示。例如,某对话文本样本为文本1,其对应的文本主题词有文本主题词A、文本主题词B;该对话文本对应的行为数据转换成的行为主题词有行为主题词C、行为主题词D、行为主题词E,该样本对应的用户真实意图是F,于是,输入到神经网络结构中进行训练的一条样本数据就可以是<文本主题词A,文本主题词B;行为主题词C,行为主题词D,行为主题词E>,期望值是F。
总之,通过多个样本的多次迭代训练,就可以得到最终的用户意图决策模型。例如,参见图2,训练的过程可以包括以下步骤:
S201:准备样本数据以及对应的期望值,设置最大迭代次数MAX_C,迭代计数器d=0,训练误差e,期望误差E,同时建立三层网络结构的神经网络NNs;
准备的过程如前文所述。
S202:输入N个样本数据以及对应的期望输出;
S203:计算网络的训练误差e;
S204:判断e是否小于E,如果是,则跳转到S208,否则进入步骤S205:
S205:调整网络权限;
S206:d=d+1;
S207:判断d是否大于等于MAX_C,如果是,则跳转到S208,否则跳转到S202;
S208:结束网络训练并保存NNs。
在训练得到用户意图决策模型之后,就可以用于在线预测用户意图。在具体预测用户意图时,同样可以首先利用预先建立的语义主题模型对该目标文本内容进行分析,得到候选的文本主题词,并利用预先建立的用户行为模型对所述行为数据进行分析,得到候选的行为主题词,然后就可以将候选的文本主题词以及候选的行为主题词输入到前文建立的用户意图决策模型进行分析,确定用户意图分析结果。这里获得候选的文本主题词以及行为主题词的过程,与前述训练模型过程中,从对话文本样本中获取候选的文本主题词,从行为数据中获取行为主题词的过程是可以是相同的。也就是说,在本申请实施例中,从目标文本内容中识别出文本主题词之后,相当于仅仅是给最终的决策提供了一个方面的信息,另一方面还需要从相关的行为数据中识别出行为主题词,最终的决策中需要结合两个方面的数据共同决策识别出用户意图。
例如,在一个实际应用的例子中,具体的预测过程可以如图3所示,包括以下步骤:
S301:接收第一用户向第二用户发送的第一对话文本;
S302:根据所述第一对话文本确定待分析的目标文本内容;
S303:在与所述即时通讯工具关联的用户行为数据库中获取该第一用户执行的与该第二用户相关的第一行为数据;
这里获取的第一行为数据可以是该第一用户执行的与该第二用户相关的多条第一行为数据,也即结合第一用户的多个行为,综合判断当前发送该对话文本的意图。其中,该多条第一行为数据可以包括预置时间段内执行的与该第二用户相关的全部行为数据,以及该预置时间段之前执行的与该第二用户相关的部分行为数据。换言之,该多条行为数据可以包括历史行为数据以及当前行为数据两部分,关于“当前行为数据”可以是指收到当前对话文本前预置时间段内(例如24小时内)产生的行为数据,或者在当前对话过程中正在执行的行为数据;“历史行为数据”则是24小时以前产生的行为数据。对于当前行为数据,由于与当前的对话文本相关的可能性更大,因此,可以全部获取到,而关于历史行为数据,可以仅选择其中的部分数据(例如选择最近的两条,等等)。
S304:从预先建立的主题库的语料文本中获取与目标文本内容之间的相似度满足预置条件的一条或多条目标语料文本;
该步骤可以通过以下两个子步骤来完成:
A:对目标文本内容进行基本语义加工处理,例如进行分词,得到用户的词项向量;
例如,目标文本内容是“我想要买这个宝贝”,得到的词项向量可以是<我,想要,买,这个,宝贝>。
B:对加工完的语义词项向量通过主题库的匹配搜索,通过相似度计算算法计算得到与目标文本内容相似的一条或多条目标语料文本;
主题库中的各个语料文本同样可以分别进行分词处理,得到各自的词项向量,然后就可以将目标文本内容与各个语料文本对应的词项向量进行相似度计算,最终计算出与目标文本内容相似度比较高的一个或者多个语料文本,例如包括表1中的“我要购买这件衣服”这个语料文本的相似度很高,另外与“我想给我妈买这件衣服”这个语料文本的相似度也很高,其中,第一个语料文本对应的文本主题词是“需要购物”,第二个语料文本对应的文本主题词是“需要替别人购物”,因此,目标文本内容对应的候选的文本主题词就可以包括“需要购物”和“需要替别人购物”这样两个主题词。
S305:将所述目标语料文本对应的文本主题词确定为候选的文本主题词;
这里还可以获取该第一用户向第二用户发送的其他对话文本,然后根据对当前对话文本的上下文分析,对该步骤得到的候选的文本主题词进行进一步的筛选。
S306:利用预先建立的用户行为模型对第一用户的第一行为数据进行分析,得到候选的行为主题词;
其中,如果是提取了多条行为数据,则相当于是结合用户的历史行为数据与当前行为数据,得到用户的多个候选的行为主题词。另外,还可以按照各个行为的发生时间先后顺序对各候选的行为主题词进行排序。
需要说明的是,该S305与前述步骤S303、S304可以是并行进行的。
S307:把S305与S306计算得到的候选文本主题词和候选行为主题词生成向量,并进行归一化,作为训练完成的用户意图识别决策器的输入;
S308:通过用户意图识别决策器计算得到用户的真正意图。
需要说明的是,在对用户意图进行分析的过程中,第一用户可能又向第二用户发送了新的对话文本,或者执行了与第二用户相关的新的操作行为,则在本申请实施例中,还可以利用新的对话文本,或者新的操作行为,对用户意图的决策结果进行更新。
例如,如果在接收到第一用户向第二用户发送的第一对话文本之后,接收到该第一用户向第二用户发送的第二对话文本,则可以根据第二对话文本以及语义主题模型,对候选的文本主题词进行更新(同样可以将第二对话文本与语义主题模型中的语料文本进行相似性比对,然后确定出对应的文本主题词),这样,可以将之前确定出的候选的行为主题词以及更新后的文本主题词输入到决策模型中,确定用户意图分析结果,从而实现对用户意图决策结果的更新。
另外,还可以实时检测该第一用户执行的与该第二用户相关的操作行为的行为数据,在检测到第二行为数据之后,可以根据第二行为数据以及行为主题模型,对候选的行为主题词进行更新(例如可能产生新的行为主题词),之后可以将之前确定出的候选的文本主题词以及更新后的行为主题词输入到决策模型中,确定用户意图分析结果,同样可以实现对用户意图决策结果的更新。
总之,在进行用户意图决策的过程中,可以根据实时发送的新的对话文本,或者实时发生的新的行为,对决策结果进行更新,从而及时确定出用户的真实意图。
最终在确定出用户的真正意图之后,获取与该识别结果对应的回复语料,然后将回复语料发送给第一用户。这样,相当于第二用户侧的“机器人”正确理解了第一用户的意图,并能够与第一用户进行对话,对于第一用户而言,在“机器人”对其意图进行了准确的识别的情况下,感觉会与真正的人在进行对话一样。但是对于第二用户而言,已经降低了其人力成本。其中,关于回复语料可以是对应于各种不同的意图预先准备好的,例如,在识别出用户有退货的意图后,回复的语料中可以包括退货的地址、注意事项等信息。
为了更好地理解本申请实施例提供的上述方案,下面通过几个具体的例子对具体的实现过程进行详细地介绍。
例一
当前对话文本:买家A对卖家B说:“老板,毛衣我不要了”。
行为数据:买家A在卖家B的店铺里面浏览型号为SII12345红色的毛衣,同时拍下该毛衣并付款;一个小时后,买家A在聊天工具中询问卖家B。
语义主题模型识别到的文本主题词:拒绝商品。
用户行为模型识别到的行为主题词:已付款商品、拍下商品订单、浏览商品。
将文本主题词与行为主题词组合成向量,输入到决策器,识别出买家A的真正意图:取消订单。
例二
当前对话文本:买家A对卖家B说:“老板,毛衣我不要了”。
行为数据:买家A在卖家B的店铺里面浏览型号为SII12345红色的毛衣,同时拍下该毛衣并付款。3天后收到衣服,物流数据显示已经签收。同时,当天下午买家A在聊天工具中询问卖家B。
语义主题模型识别到的文本主题词:拒绝商品。
用户行为模型识别到的行为主题词:已签收商品、物流到达、卖家已发货、已付款商品、拍下商品订单。
将文本主题词与行为主题词组合成向量,输入到决策器,识别出买家A的真正意图:需要退货。
对比例一与例二可见,在买家用户发送了同样一个对话文本的情况下,根据不同的行为数据可以识别出不同的用户意图,而且与用户的真实意图的吻合度比较高。
例三
当前对话文本:买家A对卖家B说:“老板,不要快递1,很慢的,给我换快递2”。
行为数据:买家A在卖家B的店铺里面浏览型号为SII12345红色的毛衣,同时拍下该毛衣并付款,A买家在聊天工具中询问B卖家。
语义主题模型识别到的文本主题词:换快递、不要快递、指定快递。
用户行为模型识别到的行为主题词:已付款商品、拍下商品订单、浏览商品。
将文本主题词与行为主题词组合成向量,输入到决策器,识别出买家A的真正意图:指定快递(而不是语义模型最接近的“换快递”)。
例四
当前对话文本:买家A对卖家B说:“老板,不要快递1,很慢的,给我换快递2”。
行为数据:买家A在卖家B的店铺里面浏览型号为SII12345红色的毛衣,同时拍下该毛衣并付款。4天后,物流数据显示物流已发,当天下午买家A在聊天工具中询问卖家B。
语义主题模型识别到的文本主题词:换快递、不要快递、指定快递。
用户行为模型识别到的行为主题词:物流途中,卖家已发货、已付款商品、拍下商品订单、浏览商品。
将文本主题词与行为主题词组合成向量,输入到决策器,识别出买家A的真正意图:换快递。
类似的,对比例三与例四可见,在买家用户发送了同样一个对话文本的情况下,根据不同的行为数据可以识别出不同的用户意图,而且与用户的真实意图的吻合度比较高。
总之,在本申请实施例中,在第一用户与第二用户对话的过程中识别第一用户的意图时,参考了该用户在用户行为数据库中执行的与该第二用户相关的行为数据,然后结合这种行为数据对文本内容进行语义分析,最终确定用户意图识别结果,这样可以使得识别的准确度及召回率得到提高。
需要说明的是,在识别出用户的意图之后具体如何进行自动回复,不属于本申请保护范围,这里也不再进行详述。
与本申请实施例提供的用户意图识别方法相对应,本申请实施例还提供了一种用户意图识别装置,参见图4,该装置可以包括:
对话文本接收单元401,用于在第一用户与第二用户通过即时通讯工具进行对话的过程中,接收第一用户向第二用户发送的第一对话文本;
目标文本内容确定单元402,用于根据所述第一对话文本确定待分析的目标文本内容;
行为数据获取单元403,用于在与所述即时通讯工具关联的用户行为数据库中获取该第一用户执行的与该第二用户相关的操作行为的第一行为数据;
用户意图识别单元404,用于结合所述第一行为数据对所述目标文本内容进行语义分析,确定用户意图识别结果。
具体实现时,所述用户意图识别单元403可以包括:
文本主题词确定单元,用于对该目标文本内容进行分析,得到候选的文本主题词;
行为主题词确定单元,用于对所述第一行为数据进行分析,得到候选的行为主题词;
分析单元,用于根据所述候选的文本主题词以及候选的行为主题词,确定用户意图分析结果。
具体实现时,还可以预先建立一决策模型,所述用户意图识别单元404可以将所述候选的文本主题词以及候选的行为主题词输入到所述决策模型中,确定用户意图分析结果;其中,可以通过以下单元建立所述决策模型:
样本数据获取单元,用于获得预置数目的对话文本样本,以及各个对话文本样本对应的用户行为数据;
主题词确定单元,用于确定各个对话文本样本对应的候选的文本主题词,以及各个用户行为数据对应的候选的行为主题词;
训练单元,用于将各个对话文本样本对应的候选的文本主题词、候选的行为主题词以及期望输出的用户意图主题词,输入到预先建立的神经网络结构中进行多次迭代,其中每次迭代过程中对神经网络结构中的网络权限进行调整;
保存单元,用于如果某次迭代之后得到的训练误差小于预置的期望误差,则结束训练过程,并保存此次调整后的神经网络结构,得到所述决策模型。
其中,还可以预先建立一语义主题模型,该模型中保存有语料文本与文本主题词之间的对应关系,其中,所述语料文本为从所述即时通讯工具中收集到的用户之间的对话文本,一个文本主题词对应一条或多条语料文本,所述文本主题词确定单元,包括:
相似度计算单元,用于从所述语义主题模型的语料文本中获取与所述目标文本内容之间的相似度满足预置条件的一条或多条目标语料文本;
文本主题词确定单元,用于将所述目标语料文本对应的文本主题词确定为候选的文本主题词。
为了使得识别的结果可以实时的更新,该装置还可以包括:
新对话接收单元,用于在接收到第一用户向第二用户发送的第一对话文本之后,接收该第一用户向第二用户发送的第二对话文本;
文本主题词更新单元,用于根据所述第二对话文本以及所述语义主题模型,对所述候选的文本主题词进行更新;
所述用户意图识别单元404具体可以用于:
将所述候选的行为主题词以及更新后的文本主题词输入到所述决策模型中,确定用户意图分析结果。
另外,还可以预先建立一用户行为模型,所述用户行为模型中保存有操作行为的类型与行为主题词之间的对应关系,所述操作行为的类型包括所述用户行为数据库中包含的各种行为数据分别所属的类型;所述行为主题词确定单元包括:
类型信息获取单元,用于从所述行为数据中获取操作行为的类型信息;
确定单元,用于根据所述用户行为模型中保存的对应关系,确定该行为数据对应的行为主题词。
另外,同样为了可以实时更新用户意图决策结果,该系统还可以包括:
行为检测单元,用于实时检测该第一用户执行的与该第二用户相关的操作行为的行为数据;
行为主题词更新单元,用于检测到第二行为数据之后,根据所述第二行为数据以及所述行为主题模型,对所述候选的行为主题词进行更新;
所述用户意图识别单元404具体可以用于:
将所述候选的文本主题词以及更新后的行为主题词输入到所述决策模型中,确定用户意图分析结果。
具体实现时,所述第一对话文本可以为多条,并且各条第一对话文本之间的停顿时间小于预置的阈值。这样,将停顿时间比较短的各条对话文本组合在一起作为一次分析过程的目标文本内容,有利于更准确的识别出用户的真正意图。
由于一个用户先后执行的多个行为之间往往具有一定的关联,因此,为了更准确的识别用户意图,行为数据获取单元402具体可以用于:
获取该第一用户执行的与该第二用户相关的操作行为的多条第一行为数据;所述多条第一行为数据包括预置时间段内执行的与该第二用户相关的全部行为数据,以及该预置时间段之前执行的与该第二用户相关的部分行为数据。
另外,为了体现出行为执行的先后对用户意图识别影响程度的不同,该装置还可以包括:
排序单元,用于根据所述候选的文本主题词以及候选的行为主题词,确定用户意图分析结果之前,可以先按照行为的发生时间先后顺序对各候选的行为主题词进行排序。
另外,行为数据获取单元403具体可以包括:
查询单元,用于根据第二用户的用户标识从所述用户行为数据库中读取与所述第二用户相关的操作行为的行为数据;
读取单元,用于根据所述第一用户的用户标识,从与所述第二用户相关的操作行为的行为数据中读取所述第一用户执行的操作行为的行为数据。
所述与该第二用户相关的操作行为的行为数据包括:
第一用户在交易平台中针对第二用户的商品对象发生的操作行为对应的行为数据。
此外,该装置还可以包括:
回复语料获取单元,用于根据确定出的用户意图识别结果,获取与该识别结果对应的回复语料;
回复单元,用于将所述回复语料发送给所述第一用户。
总之,通过本申请实施例,在第一用户与第二用户对话的过程中识别第一用户的意图时,参考了该用户执行的与该第二用户相关的行为数据,然后结合这种行为数据对当前对话文本进行语义分析,最终确定用户意图识别结果,这样可以使得识别的准确度及召回率得到提高。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上对本申请所提供的用户意图识别方法及装置,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本申请的限制。