在对话交互系统中推断搜索输入中的用户意图的方法和系统转让专利

申请号 : CN201710825932.3

文献号 : CN107633042A

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : R·巴尔维M·阿拉瓦穆丹S·万卡塔拉曼G·威林格

申请人 : 韦韦欧股份有限公司

摘要 :

本发明公开涉及在对话交互系统中推断搜索输入中的用户意图的方法和系统。公开了在对话交互系统中推断搜索输入中的用户意图的方法。推断搜索输入中的用户意图的方法包括提供描述用户偏好的用户偏好签名、从用户接收要被用户用于识别至少一个期望的项的搜索输入,并且确定搜索输入的一部分包含歧义标识符。该歧义标识符要被用户用于至少部分地识别期望的项。该方法还包括基于搜索输入的部分与由用户偏好签名描述的用户偏好匹配而推断歧义标识符的含义并且基于将搜索输入及所推断的歧义标识符的含义与和内容项相关联的元数据的比较而从一组内容项中选择项。

权利要求 :

1.一种基于解决搜索输入的歧义部分来推断搜索输入中的用户意图的方法,所述方法包括:提供对一组内容项的访问,每个内容项都与描述相应内容项的元数据相关联,与内容项相关联的元数据包括与内容项相关联的实体之间的关系的映射;

接收来自用户的搜索输入,用户意图将搜索输入用来识别至少一个期望的内容项,其中所述搜索输入包括:包含至少一个指定实体的第一部分,和

包含对与所述至少一个期望的内容项有关的至少一个未指定实体的引用的第二部分,其中第二部分中的至少一个未指定实体不同于第一部分中的至少一个指定实体;

在没有进一步用户输入的情况下:

基于所述至少一个指定实体以及实体之间的关系的映射,推断所述第二部分中的至少一个未指定实体的可能含义;

基于所述至少一个未指定实体的所推断的可能含义、所述至少一个指定实体、和与所述一组内容项中的内容项相关联的元数据,从所述一组内容项中选择至少一个共同内容项,其中所述至少一个共同内容项与至少一个指定实体和关系的映射中的至少一个未指定实体中的每一个有关;以及响应于从用户接收到的搜索输入,向用户呈现所选择的至少一个共同内容项。

2.如权利要求1所述的方法,还包括提供用户偏好签名,所述用户偏好签名描述用户对(i)特定的内容项和(ii)与内容项相关联的元数据中至少一个的偏好,其中推断所述至少一个未指定实体的可能含义还基于搜索输入的部分与由用户偏好签名描述的用户偏好的比较。

3.如权利要求1所述的方法,还包括:

提供用户偏好签名,所述用户偏好签名描述用户对(i)特定的内容项和(ii)与内容项相关联的元数据中至少一个的偏好;及基于由用户偏好签名描述的用户偏好预订所述至少一个共同内容项。

4.一种基于解决搜索输入的歧义部分来推断搜索输入中的用户意图的系统,包括:一个或多个处理器,被配置为:

提供对一组内容项的访问,每个内容项都与描述相应内容项的元数据相关联,与内容项相关联的元数据包括与内容项相关联的实体之间的关系的映射;

接收来自用户的搜索输入,用户意图将搜索输入用来识别至少一个期望的内容项,其中所述搜索输入包括:包含至少一个指定实体的第一部分,和

包含对与所述至少一个期望的内容项有关的至少一个未指定实体的引用的第二部分,其中第二部分中的至少一个未指定实体不同于第一部分中的至少一个指定实体;

在没有进一步用户输入的情况下:

基于所述至少一个指定实体以及实体之间的关系的映射,推断所述第二部分中的至少一个未指定实体的可能含义;

基于所述至少一个未指定实体的所推断的可能含义、所述至少一个指定实体、和与所述一组内容项中的内容项相关联的元数据,从所述一组内容项中选择至少一个共同内容项,其中所述至少一个共同内容项与至少一个指定实体和关系的映射中的至少一个未指定实体中的每一个有关;以及响应于从用户接收到的搜索输入,向用户呈现所选择的至少一个共同内容项。

5.如权利要求4所述的系统,其中所述一个或多个处理器还被配置为:提供用户偏好签名,所述用户偏好签名描述用户对(i)特定的内容项和(ii)与内容项相关联的元数据中至少一个的偏好,及基于搜索输入的部分与由用户偏好签名描述的用户偏好的比较,推断所述至少一个未指定实体的可能含义。

6.如权利要求4所述的系统,其中所述一个或多个处理器还被配置为:提供用户偏好签名,所述用户偏好签名描述用户对(i)特定的内容项和(ii)与内容项相关联的元数据中至少一个的偏好;及基于由用户偏好签名描述的用户偏好预订所述至少一个共同内容项。

7.一种推断搜索输入中的用户意图的计算机实现的方法,所述方法包括:接收一组内容项的信息,每个所述内容项与描述相应内容项的元数据相关联,并且每个所述内容项与至少一个信息域相关联;

在一个或多个处理器处接收来自用户的搜索输入,用户意图将搜索输入用来识别至少一个期望的内容项;

由一个或多个处理器推断搜索输入的第一部分包含具有多个可能含义的至少一个词的短语,其中多个可能含义中的每个可能含义与相应信息域相关联;

由一个或多个处理器部分地基于所述搜索输入的第二部分而不是基于所述搜索输入的第一部分来确定与所述搜索输入相关的至少一个信息域;

由一个或多个处理器基于所述搜索输入和被确定为与所述搜索输入相关的至少一个信息域而从所述多个可能含义中选择所述短语的一个可能含义;和由一个或多个处理器基于搜索输入、所述短语的一个可能含义、以及与所述内容项相关联的元数据来选择所述搜索输入的结果,其中所述结果包括来自所述一组内容项的至少一个内容项。

8.如权利要求7所述的方法,还包括提供用户偏好签名,所述用户偏好签名描述用户对(i)特定的内容项和(ii)与内容项相关联的元数据中至少一个的偏好,其中选择所述短语的一个可能含义还基于搜索输入的部分与由用户偏好签名描述的用户偏好的比较。

9.如权利要求7所述的方法,还包括:

提供用户偏好签名,所述用户偏好签名描述用户对(i)特定的内容项和(ii)与内容项相关联的元数据中至少一个的偏好;及基于由用户偏好签名描述的用户偏好预订所述至少一个内容项。

10.一种推断搜索输入中的用户意图的系统,所述系统包括:处理器,被配置为:

接收一组内容项的信息,每个所述内容项与描述相应内容项的元数据相关联,并且每个所述内容项与至少一个信息域相关联;

接收来自用户的搜索输入,用户意图将搜索输入用来识别至少一个期望的内容项;

推断搜索输入的第一部分包含具有多个可能含义的至少一个词的短语,其中多个可能含义中的每个可能含义与相应信息域相关联;

部分地基于所述搜索输入的第二部分而不是基于所述搜索输入的第一部分来确定与所述搜索输入相关的至少一个信息域;

基于所述搜索输入和被确定为与所述搜索输入相关的至少一个信息域而从所述多个可能含义中选择所述短语的一个可能含义;和基于搜索输入、所述短语的一个可能含义、以及与所述内容项相关联的元数据来选择所述搜索输入的结果,其中所述结果包括来自所述一组内容项的至少一个内容项。

11.如权利要求10所述的系统,其中所述处理器还被配置为提供用户偏好签名,所述用户偏好签名描述用户对(i)特定的内容项和(ii)与内容项相关联的元数据中至少一个的偏好,其中选择所述短语的一个可能含义还基于搜索输入的部分与由用户偏好签名描述的用户偏好的比较。

12.如权利要求10所述的系统,其中所述处理器还被配置为:提供用户偏好签名,所述用户偏好签名描述用户对(i)特定的内容项和(ii)与内容项相关联的元数据中至少一个的偏好;及基于由用户偏好签名描述的用户偏好预订所述至少一个内容项。

13.一种在与具有一个或多个处理器的交互性内容提供系统进行持续的用户交互期间推断对话会话的变化的计算机实现的方法,所述方法包括:提供对一组内容项的访问,每个所述内容项都具有在电子可读介质中存储的描述相应内容项的相关联的元数据;

在一个或多个处理器接收来自用户的第一输入,第一输入包括用户意图用来识别至少一个期望的内容项的语言元素;

由一个或多个处理器将第一输入的至少一个语言元素与第一对话会话相关联;

由一个或多个处理器基于第一输入并且基于与内容项相关联的元数据提供第一响应;

在一个或多个处理器接收来自该用户的第二输入;

由一个或多个处理器推断来自该用户的第二输入是否与和第一对话会话相关联的至少一个语言元素有关;

在其中第二输入被推断为与和第一对话会话相关联的至少一个语言元素有关的情况下,由一个或多个处理器基于与内容项相关联的元数据、第二输入以及和第一对话会话相关联的第一输入的至少一个语言元素来提供第二响应;及在其中第二输入被推断为与和第一对话会话相关联的至少一个语言元素无关的情况下,由一个或多个处理器基于与内容项相关联的元数据以及第二输入来提供第二响应。

14.如权利要求13所述的方法,其中由一个或多个处理器推断来自用户的第二输入是否与和第一对话会话相关联的至少一个语言元素有关是基于对第二输入是否包含语言链接元素的确定。

15.如权利要求14所述的方法,在其中第二输入不包含语言链接元素的情况下,还包括以下:由一个或多个处理器基于与内容项相关联的元数据,确定(i)第二输入的语言元素和(ii)与第一对话会话相关联的至少一个语言元素之间的关联性程度;

在其中关联性程度等于或大于阈值的情况下,由一个或多个处理器进行的推断断定第二输入与和第一对话会话相关联的至少一个语言元素有关;及在其中关联性程度小于阈值的情况下,由一个或多个处理器进行的推断断定第二输入与和第一对话会话相关联的至少一个语言元素无关。

16.如权利要求13所述的方法,其中由一个或多个处理器推断来自用户的第二输入是否与和第一对话会话相关联的至少一个语言元素有关包括:由一个或多个处理器识别与识别至少一个实体的第一对话会话相关联的语言元素;

由一个或多个处理器识别第二输入的语言链接元素;

由一个或多个处理器确定第二输入的语言链接元素是否是到与识别至少一个实体的所述第一对话会话相关联的语言元素的适当链接;

在其中第二输入的语言链接元素是适当链接的情况下,由一个或多个处理器断定来自用户的第二输入与和第一对话会话相关联的至少一个语言元素有关;及在其中第二输入的语言链接元素不是适当链接的情况下,由一个或多个处理器断定来自用户的第二输入与和第一对话会话相关联的至少一个语言元素无关。

17.如权利要求13所述的方法,其中由一个或多个处理器推断来自用户的第二输入是否与和第一对话会话相关联的至少一个语言元素有关包括:由一个或多个处理器确定第二输入是否包括识别至少一个实体的语言元素;

在其中第二输入不包括识别至少一个实体的语言元素的情况下,由一个或多个处理器确定第二输入是否是对第一响应的适当响应;

在其中第二输入是对第一响应的适当响应的情况下,由一个或多个处理器断定来自用户的第二输入与和第一对话会话相关联的所述至少一个语言元素有关;及在其中第二输入不是对第一响应的适当响应的情况下,由一个或多个处理器断定来自用户的第二输入与和第一对话会话相关联的所述至少一个语言元素无关。

18.如权利要求13所述的方法,还包括:

由一个或多个处理器将第一响应的至少一个语言元素与第一对话会话相关联;及在其中第二输入被推断为与和第一对话会话相关联的所述至少一个语言元素有关的情况下,还使第二响应基于与第一对话会话相关联的第一响应的所述至少一个语言元素,其中由一个或多个处理器提供第二响应包括:基于所推断的歧义标识符的含义和与内容项相关联的元数据的比较,从所述一组内容项中选择内容项。

19.一种在与具有处理器的交互性内容提供系统进行持续的用户交互期间推断对话会话的方法,所述方法包括:提供对一组内容项的访问,所述一组内容项中的每个内容项都具有在电子可读介质中存储的描述相应内容项的相关联的元数据;

在处理器接收来自用户的第一输入,第一输入包括从所述一组内容项中识别至少一个期望的内容项的语言元素;

由处理器将第一输入的至少一个语言元素与第一对话会话相关联;

由处理器基于第一输入并且基于与所述一组内容项相关联的元数据提供第一响应,其中所述第一响应包括至少一个期望的内容项;

在处理器接收来自该用户的第二输入;

由处理器推断来自该用户的第二输入是否与和第一对话会话相关联的至少一个语言元素有关;及在其中第二输入被推断为与和第一对话会话相关联的至少一个语言元素有关的情况下,由处理器基于与至少一个期望的内容项相关联的元数据、第二输入以及和第一对话会话相关联的第一输入的至少一个语言元素来提供第二响应。

20.如权利要求19所述的方法,其中由处理器推断来自用户的第二输入是否与和第一对话会话相关联的至少一个语言元素有关是基于对第二输入是否包含语言链接元素的确定。

21.如权利要求20所述的方法,在其中第二输入不包含语言链接元素的情况下,还包括以下:由处理器基于与所述一组内容项相关联的元数据,确定(i)第二输入的语言元素和(ii)与第一对话会话相关联的至少一个语言元素之间的关联性程度;及在其中关联性程度等于或大于阈值的情况下,由处理器进行的推断断定第二输入与和第一对话会话相关联的至少一个语言元素有关。

22.如权利要求19所述的方法,其中由处理器推断来自用户的第二输入是否与和第一对话会话相关联的至少一个语言元素有关包括:由处理器识别与识别至少一个实体的第一对话会话相关联的语言元素;

由处理器识别第二输入的语言链接元素;

由处理器确定第二输入的语言链接元素是否是到与识别至少一个实体的所述第一对话会话相关联的语言元素的适当链接;

在其中第二输入的语言链接元素是适当链接的情况下,由处理器断定来自用户的第二输入与和第一对话会话相关联的至少一个语言元素有关。

23.如权利要求19所述的方法,其中由处理器推断来自用户的第二输入是否与和第一对话会话相关联的至少一个语言元素有关包括:由处理器确定第二输入是否包括识别至少一个实体的语言元素;

在其中第二输入不包括识别至少一个实体的语言元素的情况下,由处理器确定第二输入是否是对第一响应的适当响应;

在其中第二输入是对第一响应的适当响应的情况下,由处理器断定来自用户的第二输入与和第一对话会话相关联的所述至少一个语言元素有关。

24.一种在与交互性内容提供系统进行持续的用户交互期间推断对话会话的方法,所述系统包括:处理器,被配置为:

提供对一组内容项的访问,所述一组内容项中的每个内容项都具有在电子可读介质中存储的描述相应内容项的相关联的元数据;

接收来自用户的第一输入,第一输入包括从所述一组内容项中识别至少一个期望的内容项的语言元素;

将第一输入的至少一个语言元素与第一对话会话相关联;

基于第一输入并且基于与所述一组内容项相关联的元数据提供第一响应,其中所述第一响应包括至少一个期望的内容项;

接收来自该用户的第二输入;

推断来自该用户的第二输入是否与和第一对话会话相关联的至少一个语言元素有关;

在其中第二输入被推断为与和第一对话会话相关联的至少一个语言元素有关的情况下,基于与至少一个期望的内容项相关联的元数据、第二输入以及和第一对话会话相关联的第一输入的至少一个语言元素来提供第二响应。

25.一种基于求解搜索输入的歧义部分来推断搜索输入中的用户意图的方法,所述方法包括:提供对一组内容项的访问,每个所述内容项都与描述相应内容项的元数据相关联;

提供用户偏好签名,所述用户偏好签名描述用户对(i)特定的内容项和(ii)与内容项相关联的元数据中至少一个的偏好;

接收来自用户的搜索输入,用户意图将搜索输入用来识别至少一个期望的内容项;

确定与所述一组内容项且与搜索输入的至少一部分相关联的状态空间,其中所述状态空间包括实体和实体之间的关系;

确定搜索输入的一部分包含歧义标识符,用户意图将歧义标识符用来至少部分地识别所述至少一个期望的内容项;

通过执行以下来推断歧义标识符的含义:

确定状态空间中的实体和关系是否使所述歧义标识符消除歧义,在状态空间中的实体和关系中的至少一个使所述歧义标识符消除歧义的情况下,推断歧义标识符的含义至少部分地基于使所述歧义标识符消除歧义的、状态空间中的实体和关系中的所述至少一个,在状态空间中的实体和关系中的至少一个没有使所述歧义标识符消除歧义的情况下,推断歧义标识符的含义包括:制定和呈现部分地基于选择至少一个响应模板而形成的后续对话问题,其中至少一个响应模板是至少部分地基于匹配沿着包括实体和关系的路径的、实体和关系中的至少一个的特性来选择的,所述匹配匹配搜索输入的部分和由用户偏好签名描述的用户偏好;

基于状态空间确定搜索输入是否与先前接收的搜索输入的一部分有关;以及响应于确定搜索输入与先前接收的搜索输入的一部分无关,基于比较搜索输入和歧义标识符的所推断的含义与和内容项相关联的元数据并且进一步基于忽略与先前接收的搜索输入的所述一部分有关的实体,从所述一组内容项中选择内容项。

26.如权利要求25所述的方法,其中与内容项相关联的元数据包括与内容项相关联的实体之间的关系的映射。

27.如权利要求25所述的方法,其中用户偏好签名是基于由用户提供的明确偏好。

28.一种基于求解搜索输入的歧义部分来推断搜索输入中的用户意图的方法,所述方法包括:提供对一组内容项的访问,每个所述内容项都与描述相应内容项的元数据相关联;

接收来自用户的搜索输入,用户意图将搜索输入用来识别至少一个期望的内容项;

确定与所述一组内容项且与搜索输入的至少一部分相关联的状态空间,其中所述状态空间包括实体和实体之间的关系;

确定搜索输入的一部分包含歧义标识符,用户意图将歧义标识符用来至少部分地识别所述至少一个期望的内容项;

在搜索输入的一部分包含歧义标识符的情况下,执行以下:

确定状态空间中的实体和关系中的至少一个是否使所述歧义标识符消除歧义,在状态空间中的实体和关系中的至少一个使所述歧义标识符消除歧义的情况下,至少部分地基于使所述歧义标识符消除歧义的、状态空间中的实体和关系中的所述至少一个,推断所述歧义标识符的含义,及基于比较搜索输入和歧义标识符的所推断的含义与和内容项相关联的元数据来从所述一组内容项中选择内容项;

在状态空间中的实体和关系中的至少一个没有使所述歧义标识符消除歧义的情况下,推断歧义标识符的含义包括:制定和呈现部分地基于选择至少一个响应模板而形成的后续对话问题,其中至少一个响应模板是至少部分地基于匹配沿着包括实体和关系的路径的、实体和关系中的至少一个的特性来选择的,所述匹配匹配搜索输入的部分和由用户偏好签名描述的用户偏好,基于状态空间确定搜索输入是否与先前接收的搜索输入的一部分有关;以及响应于确定搜索输入与先前接收的搜索输入的一部分无关,基于比较搜索输入和歧义标识符的所推断的含义与和内容项相关联的元数据,进一步基于匹配搜索输入的部分和由用户偏好签名描述的用户偏好,并且进一步基于忽略与先前接收的搜索输入的所述一部分有关的实体,从所述一组内容项中选择内容项。

29.如权利要求28所述的方法,其中与内容项相关联的元数据包括与内容项相关联的实体之间的关系的映射。

30.如权利要求28所述的方法,其中用户偏好签名是基于由用户提供的明确偏好。

说明书 :

在对话交互系统中推断搜索输入中的用户意图的方法和系统

[0001] 本申请是申请日为2013年7月19日、申请号为201380046675.3、发明名称为“在对话交互系统中推断搜索输入中的用户意图的方法和系统”的发明专利申请的分案申请。
[0002] 对相关申请的交叉引用
[0003] 本申请要求以下专利申请的权益,其内容通过引用被结合于此:
[0004] 于2013年5月1日提交的标题为“Method of and System for Inferring User Intent in Search Input in a Conversational Interaction System”的美国专利申请No.13/874,523;
[0005] 于2012年11月2日提交的标题为“Method of and System for Inferring User Intent in Search Input in a Conversational Interaction System”的美国专利申请No.13/667,400;
[0006] 于2012年11月2日提交的标题为“Method of and System  for  Using Conversation State Information in a Conversational Interaction System”的美国专利申请No.13/667,388;
[0007] 于2012年10月11日提交的标题为“Method of and System for Content Search Based on Conceptual Language Clustering”的美国临时专利申请No.61/712,721;及[0008] 于2012年7月20日提交的标题为“A Conversational Interaction System for Large Corpus Information Retrieval”的美国临时专利申请No.61/673,867。

技术领域

[0009] 本发明一般地涉及对话交互技术,并且更具体地,涉及基于解决输入歧义和/或推断对话会话中已发生变化来推断用户意图。

背景技术

[0010] 对话系统有望成为跨一系列设备导航大型信息库的优选模式,其中设备包括:智能电话、平板电脑、TV/STB、多模态设备,诸如像“Goggles”(谷歌的太阳镜)的可穿戴计算设备、类似Xbox/Kinect的混合手势识别/语音识别系统、汽车信息系统以及一般的家庭娱乐系统。处于舞台中心、作为主要交互模式的基于触摸界面的时代也许慢慢地进入尾声,其中在许多日常生活的用例中,用户宁愿说出自己的意图,并且系统理解和按该意图执行。这同时被显著的硬件、软件和算法的进步所激发,这些进步使得与几年前相比,文本到语音有效得多。
[0011] 尽管正朝着纯对话接口做出进展,但是现有的简单请求响应方式的对话系统只够在小型信息库中解决面向特定任务的或者特定信息检索的问题-这些系统不能在大型语料信息库上很好的执行。
[0012] 其核心本质上是请求响应系统的当前系统试图提供诸如响应用户问题的对话方式的界面,如下:
[0013] 用户:我的支票账户余额是多少?
[0014] 系统:它是$2,459.34。
[0015] 用户:存款呢?
[0016] 系统:它是$6,209.012。
[0017] 用户:货币市场如何?
[0018] 系统:它是$14,599.33。
[0019] 这些本质上是提供对话连续性概念的面向目标的或面向任务的请求响应系统,尽管每个请求响应对都彼此独立并且所维护的唯一上下文是简单的上下文,即,用户的银行账户。当前对话系统的其它例子是那些使用户走过一系列良好定义的并通常预先确定的决策树路径以完成用户意图(诸如预定晚餐、预定机票等)的系统。
[0020] 申请人已发现,理解用户的意图(即使在其中用户意图可以跨单纯的信息检索到观看演出或预订演出/电影票的诸如数字娱乐的领域内)结合理解表达意图的用户话语的语义以提供匹配用户意图的清楚和简洁的响应是当前系统在对话空间中未能解决的难题。除具有明确意图表达的简单句子之外,通常难以提取表达意图的句子的意图和语义,即使在单个请求/响应交换式的交互中。不具有良好定义步骤的面向任务的意图增加了这种复杂性(诸如遍历预定的判定树)。同样有问题的是需要一系列用户请求和系统响应来使任务完成的那些交互(例如,像预定晚餐)。还有,丰富的信息库会尤其具有挑战性,因为对实体的用户意图表达可以采用许多有效且自然的形式,并且同一词汇标记(单词)会与许多不同的用户意图相关地出现。
[0021] 当语料库很大时,在不用对话来澄清词汇冲突和多种语义解释的情况下,这些冲突或歧义增加了满足用户意图的复杂性。有时,甚至不可能理解用户的意图,或者表达意图的句子的语义-类似于在现实生活中人之间的对话中所发生的。系统问最少量的问题(从在对话中理解另一个人的角度看)来理解用户意图的能力,正如人将会做的那样(一般来说其中参与方都知道所讨论的领域),将决定系统到人类对话的接近程度。
[0022] 超出简单的多步骤旅行/晚餐预订(例如,对话中的步骤是明确定义的请求/响应序列,在每一步中没有太多的歧义解决方案)的进行对话或交流的系统同样面临为了有效率而不得不维护对话状态的复杂性。例如,这些系统将需要推断对意图和实体的隐含引用(例如,对人、物体或任何名词的引用)以及在用户的句子中限定意图的属性(例如,“给我显示Tom Hanks最近的电影而不是老电影”;“给我显示更多的动作片和更少的暴力片”)。还有,申请人已发现,不仅跟踪由用户做出的对之前输入中的实体、属性等的引用,而且跟踪系统对用户的多模式响应的实体、属性等的引用是有益的。
[0023] 还有,申请人已发现,在用户/系统交流期间维护代词到宾语/主语的关联增强了用户的体验。例如,在诸如“在近期的Daniel Craig电影的原声曲目中的Led Zeppelin歌曲…谁演奏的它?”的复杂用户输入中将代词“它”关联到其宾语/主语“Led Zeppelin歌曲”的语音分析器(或自然语言处理器)通过不需要用户始终使用特定的语法来帮助用户。但是,这种简单的代词到宾语/主语的关联在处理以下交流时是无效的:
[0024] Q1:谁在新星球大战中扮演Obi-wan Kenobi?
[0025] A:Ewan McGregor。
[0026] Q2:他与Scarlet Johansson的电影有哪些?
[0027] 这里,在第二个问题中的“他”指响应中的人,而不是来自用户输入中的人。更复杂的例子如下:
[0028] Q1:谁在Kramer vs.Kramer中扮演主角?
[0029] A1:Meryl Streep和Dustin Hoffman。
[0030] Q2:他的更多电影有哪些?
[0031] A2:这里是一些Dustin Hoffman的电影…[Dustin Hoffman电影的列表]。
[0032] Q3:她的更多电影有哪些?
[0033] 这里,在Q2中的“他的”和在Q3中的“她的”指回到响应A1。在这些情况下,在理解用户意图时,单独的自然语言处理器是无效的。在以下描述的几个实施例中,语言处理器与对话状态引擎以及特定于领域的信息一起工作,其中特定于领域的信息指示实体的男性和女性属性,这能够帮助解决这些对之前对话交流的代词指代。
[0034] 进行用户对话的系统面临的另一个挑战是对用户意图变化的确定,即使是在同一领域内。例如,用户可能以寻找例如娱乐领域中的问题的答案开始。在进行探索更多关于那个问题的对话的同时,决定寻求完全不同的意图路径。当前系统期望用户提供发起新对话的明确提示。如果用户未能提供那个重要提示,则系统响应仍将限制在用户已经下降到的探索路径的狭小范围,并且将用户的输入限制到那个狭小的上下文,这通常导致就算不是荒谬的也是不想要的响应。当用户选择在对话中间切换领域时,弄错上下文的结果甚至更加刺眼(以至于该系统看起来滑稽无能)。例如,当用户探索娱乐空间中的内容时,可能说:“我饿了”。如果系统没有意识到这是切换到新的领域(餐馆/饮食领域),则它会认为“我饿了”是在娱乐空间中提出的问题而进行响应,并且提供在那个领域的响应,在这个例子中,这将是滑稽的错误响应。
[0035] 另一方面,人类通过语句最基本的属性自然地认识到这种大幅的领域切换,并相应地做出响应(例如,“我们要订比萨吗?”)。即使在到新领域的过渡不是那么明显的偏远场景中,人类参与者会犹豫,但是很快就从第一说话者的反馈中恢复(“哦,不,我的意思是我饿了-我想吃东西!”)。对话中人类认为理所当然的这些细微但重要的对话元素是人与人对话的丰富性和与自动化系统对话的丰富性的区别所在。
[0036] 总而言之,本文所公开技术的实施例试图紧密地匹配用户的意图,并且像人类交互一样与用户进行对话。某些实施例展示了以下非穷尽特征列表中的任何一个或多个特征:a)解决意图和/或意图描述中的歧义,并且每当适用时利用用户的偏好(一些实现使用基于特定于领域的垂直信息的计算元素和逻辑);b)在与用户的整个交流中维护描述意图的活动意图和/或实体/属性的状态,以便隐含地推断用户间接地对对话中早先提到的意图/实体/属性所做的引用;c)每当适用时,修改对用户的响应,以匹配用户的偏好;d)隐含地确定在领域内和跨领域开始新话题的对话边界,并相应地修改响应;e)假设未能理解用户的意图(例如,或者因为意图无法找到或者意图的最佳猜测的信心指数低于阈值),则进行最少的对话来理解用户的意图(以类似于人类在对话中为了理解意图所做的方式)。在本发明的一些实施例中,对意图的理解可以利用设备(例如,像平板设备)的显示能力来图形地显示用户可以交互以提供关于用户意图的线索的直观演示。

发明内容

[0037] 在本发明的一个方面中,公开了一种用于在对话交互系统中推断搜索输入中的用户意图的方法和系统。
[0038] 在本发明的另一个方面中,基于解决搜索输入的歧义部分来推断搜索输入中的用户意图的方法包括提供对一组内容项的访问。每个内容项都与描述相应内容项的元数据相关联。该方法还包括提供用户偏好签名。用户偏好签名描述用户对(i)特定的内容项和(ii)与内容项相关联的元数据中至少一个的偏好。该方法还包括从用户接收搜索输入。用户意图使该搜索输入用来识别至少一个期望的内容项。该方法还包括确定搜索输入的一部分包含歧义标识符。用户意图使该歧义标识符用来至少部分地识别至少一个期望的内容项。该方法还包括基于搜索输入的部分与由用户偏好签名描述的用户偏好匹配来推断歧义标识符的含义并且基于搜索输入和所推断的歧义标识符的含义与和内容项相关联的元数据进行比较而从一组内容项中选择内容项。
[0039] 在本发明还有的方面中,歧义标识符可以是代词、语法虚词(syntactic expletive)、娱乐题材和/或名称的至少一部分。
[0040] 在本发明还有的另一个方面中,与内容项相关联的元数据包括与内容项相关联的实体之间的关系的映射。
[0041] 在本发明还有的方面中,用户偏好签名是基于用户提供的明确的偏好和/或基于对用户在一段时间内所做的内容项选择的分析。可选地,用户偏好签名描述用户对与内容项相关联的元数据的偏好,该元数据包括该用户偏好的实体。
[0042] 在本发明的另一个方面中,基于解决搜索输入的歧义部分来推断搜索输入中的用户意图的方法包括提供对一组内容项的访问。每个内容项都与描述相应内容项的元数据相关联。该方法还包括从用户接收搜索输入。用户意图使该搜索输入来识别至少一个期望的内容项。该方法还包括确定搜索输入的一部分是否包含歧义标识符。用户意图使该歧义标识符来至少部分地识别至少一个期望的内容项。在其中搜索输入的一部分包含歧义标识符的情况下,该方法包括:基于搜索输入的部分与由用户偏好签名描述的用户偏好匹配来推断歧义标识符的含义、基于搜索输入和所推断的歧义标识符含义与和内容项相关联的元数据比较,从一组内容项中选择内容项,以及在其中搜索输入不包含歧义标识符的情况下,基于搜索输入与和内容项相关联的元数据的比较来从一组内容项中选择内容项。
[0043] 以上列出的任何方面都可以与以上列出的任何其它方面和/或与本文所公开的技术结合。

附图说明

[0044] 为了对本发明的各种实施例有更完整的理解,现在结合附图参考以下描述,附图中:
[0045] 图1为解释的目的说明了结合于此的用户界面方法。
[0046] 图2为解释的目的说明了结合于此的用户界面方法。
[0047] 图3为解释的目的说明了结合于此的用户界面方法。
[0048] 图4为解释的目的说明了结合于此的用户界面方法。
[0049] 图5为解释的目的说明了结合于此的用户界面方法。
[0050] 图6说明了表示实体及实体间关系的图的例子。
[0051] 图7说明了表示实体及实体间关系的图的例子。
[0052] 图8说明了表示实体及实体间关系的图的例子。
[0053] 图9说明了表示实体及实体间关系的图的例子。
[0054] 图10说明了作为本发明的实施例的体系结构。
[0055] 图11说明了本发明实施例的操作的简化流程图。
[0056] 图12说明了本发明实施例的操作的控制流程。

具体实施方式

[0057] 本发明的优选实施例包括用于推断用户的意图并在对话交流中满足该意图的方法和系统。某些实现能够解决用户输入中的歧义、维护与对话交流相关联的意图、实体和/或属性的状态、修改响应以匹配用户的偏好、推断开始新话题的对话边界(即,推断对话会话的变化)和/或进行最少的对话来理解用户意图。随后的概念用于描述本发明的实施例。
[0058] 信息库
[0059] 信息库与领域相关联,领域是相似类型的信息和/或特定类型的内容项的聚合。特定类型的信息库包括实体以及实体之间的关系。每个实体/关系分别具有来自类型集合中的类型。此外,与每个实体/关系相关联的是一组属性,在一些实施例中,这些属性能够被捕获,作为定义的名称-值字段的有限集合。由于实体/关系映射提供描述各种内容项的信息,因此实体/关系映射也用作与内容项相关联的一组元数据。换句话说,特定实体将具有与其它实体的关系,并且这些“其它实体”用作对“特定实体”的元数据。此外,映射中的每个实体可以具有分配给它或分配给在映射中将该实体连接到其它实体的关系的属性。共同地,这构成了与实体/内容项相关联的元数据。一般而言,这种信息库被称为结构化的信息库。下面接着是与领域相关联的信息库的例子。
[0060] 媒体娱乐领域包括实体,诸如电影、电视节目、剧集、剧组、角色/人物、演员/名人、运动员、比赛、团队、联赛和锦标赛、体育人士、音乐艺术家和表演者、作曲家、专辑、歌曲、新闻名人和/或内容分销商。这些实体具有在信息库中捕获的关系。例如,电影实体经“在其中扮演(acted in)”关系关联到一个或多个演员/名人实体。类似地,电影实体可以经“原声曲目”关系关联到音乐专辑实体,其又可以经“专辑中的曲目”关系关联到歌曲实体。同时,名称、描述、日程信息、评论、等级、成本、到视频或音频的URL、应用或内容存储句柄、分值等可以被视为属性字段。
[0061] 个人电子邮件(email)领域包括实体,诸如电子邮件、电子邮件线程(email-thread)、联系人、发件人、收件人、公司名称、企业中的部门/业务单位、电子邮件文件夹、办公室位置和/或对应于办公室位置的城市和国家。关系的说明性例子包括关联到电子邮件发件人实体(以及到、cc、bcc、收件人和电子邮件线程实体)的电子邮件实体。同时,可以存在联系人与他或她的公司、部门、办公室位置之间的关系。在这个库中,与实体相关联的属性字段的实例包括联系人的姓名、职称、电子邮件句柄、其它联系信息、电子邮件发送/接收时间戳、主题、正文、附件、优先级、办公室的位置信息和/或部门的名称和描述。
[0062] 与旅行相关的/宾馆和景点领域包括实体,诸如城市、宾馆、宾馆品牌、各个兴趣点、兴趣点类别、面向消费者的零售连锁店、汽车租赁点和/或汽车租赁公司。这些实体之间的关系包括位置、连锁店的会员关系,和/或类别。此外,名称、描述、关键词、成本、服务类型、等级、评论等都被视为属性字段。
[0063] 电子商务领域包括实体,诸如产品条目、产品类别和子类别、品牌、商店等。这些实体之间的关系可以包括产品条目之间的兼容性信息、“由…(商店)出售”的产品等。属性字段包括描述、关键词、评论、等级、成本和/或可获得性信息。
[0064] 地址簿领域包括实体和诸如联系人姓名、电子邮件地址、电话号码、物理地址以及雇主的信息。
[0065] 本文所列出的实体、关系和属性只是说明性的,并不是要成为穷尽的列表。
[0066] 本发明的实施例还可以使用不是如上所述的结构化信息库的库。例如,对应于基于网络的文档的信息库(例如,因特网/万维网)可以被认为是链接的文档(实体)的关系网。但是,一般而言,没有直接适用的类型结构能够在上述结构化信息库的意义上以非平凡的方式有意义地描述与因特网的元素相关联的所有各种实体和关系以及属性。但是,诸如域名、因特网媒体类型、文件名、文件扩展名等的元素可以用作带有这种信息的实体或属性。
[0067] 例如,考虑包括一组非结构化文本文档的语料库。在这种情况下,没有直接适用的类型结构可以枚举一组有意义地描述这些文档内容的实体和关系。但是,作为预处理步骤的语义信息提取处理技术的应用可以产生能够部分地从这种语料库中发现结构的实体和关系。
[0068] 根据本发明的某些实施例访问信息库的说明性例子
[0069] 以下描述说明在如上所述的结构化和非结构化信息库的上下文中信息检索任务的例子。
[0070] 在一些情况下,用户对某一类型–本文一般地称为意图类型–的一个或多个实体感兴趣,用户希望通过只指定实体必须满足的属性字段约束来发现这些实体。注意,有时当用户想知道某种类型实体的某一属性时,意图可以是(类型,属性)对。例如,如果用户想知道电影的等级,则意图可以被视作(类型,属性)=(电影,等级)。这种查询约束在本文被一般地称为只有属性的约束(attribute-only constraints)。
[0071] 每当用户指出实体名称或指定足够的信息来直接匹配期望意图类型实体的属性时,它是只有属性的约束。例如,当用户通过名称和某一附加属性(例如,在60年代制作的“Cape Fear”)识别电影时,或者当他指定与他想要找到的电子邮件匹配的主题时,或者当他基于价格区间询问宾馆时,或者当他指定他想要32GB、黑色的iPod touch时。
[0072] 但是,在一些情况下,用户不仅通过指定关于意图类型实体的属性字段约束,而且还通过在其它实体上指定属性字段约束或指出其它实体的名称,对意图类型中的一个或多个实体感兴趣,其中该意图类型实体以某一明确定义的方式经关系连接到所述其它实体。这种查询-约束在本文被一般地称为面向连接的约束。
[0073] 面向连接的约束的例子是当用户想要基于指定电影中的两个或更多个演员的电影(意图类型)或基于演员和该影片赢得的奖项的电影时。另一个在电子邮件上下文中的例子是如果用户想要最近七天里从特定公司的某些发件人接收到的电子邮件(意图类型)。类似地,还有的例子是如果用户想要预定火车站以及星巴克连锁店附近的宾馆房间(意图类型)。还有的另一个例子是如果用户想要Samsung制造的还与Nintendo Wii兼容的电视机(意图类型)。所有这些都是面向连接的约束查询的实例。
[0074] 在以上面向连接的约束的例子中,用户明确地描述或指定连接到意图实体的其它实体。这种约束在本文被一般地称为面向明确连接的约束并且这些实体被称为明确的实体。
[0075] 同时,其它查询包含包括未指定或隐含实体作为约束规范的一部分的面向连接的约束。在这种情况下,用户试图识别不能通过未知项与用户现在确实知道的项之间的关系知道的一些信息、实体、属性等。这种约束在本文被一般地称为面向隐含连接的约束并且未指定的实体在本文被一般地称为约束的隐含实体。
[0076] 例如,用户可能希望通过指出电影中两个人物的名字来识别她正在寻找的电影。但是,该用户不记得其中一个人物的名字,但她确实记得扮演该人物的特定演员。因此,在她的查询中,她通过名字指出一个人物并且通过指出未知人物是由特定演员扮演的来识别该未知人物。
[0077] 在电子邮件库的上下文中,例子包括用户想要得到来自指定公司“Intel”的未指定男士的最后的电子邮件(意图),其中该用户在上星期经电子邮件(属性指示器)被介绍给该未指定的男士。在这个例子中,隐含实体是能够通过经员工/公司关系检查来自“Intel”的联系人发现的、上周第一次与该用户是共同电子邮件收件人的联系人。
[0078] 面向隐含连接的约束的还有的例子在下文中更详细地进行描述。
[0079] 在面向连接的约束的上下文中,将信息库的实体和关系映射到图形的节点和边是有用的。特别地采用图形模型的动机是观察到自然语言对话中的相关性、近似性和关联性能够简单地通过诸如链接-距离以及在一些情况下最短路径和最小权重树的概念进行建模。在对话过程中,当用户对话涉及与实际寻找的实体相关的其它实体时,将信息检索作为简单的图形搜索问题加以解决的子程序有效地帮助了减少对句子结构深入明确理解的依赖。这种方法提供了系统实现上好处。如以下更详细阐述的,即使用户意图计算是歧义的或不确定的,只要实体已经在用户话语中被识别出,则基于图形解释的问题处理就使得系统能够以比其它可能的方式智能得多的方式进行响应。
[0080] 只有属性的约束
[0081] 下面接着的是信息检索技术的例子,该技术使用户能够指定只有属性的约束。虽然这些技术中的一些技术在本领域中是已知的(在其中指定的地方),但是这里呈现的概念是为了说明这些基本技术怎样能够与本文所描述的发明性技术一起使用,以增强用户体验和改善响应用户输入而返回的搜索结果的质量。
[0082] 在从电影/电视搜索界面进行信息检索的过程中只有属性约束的例子
[0083] 图1示出了本领域已知的用于电影和电视内容的搜索引擎的搜索界面100(即,IMDB搜索界面)。图1包括下拉控件105,其允许用户确切地选择实体类型或属性。例如,标题意味着意图实体类型是电影或电视节目,电视剧集意味着意图类型是剧集,名称意味着意图类型是名人,公司意味着意图类型是公司(如制片厂或工作室等),人物意味着意图类型是角色。同时,关键词、引用以及情节指定与被设法搜索的电影或电视节目或剧集类型的意图实体相关联的属性字段。同时,下拉控件110允许用户只指定用于电影、剧集或电视节目类型的实体的属性。
[0084] 图2示出了IMDB搜索界面(本领域已知的)200的高级标题搜索图形用户界面。这里,标题类型选择205等于意图实体类型的选择。同时,发行日期210、用户等级215和票数220都是电影、电视节目、剧集等类型的实体的属性。如果这里示出的题材225和标题组230的数量被认为足够小,那么那些题材和标题组可以被视为实体的描述性属性。因此,这里的题材和标题组部分也是指定属性约束的方式。标题数据235部分指定对应于数据源属性的约束。
[0085] 在从电子商务搜索界面进行信息检索的过程中只有属性约束的例子
[0086] 图3说明用于本领域已知的电子商务网站的搜索工具的图形用户界面300。在前面的例子中,用户界面允许用户在信息库中发起任何搜索之前指定属性约束集。同时,图3示出了在用户首先打开纯文本搜索查询“汽车音响”之后的用户界面。基于与由文本搜索引擎为文本搜索查询305返回的特定结果相关联的特征和属性,搜索后用户界面通过动态地挑选该搜索结果集合的属性的子集进行构造,这允许用户为它们指定进一步的属性约束。因此,用户被迫遵循首先做文本查询或类别过滤然后对进一步的属性指定约束的特定流程。
[0087] 这种“硬编码”流程-第一搜索后跟着搜索后属性过滤–导致对这种风格的图形用户界面的基本限制,这是因为在不清楚用户所想产品的情况下,根本无法预先地显示所有有意义的属性。这种方法比本文所公开的发明性技术效率更低,因为用户可能想在搜索的开始声明一些他或她脑海中的属性约束。这个问题部分地源于事实:即使数据库中每个单独产品的不同属性的数量是有限数量,总的集合也通常足够大,以至于图形用户界面不能显示足够数量的属性,从而导致硬编码流程。
[0088] 注意,本文所公开的对话界面实施例不受物理空间的限制。因此,用户能够很容易地在第一用户输入中指定任何属性约束。
[0089] 面向明确连接的约束
[0090] 接下来的是在信息检索系统中采用的面向明确连接的约束的例子。如实体和关系的术语所能做到的,节点和边的图形模型术语也能用来描述面向连接的约束。
[0091] 当利用只有属性的约束界面时,用户仅指定对意图实体的类型和属性约束。同时,当利用明确连接的节点约束界面时,用户可以附加地指定对经指定种类的边连接连接到该意图节点的其它节点的类型和属性约束。在信息检索过程中采用明确连接的节点约束的本领域已知的一个界面例子是在图4中所示的电影/电视信息搜索引擎400。
[0092] 考虑到跨所有电影和电视名人的可能的死亡和出生地点405的数量是很大的数字,因此出生和死亡地点在电影信息库图形中被当作节点而不是属性。因此,在图形用户界面400中的出生和死亡地点说明是对连接到想要的名人节点的节点的说明。在图形用户界面400中的电影作品表过滤器410允许用户指定电影或电视节目节点等的名称,这又是连接到想要的名人节点的另一节点。在图5中示出的图形用户界面的其它过滤器500是想要节点的属性的指示器。
[0093] 当用户的意图是获得在两个电影或电视节目节点上都合作的名人时,他可以在图形用户界面400的第一部分指定这两个节点。当用户的意图是获得对应于两个名人合作的电影或电视节目节点时,用户可以在以上图形UI的第二部分指定这两个名人的节点。在这两种情况下,用户在指定除了他想要的节点之外的连接的节点,从而使之成为明确连接的节点约束。但是,如下所述,本领域中已知的界面不支持某些类型的明确连接的节点约束(面向明确连接的约束)。
[0094] 图6说明当用户基于Sean Connery主演的虚构人物Jack Ryan搜寻电影时,利用本文所公开的发明性技术分析来得到期望结果的节点(实体)和边(关系)的图形600。用户可以提供查询:“哪部电影有Jack Ryan并且由Sean Connery主演?”。基于结构化的信息库,本文的技术将该查询解释为:获得电影类型的节点(意图),该节点通过边605连接到名为“Jack Ryan”的角色类型的明确节点610并且还经由“在其中扮演”边615连接到名为“Sean Connery”的名人类型的明确节点620。作为结果,本文所述的技术返回电影“The Hunt for the Red October”625。
[0095] 再次参考图6,假设用户询问:“扮演过人物Jack Ryan的所有演员都有谁?”,则所公开的技术将该查询解释为:
[0096] 获得名人类型的节点(意图),该节点通过“扮演过”边630连接到名为“Jack Ryan”的角色类型的明确节点610。本文所公开的发明性系统的实施例将返回演员“Alec Baldwin”635、“Harrison Ford”640以及“Ben Affleck”645。
[0097] 另一个例子是用户询问基于John Grisham的书由Tom Cruise主演的电影的名字。因此,该查询变为:获得电影类型的节点(意图),该节点通过边“在其中扮演”连接到名为Tom Cruise的名人类型的明确节点,并且通过边“作者”连接到名为“John Grisham”的名人类型的明确节点。本文所公开的发明性系统的实施例将返回电影“The Firm”。
[0098] 面向隐含连接的约束
[0099] 以下例子说明面向隐含连接的约束以及用于特定信息检索目标的隐含实体。前两个例子使用了实体和关系的术语。
[0100] 在一个例子中,用户想知道在关于指定角色(例如,人物Tony Montana)的未指定电影中由指定的演员/名人(例如,Michelle Pfeiffer)扮演的角色(意图)。在种情况下中,用户的约束包括未指定的或隐含的实体。该隐含的实体是电影“Scarface”。图7说明利用本文所公开的技术分析来得到期望结果的实体和关系的图形700。图形700是结构化信息库的说明性可视化表示。具体而言,隐含的电影实体“Scarface”705经电影实体“Scarface”705与演员实体“Tony Montana”715之间的“在其中扮演”关系710以及人物实体“Tony Montana”725与电影实体“Scarface”705之间的“在其中的人物”关系720得出。由“Michelle Pfeiffer”扮演的角色实体“Elvira Hancock”730然后通过到“Michelle Pfeiffer”的“由其扮演”关系735和到电影实体“Scarface”705的“在其中的人物”关系740被发现。
[0101] 在还有的例子中,假设用户想知道由指定的演员实体Scarlett Johansson和在指定的电影实体Star Wars中扮演指定角色Obi-Wan Kenobi的未指定的演员实体主演的电影(意图)。在这个例子中,隐含实体是演员实体“Ewan McGregor”并且得到的结果实体是由“Scarlett Johansson”和“Ewan McGregor”主演的电影“The Island”。图8说明利用本文所公开的技术分析来得到期望结果的实体和关系的图形800。具体而言,隐含的演员实体Ewan McGregor 805经与至少一个电影实体Star Wars 815的“在其中扮演”关系810和经到人物实体Obi-Wan Kenobi 825的人物关系820得出,其中人物实体Obi-Wan Kenobi 825又经人物关系830关联到电影实体Star Wars 815。同时,结果实体The Island 835经演员/名人实体Scarlett Johansson 845与电影实体The Island 835之间的“在其中扮演”关系840以及隐含的演员实体Ewan McGregor 805与电影实体The Island之间的“在其中扮演”关系850得出。
[0102] 图9说明利用本文所公开的技术分析来得到期望结果的实体和关系的图形900。这个例子使用了节点和边的术语。用户知道存在乐队,该乐队为由Daniel Craig主演的新电影翻唱歌曲Led Zeppelin。该用户既不记得翻唱歌曲的名称,也不记得该电影的名称,但是他想浏览翻唱那个Led Zeppelin的乐队的其它音乐(即,歌曲)。因此,通过指定已知实体Led Zeppelin(作为歌曲作曲者)和Daniel Craig(作为该电影中的演员),中间隐含的节点被发现,以寻找用户期望的结果。因此,本文发明性技术的实施例如下构成查询约束:返回歌曲类型的节点(意图),该节点通过边905“作曲者”连接到乐队类型的隐含节点910(Trent Reznor),使得该乐队节点具有与歌曲类型的隐含节点920(Immigrant Song)的边915“翻唱表演者”,其中隐含节点920又具有与名为“Led Zeppelin”的乐队类型的明确节点930的边925“作曲者”以及还有与专辑类型的隐含节点940(Girl with the Dragon Tattoo原声曲目)的边935“专辑中的曲目”,其中隐含节点940具有与电影类型的隐含节点950(Girl with the Dragon Tattoo原声曲目)的边945“原声曲目(OST)”,其中隐含节点950具有与名为“Daniel Craig”的名人类型的隐含节点960的边955“在其中扮演”。
[0103] 如上所述,用于信息检索的已知技术和系统遭受各种各样问题。本文所描述的是发明性的对话交互界面的实施例。这些实施例使得用户能够通过利用对信息检索系统说话并且可选地利用物理交互(例如,触摸界面、键板,键盘和/或鼠标)选择选项来提交查询和/或指令而与信息检索系统交互。对用户查询的响应可以通过机器产生的口语文本到语音来完成,并且可以通过在用户屏幕上显示的信息进行补充。对话交互界面的实施例一般而言允许用户针对信息检索系统对之前查询的响应做出回应来提交他的下一个信息检索查询或指令,使得信息检索会话是一系列的操作,其中每个操作都是用户首先提交查询或指令然后系统向用户做出响应。
[0104] 本发明的实施例是比用于本文所讨论的查询约束的图形用户界面更强大和更令人印象深刻的范例。在许多情况下,尤其当它涉及从大量可能的属性或存在的明确和隐含连接的节点中灵活选择时,图形用户界面方法不能很好地工作或者根本不工作。在这种情况下,本发明的对话交互界面的实施例是更自然的匹配。另外,相对于图形用户界面,本发明的实施例就用户可以指定的不同属性的数量以及明确连接的节点约束的数量和隐含节点约束的数量而言,更具可伸缩性。
[0105] 对话系统体系结构
[0106] 图10表示本发明实施例的整体系统体系结构1000。用户1001说出他或她的问题,该问题被送到语音到文本引擎1002。虽然输入可以是语音,但是实施例并不排除输入是直接的文本输入。用户输入的文本形式被送到会话对话内容模块1003。该模块维护跨对话会话的状态,其关键用处是在对话过程中帮助理解用户意图,如以下所描述的。
[0107] 会话对话内容模块1003连同语言分析器1006、特定于领域的命名实体识别器1007、特定于领域的上下文和意图分析器1008、基于个性化的意图分析器1009、特定于领域的图形引擎1010以及特定于应用的属性搜索引擎1011(所有这些在以下更具体地描述)一起处理用户输入,以便向查询执行引擎1004返回标准。查询执行引擎1004使用该标准来执行任何可用的信息和内容源的搜索,以返回结果集合。
[0108] 响应转码引擎1005将结果集合分派给用户以供消费,例如,在用户正在通过其进行交互的设备中。如果设备是没有显示约束的平板设备,则本发明的实施例可以利用显示器来显示思想上类似于图7、6、9和8的连接的图形演示,用户能与其交互来表达意图。在诸如智能电话的显示受限的设备中,响应转码引擎1005可以用文本和/或语音做出响应(利用标准的文本语音引擎)。
[0109] 虽然图10是显示用于特定领域的模块的对话体系结构,但是本实施例是能够接受用户输入并进行其中用户意图可以跨领域的对话的对话界面。在本发明的实施例中,这是通过具有多个图10中示出的特定于领域的体系结构的实例并且跨领域对意图的权重进行评分以确定用户意图来实现。这种评分机制还用于隐含地确定对话主题切换(例如,在娱乐信息检索会话的过程中,用户可能只说:“我饿了”)。
[0110] 图11说明本发明实施例的操作的简化的流程图。首先,用户的语音输入被语音识别引擎转换成文本1101。该输入然后被分解成意图、实体和属性1102。这个过程得到来自之前对话状态的信息的帮助1103。分解成意图、实体和属性使得系统能够产生对用户的响应1104。而且,对话状态1103被更新,以反映当前用户输入的修改以及任何相关返回的响应信息。
[0111] 图12更详细地说明控制流程。首先,用户的语音作为文本被输入到过程1201。在接收到作为文本的用户输入时,发生查询执行协调1202。查询执行协调1202负责用户输入的分解以理解用户的输入。查询执行协调1202利用解析用户输入并生成解析树的语言分析1203。查询执行协调1202还利用对话状态的维护和更新1208。解析树以及任何相关的对话状态值被传递给执行意图分析1204、实体分析1205和属性分析1206的模块。这些分析过程并发地工作,因为这三个分析步骤的顺序处理可能是不可能的。例如,在用户输入的一些情况下,实体的识别可能需要意图的识别,并且反之亦然。这些相互的依赖只能通过多次经过相关模块的输入来解决,直到输入被完全地分析。一旦分解和分析完成,就产生对用户的响应1207。对话状态也被更新1208,以反映当前输入的修改和相关结果的返回。换句话说,某些语言元素(例如,口语/识别的单词和/或短语)与当前的对话会话相关联。
[0112] 再次参考图10,在一个说明性实施例中,会话对话内容模块1003连同语言分析器结合1006以及以下更详细描述的其它识别器模块、分析器模块和/或引擎一起执行结合图12提到的分析步骤以及将句子分解成其组成部分。语言分析器1006根据从用户输入中产生的文本创建解析树,并且其它的识别器模块、分析器模块和/或引擎在该解析树上操作,以确定组成部分。这些部分可以被广义地归类为(1)意图–用户的实际意图(诸如“找电影”、“播放歌曲”、“调到频道”、“响应电子邮件”等),(2)实体-描述或与意图相关联的名词或代词短语,及(3)属性–对实体的限定词,诸如“最近的”电影、“更少的”暴力等。其它组成部分类别也在本发明的范围之内。
[0113] 在以提供智能和有意义的对话为目标的情况下,意图是所有三种类别中最重要的。任何好的搜索引擎仅仅通过从句子中提取实体就能够相当好地执行信息检索任务–而无需理解语法或意图。例如,以下的用户询问:“我的女儿能和我看pulp fiction吗”-大多数搜索引擎会显示对pulp fiction的链接,这可能足以找到很可能通过遍历那个链接能得到的等级。但是在对话界面中,期望明显更高-系统理想地必须理解对应于电影等级以及它适合的年龄组的期望响应的意图(电影,等级)。退化到搜索引擎那种响应的对话界面响应从用户的角度看相当于系统的失败。当意图未知或不能清楚地辨别时,意图的确定,甚至更重要的,看起来接近人类响应的对用户问题的响应对于致力于比搜索引擎更接近人类交互的对话界面来说是很重要的方面。
[0114] 在这个例子中,尽管用户从来没有使用单词“等级”,但是系统基于以下更详细描述的一组规则和/或朴素贝叶斯分类器(naive Bayes classifier)根据单词“能…看”推断出用户正在寻找等级。同时,“我的女儿”可以被识别为属性。为了女儿看节目,必须满足若干个标准:节目时间、节目的可获得性以及“可看性”或等级。这种条件也可以被其它属性触发,诸如“儿子”,“女孩”,“男孩”等。在这种情况下,这些可以是用来查找等级或节目时间的基于规则的特定于领域的意图或者基于特定于领域的训练集合的朴素贝叶斯分类器评分。也可以存在用于由正在被观看的实体驱动的这些条件的可满足性的权重因子。
[0115] 意图分析器1008是分析意图并将意图分类到领域的特定于领域的模块,并且结合其它模块——包括特定于领域的实体识别器1007、基于用户的个人偏好将意图分类的基于个性化的意图分析器1009、以及特定于领域的图形引擎1010——一起工作。特定于属性的搜索引擎1011帮助识别属性,并且这些属性的权重影响它们限定的实体。
[0116] 在本发明的实施例中,意图分析器1008是规则驱动的意图识别器和/或具有监督训练的朴素贝叶斯分类器。规则和/或训练集合捕捉各个单词和单词集合如何与用户意图相关联。它以解析树、实体识别器输出和特定于属性的搜索引擎输出(以上和以下所讨论的)作为输入。在一些实现中,用户输入可以经过多个实体识别、属性识别和意图识别步骤,直到输入被完全解析。意图识别器破译句子的意图,并且同时解读意图的细微差别中的差异。例如,考虑“我想看电影Top Gun”与“我想看像Top Gun一样的电影”,解析树将会不同。这种差异帮助意图识别器来区分“像…一样”的含义。基于规则的识别,正如名字所暗示的,基于预定义的规则识别句子。预定义的规则特定于领域空间,例如,娱乐。但是,朴素贝叶斯分类器组件只需要训练数据集来识别意图。
[0117] 实体识别器1007利用以上提到的输入来识别用户输入中的实体。实体的例子是“我能看Tom Cruise的电影吗”中的“Tom Cruise”,或“Where Eagles Dare是什么时候发行的”中的“Where Eagles Dare”。在某些实现中,实体识别器1007可以是规则驱动的和/或贝叶斯分类器。例如,诸如名词和动名词的语言元素可以被指定为一组规则中的实体,或者关联可以在对贝叶斯分类器的监督训练过程期间产生。实体识别可以可选地包括对用户输入中的错误(诸如在语音文字转换识别中的错误)进行错误纠正或补偿。当输入在语音上与两个实体,例如newman和neuman,匹配时,则两者都被挑出作为可能的候选者。在一些实施例中,这两者之间的解析来自从用户输入的其余部分收集到的信息,其中实体之间的关系可以剔除其中一个可能性。将用户输入的子集归类为实体只是加权。可能存在如下情形,其中输入可以作为实体和作为属性这两者被评分。在许多情况下,由于随着用户输入的后续处理句子语义变得更加清晰,因此这些歧义得以解决。在某些实施例中,用于解析的组件是实体关系图。在某些实现中,实体识别器1007的输出是要成为实体的输入子集的概率评分。
[0118] 特定于应用的属性搜索引擎1011识别诸如“最近的”、“近期的”,“像…一样”等的属性。这里,又一次,可能存在与实体的冲突。例如,“Tomorrow Never Dies”是实体(电影),并且,当在句子中使用时,可能存在歧义将“tomorrow”解释为属性。如通过实体关系图所确定的(这可能取决于输入的其它元素,例如,单词“电影”、“节目”、“演员”等),tomorrow作为属性的评分可能比“tomorrow”作为“Tomorrow Never Dies”的一部分的评分低。属性搜索引擎1011的输出是输入单词的概率评分,类似于实体识别器1007输出的概率评分。
[0119] 语言分析器1006在体系结构中是可插拔模块,以使得系统能够支持多种语言。尽管对用户输入的语义的理解不限于语言分析器1006自身,但是诸如对话上下文模块1003或图形引擎1010的体系结构的核心模块是语言无关的。如前面所提到的,除了句子分析和执行诸如将代词关联到其主语/宾语等任务之外,语言模块自身不能做得更多。(“在近期的Daniel Craig电影的OST中的Led Zeppelin歌曲…谁演唱的它?”),单独地跨交流关联代词是无效的。是与会话对话上下文模块1003的交互使得能够如下地跨交流进行代词的解析:
[0120] Q1:谁在新的star wars中扮演obi-wan Kenobi?
[0121] A1:Ewan McGregor
[0122] Q2:他与Scarlet Johansson的电影有哪些?
[0123] 尽管乍看起来对话会话上下文可能像是对最后一个或多个活动实体的简单状态维护,但是下面的例子示出了对话会话上下文中潜在的复杂性:
[0124] Q1:谁在Kramer vs.Kramer中扮演主角?
[0125] A1:Meryl Streep和Dustin Hoffman
[0126] Q2:他的更多电影有哪些?
[0127] A2:这里是一些Dustin Hoffman的电影…[Dustin Hoffman电影列表]
[0128] Q3:她的更多电影有哪些?
[0129] A3:[如果有的话,列出电影列表]
[0130] Q4:他的早期电影有哪些?
[0131] A4:[如果有的话,列出电影列表]
[0132] Q5:她的近期电影有哪些?
[0133] A5:[如果有的话,列出电影列表]
[0134] Q6:在最近过去的时间里他们两人再次表演过吗?
[0135] A6:[如果有的话,列出电影列表]
[0136] Q7:他们两人到底曾经再次表演过吗?
[0137] 在以上例子中,实体Meryl Streep和Dustin Hoffman被间接地在六个问题中引用,有时一起并且有时分开。以上例子还说明了本发明实施例与围绕中心主题进行探索式交流的简单请求响应系统的区别。本实施例不仅解决了交流中的歧义,它们还同时促进了与对对话中很早以前提到的实体和/或意图的隐含引用的探索式交流–那些在丰富的人类交互中自然而然所做的一些事情。在某些实施例中,这是通过语言链接元素的识别实现的,其中语言链接元素是将当前用户输入链接到之前用户输入和/或系统响应的单词和/或短语。参考上面提供的例子,代词“他的”、“她的”以及“他们”是将当前用户输入链接到之前用户输入和/或系统响应的单词。其它代词以及语法虚词也可以充当语言链接元素。
[0138] 用户在后面的问题中使用的特定单词或短语是否是对之前输入中提到的实体(或之前输入的一些其它部分)的合适的或适当的链接是通过检查之前实体的属性和潜在链接元素的属性确定的。例如,“他的”是对上面例子中Dustin Hoffman的合适的链接,因为Dustin Hoffman是男士并且“他的”是男性代词。此外,“他的”是物主代词,这是适当的,因为用户在引用其中Dsutin Hoffman出现的电影。
[0139] 以下例子说明用户引用甚至没有在之前交流中明确指出的实体(面向隐含连接的约束)。换句话说,用户从来没有识别作为对话状态的一部分被保存的实体。
[0140] Q1:哪个节目里有那个提到基于非碳生命形式的可能性的有生理缺陷的科学家?[0141] A1:那是Stephen Hawking的关于外星人的发现渠道的节目。
[0142] Q2:他在David Attenborough制作的另一个节目中吗?
[0143] 在另一个对话状态维护不限于只有实体及其属性的例子中,系统可以跨对话交流维护意图的状态,如下所示:
[0144] Q1:“我的女儿能和我看pulp fiction吗?”
[0145] A1:Quentin Tarantino的pulp fiction
[0146] 由于图像暴力和裸露被评为R级。
[0147] Q2:他的其它电影怎样?
[0148] A2:它们都被评为R级–Reservoir Dogs,Jackie Brown,Kill Bill,Death Proof。
[0149] 在这个例子中,除了维护实体“Quentin Tarantino”的状态使得系统能够在Q2中理解对他(以“他的”的形式)的代词引用之外,系统还跨交流跟踪用户意图-用户意图是“等级”。同样,系统同时维护“Quentin Taratino”和“等级”意图的决定来自于规则和/或贝叶斯分类器训练集合。因此,本文所公开的技术使得能够对多个意图进行保存和使用。在这样的实现中,意图集合将被作为一组具有权重的意图传递。取决于规则和/或贝叶斯分类器的输出,系统可以选择在会话过程中保存所有的意图(和/或实体、属性等),但是只可以使用对特定输入评分最高的一个意图。因此,在对话交流中累积的相对较早的意图可能在该对话中很晚才应用。以这种方式维护状态促进了如A2中的简洁和直接的响应,几乎与人类的交互相配。
[0150] 在意图分析器1008和实体识别器1007与基于个性化的意图分析器1009密切协同工作的情况下,以上说明的直接响应是可能的。这些模块都受到特定于应用的属性搜索引擎1011的帮助,其帮助确定相关的属性(例如,最近的、较少的暴力、更多的动作)并且给它们分配权重。因此,来自语音到文本引擎1002的用户输入交流将被协同工作的模块、分析器和引擎(查询执行引擎1004起协调作用)处理,并且将产生用户输入的一个或多个候选解释。例如问题:“你有关于Bombay bomb blast的电影Kay Kay Menon吗?”,系统可能有两种可替换的候选表示,其中一种候选表示使“Bombay”作为一个实体(有叫作Bombay的电影)和“bomb blast”作为另一个实体,另一种候选表示使“Bombay bomb blast”作为另一个中的单个实体。系统然后通过进行与用户的对话,根据作为演员的另一个识别的实体Kay Kay Menon的存在,试图在这些候选表示之间进行解析。在这种情况下,制定的问题取决于产生的歧义。在这个例子中,该演员实体是已知的,是所关联的电影实体具有歧义。因此,系统将询问关于电影实体的问题。系统具有一组表格,其被用作模型来形成问题以解决歧义。
[0151] 在一些例子中,歧义的解决可以在不进行对话的情况下通过已知用户的偏好来完成。例如,用户可能询问“今晚有sox比赛吗?”,虽然这个问题具有歧义部分–球队是Boston Red Sox还是Chicago White Sox的歧义–但是如果系统意识到用户的偏好是Red Sox,那么如果那天晚上有一场Red Sox的比赛的话,响应可以针对显示Red Sox的比赛时间表。在其中存在多个跨领域的匹配的情况下,结果产生较高整体信心分值的领域匹配将胜出。当适用时,也可以基于查询的性质做出结果的个性化。例如,如果用户声明:“给我显示今晚的Tom Cruise的电影”,那么这个查询不应该应用个性化,而是只返回Tom Cruise的最近的电影。但是,如果用户声明:“给我显示今晚的体育运动”,则系统应当应用个性化并基于他的明确偏好或从用户活动信息的各种来源捕获到的隐含动作来显示已知该用户感兴趣的体育运动和比赛。
[0152] 用户偏好签名可以由系统利用已知的用于发现和存储这种用户偏好信息的技术来提供。例如,在于2010年8月10日发布的标题为Methods and Systems for Selecting and Presenting Content Based on Learned Periodicity of User Content Selections的美国专利No.7,774,294、于2010年11月16日发布的标题为Methods and Systems for Selecting and Presenting Content on a First System Based on User Preferences Learned on a Second System的美国专利No.7,835,998、于2008年12月2日发布的标题为User Interface Methods and Systems for Selecting and Presenting Content Based on User Navigation and Selection Actions Associated with the Content的美国专利No.7,461,061以及于2012年2月7日发布的标题为Methods and Systems for Ordering Content Items According to Learned User Preferences的美国专利No.8,112,454中阐述的方法和系统可以与本文所公开的技术一起使用,其中每个专利都通过引用被结合于此。但是,用户偏好签名和/或信息的使用不限于在所结合的应用中阐述的技术。
[0153] 关系或连接引擎1010是起理解用户输入以提供针对性响应作用的模块之一。该关系引擎可以以多种方式实现,图形数据结构是其中一个例子,使得我们可以通过名称图形引擎来调用关系引擎。图形引擎在已知实体之间加权连接的背景下评估用户输入。
[0154] 显示图形引擎重要性的一种实施例通过以下例子说明,其中用户意图是明确知道的。如果用户简单地询问“在Tony Montana电影中由Michelle Pfeiffer扮演的是什么角色?”,系统知道用户的意图(单词角色及其在句子中的使用可用来推断用户想知道Michelle Pfeiffer在一些地方扮演的人物)并且必须抓住事实:命名的实体Tony Montana可以是名为Tony Montana的演员或者是电影Scanface的主要人物的名字。在这个例子中图形引擎轻易能够消除歧义,因为对这两个Tony Montana实体分别与Michelle Pfeiffer实体之间的路径的快速分析揭示了演员Tony Montana从未与Michelle Pfeiffer合作过,而电影Scarface(关于人物Tony Montana)由Michelle Pfeiffer主演。因此,系统将得出结论,它可以安全地忽略演员Tony Montana并且用户想知道由Michelle Pfeiffer在电影Scarface中扮演的人物的名字。
[0155] 在另一种实施例中,当尽管存在实体识别器1007已计算出用户指定的实体的事实,但是系统仍不能确定用户意图时,图形引擎1010可以帮助。这通过以下例子进行说明,其中用户意图不能被推断出或者当用户意图的信心分值低于阈值时。在这种情形中,对话系统可以采取两种说明性策略来获得用户的特定意图。在一些实施例中,系统根据用户的话语确定最重要的关键词并且将每个结果候选当作文档,基于每个关键词的相关性计算每个文档的相关分值,并且将上面的几个文档呈现给用户以便他细读。这种方法类似于web搜索引擎。在其它实施例中,系统对用户承认它不能处理用户的请求或者它收集到的信息是不够的,从而提示用户提供更多的信息或后续的查询。
[0156] 但是,当从用户的角度考虑响应时,哪种方法都不是完全令人满意的。第一种策略,其看不到关键词匹配,这通常会看起来是完全机械的。第二种方法,在它以类似人类的方式要求用户提供更多的信息以弥补它不能计算特定用户意图的事实时,试图像人类一样。但是,在用户明确指定与所期望的用户意图有关的一个或多个其它实体的情况下,如果系统看起来像没有试图利用用户话语中明确指出的实体进行回答,则系统看起来是无能的。
[0157] 在某些实现中,只要实体识别已成功就采用第三种策略(即使当特定的用户意图计算失败时)。注意,实体识别计算在大多数情况下是成功的,尤其当用户在他的话语中命名或给出关于实体的很好的线索时,通常就是这种情况。
[0158] 策略如下:
[0159] 1.考虑对应于所涉及的信息库的实体关系图。在这个图中,实体是节点并且关系是边。这种包括实体/节点和关系/边的映射可以包括基于与被映射的实体相关联的信息和元数据的一对一、一对多和多对多映射。
[0160] 2.实体/节点具有来自有限和明确定义的类型集合的类型。
[0161] 3.由于实体识别是成功的(例如,根据早期的交互),我们考虑以下情况:
[0162] a.目前识别的实体数量是0:在这种情况下,系统利用识别出的来自用户的信息基于响应模板从一组固定响应中给出一个响应。模板选择是基于规则和/或贝叶斯分类器决定。
[0163] b.识别的实体数量是1:假设实体标识符是A并且实体的类型是B,并且我们知道A能包括在其中的所有不同边/关系类型的有限集合S。在这种情况下,采用本文所阐述技术的系统(“IR系统”)说出和/或显示基于A、B和S从可应用模板响应产生的人类使用的多模式响应模板T(A,B,S)(human-consumption multi-modal response template T(A,B,S))。模板响应基于构成有限明确定义的集合的所有可能的节点类型和边类型的先验知识,选自一组手动构造的模板响应。响应和IR系统被设计成允许用户利用触摸界面甚至声音选择关于A的更多信息和实体。
[0164] c.识别的边类型的数量是2:在这种情况下,假设这两个实体节点分别具有标识符A,A',类型B,B',并且具有边-类型集合S,S'。
[0165] 如果这两个实体节点之间的边距离大于某个之前决定的阈值k,则IR系统适当地采用并交付(经语音和/或显示器)相应的两个独立的人类使用的多模式响应模板T(A,B,S)和T(A',B',S')。
[0166] 如果边缘距离不大于k,则IR系统选择在A和A’之间的最短的边长度路径。如果在用户话语中存在可用线索,则IR系统可能更偏向一些最短的路径,而不是其它的。假设在所选择的表示为A=A1,A2,A3,…Ak'=A'的最短路径中存在k'个节点,其中k'
[0167] d.识别的边类型的数量是R>=3:在这种情况下,IR系统简单地计算K个最大的部分C1,C2,…Ck,其中每个部分Ci使得Ci中的每个实体节点A都处于距离Ci的至少另一个节点A'不超过k条边的距离。对于每个Ci,IR系统类似于以上的c.选择适当的人类使用的多模式响应模板的代表性序列并且基于用于每个部分的响应模板序列构造响应。
[0168] 这种产生响应的方法被认为是更人性化,因为它具有向用户展示的能力:在识别的实体的帮助下,对于用户检索信息的目标,它给用户呈现的响应使得它与前两个策略相比可能更容易。图7、6、9和8说明所公开技术的示例实现。
[0169] 在某些实现中,以上阐述的技术还用于重置全部或部分的对话状态值。例如,假设系统根据用户输入和系统响应已保持某些实体和/或属性。当用户提供后续的输入时,本文所公开的技术使得新的输入能够针对所保持的值进行评估。就图形模型而言,如果在实体/关系图中发现后续输入的语言元素被转移得离所保持的信息(也在该图中)太远,则可以推断用户的后续意图已经从前一个改变。在这种情况下,当执行后续的搜索时,较早保持的信息可以被重置和/忽略。
[0170] 更进一步地,本发明的实施例可以识别用户提供了缺少实体、属性或关系信息的后续输入,但是该输入是对较早系统响应的适当响应。例如,实现本文所阐述技术的系统可以呈现一组电影作为对第一用户输入的响应。然后,用户可以回应她对任何呈现的电影都不感兴趣。在这种情况下,系统将保持各种对话状态值并且作进一步的尝试来满足用户的之前请求(通过例如请求关于所期望的电影类型的附加信息或请求能更好地聚焦搜索的附加信息,诸如演员的名字,题材等)。
[0171] 在前面的描述中,某些步骤或过程可以在特定的服务器上或作为特定引擎的一部分来执行。这些描述仅仅是说明性的,因为具体的步骤可以在各种硬件设备上执行,包括但不限于,服务器系统和/或移动设备。类似地,特定步骤在哪里执行的划分可以变化,应当理解,没有划分或不同的划分也在本发明的范围之内。此外,用于描述计算机系统处理的“分析器”、“模块”、“引擎”和/或其它术语的使用是可以互换的并且是表示其中能够执行功能的逻辑或电路系统。
[0172] 本文公开的技术和系统可以实现为与计算机系统或计算机化的电子设备使用的计算机程序产品。这种实现可以包括一系列的计算机指令或逻辑,这些指令或逻辑或者固定在有形介质上,诸如计算机可读介质(例如,盘、CD-ROM、ROM、闪存存储器或其它存储器或固定盘),或者可以经诸如通过介质连接到网络的通信适配器之类的调制解调器或其它接口设备发送到计算机系统或设备。
[0173] 介质可以是有形介质(例如,光学或模拟通信线路)或利用无线技术(例如,WiFi、蜂窝、微波、红外线或其它传输技术)实现的介质。该一系列计算机指令体现本文所描述的关于该系统的至少一部分功能。本领域技术人员应当理解,这种计算机指令可以用与多种计算机体系结构或操作系统使用的多种编程语言编写。
[0174] 此外,这些指令可以存储在任何有形的存储器设备中,诸如半导体、磁、光或其它存储器设备,并且可以利用任何通信技术进行传输,诸如光、红外、微波或其它传输技术。
[0175] 可以预期,这种计算机程序产品可以发布为具有伴随的打印或电子文档(例如,压缩打包软件)的可拆卸介质、用计算机系统(例如,在系统ROM或固定盘上)预加载、或通过网络(例如,因特网或万维网)从服务器或电子公告板中发布。当然,本发明的一些实施例可以实现为软件(例如,计算机程序产品)和硬件两者的组合。本发明还有的其它实施例完全实现为硬件、或完全实现为软件(例如,计算机程序产品)。