用于标识多个字符串中的对话的方法和装置制造方法
【专利摘要】用于标识多个段字符串中的对话的技术包括至少部分基于连续的字符串之间的时间间距、从与用户的第一联系人关联的第一多个字符串确定第一对话部分和第二对话部分。第一对话部分(片段)包括第一多个字符串中的多个字符串;并且第二片段包括第一多个字符串中的不同的多个字符串。确定用于第一片段的第一语义内容和用于第二片段的第二语义内容。至少部分地基于第一语义内容与第二语义内容的相似度确定是否将第一片段和第二片段合并成包括第一片段的第一对话。
【专利说明】用于标识多个字符串中的对话的方法和装置
【背景技术】
[0001 ] 服务提供商和设备制造商(例如无线、蜂窝等)在例如通过提供有吸引力的网络服务来向消费者递送价值和便利上不断受到挑战。包括电子邮件(电子邮件)、即时消息(頂)、短消息服务(SMS)和社交网络服务在内的一类很流行的服务允许用户相互交换消息。通常按照用户与之交换消息的联系人和发送或者递送消息的时间来组织消息。在一些境况中,用户可以偏好于基于讨论主题对来自联系人的多个消息分组,而这些服务中的许多服务未提供这样的选项。实际上,利用具有对消息的字符限制并且无主题行的服务、比如SMS和社交联网服务,难以断定个别消息的主题。
【发明内容】
[0002]因此,需要一种用于标识多个字符串中的对话的方式。
[0003]根据一个实施方式,一种方法包括基于连续的字符串之间的时间间距,从与用户的第一联系人关联的第一多个字符串确定第一对话部分和不同的第二对话部分,所述第一对话部分包括所述第一多个字符串中的多个字符串,所述第二对话部分包括所述第一多个字符串中的不同的多个字符串。该方法还包括确定用于第一对话部分的第一语义内容和用于第二对话部分的第二语义内容。该方法还包括至少部分地基于第一语义内容与第二语义内容的相似度来确定是否将第一对话部分和第二对话部分合并成包括第一对话部分的第一对话。
[0004]根据另一实施方式,一种方法包括促进访问至少一个接口,该至少一个接口被配置为允许访问至少一个服务,该至少一个服务被配置为执行上述方法中的所有或者部分方法。
[0005]根据另一实施方式,一种装置包括至少一个处理器和至少一个存储器,该至少一个存储器包括计算机程序代码,该至少一个存储器和该计算机程序代码被配置为与该至少一个处理器一起至少部分地使得该装置执行上述方法中的所有或者部分方法。
[0006]根据另一实施方式,一种计算机可读存储介质承载一个或者多个指令的一个或者多个序列,一个或者多个指令的一个或者多个序列在由一个或者多个处理器执行时至少部分地使装置执行上述方法中的所有或者部分方法。
[0007]根据另一实施方式,一种设备包括用于执行上述方法中的所有或者部分方法的装置。
[0008]仅通过举例说明多个【具体实施方式】和实现方式从以下具体描述中容易清楚本发明的更多其它方面、特征和优点,这些【具体实施方式】和实现方式包括设想的用于实现本发明的最佳实施方式。本发明也能够有其它和不同实施方式并且可以在各种明显方面修改它的若干细节而都未脱离本发明的精神实质和范围。因而,附图和描述将视为在性质上为示例而非限制。
【专利附图】
【附图说明】[0009]在附图的各图中通过示例而非通过限制来举例说明本发明的实施方式:
[0010]图1A是根据一个实施方式的能够标识多个短文本串中的对话的系统的图;
[0011]图1B是根据一个实施方式的图1A的系统的数据流框架的图;
[0012]图2A是根据一个实施方式的示例性文本串主题拓扑的图;
[0013]图2B是根据一个实施方式的词汇表和主题数据结构的图;
[0014]图2C是根据一个实施方式的用户文本串数据结构的图;
[0015]图3A是根据一个实施方式的用于标识多个短文本串中的对话的客户端过程的流程图;
[0016]图3B是根据一个实施方式的在图3A的过程中的步骤的流程图;
[0017]图4A-4D是根据各种实施方式的在图3的过程中利用的用户接口的图;
[0018]图5是根据一个实施方式的用于标识多个短文本串中的对话的服务过程的流程图;
[0019]图6A-6B是根据一个实施方式的、比较根据一个实施方式标识的对话与人工定义的对话的图;
[0020]图7是可以用来实施本发明的一个实施方式的硬件的图;
[0021]图8是可以用来实施本发明的一个实施方式的芯片组的图;以及
[0022]图9是可以在本发明的一个实施方式中使用的移动终端(例如手持机)的图。
【具体实施方式】
[0023]公开了一种用于标识多个字符串中的对话的方法、装置和计算机程序的示例。在下文描述中,出于说明的目的,阐述了许多具体细节以便提供对本发明的实施方式的透彻理解。然而本领域技术人员清楚,无这些具体细节仍可实现或者可以用等效布置来实现本发明的实施方式。在其它实例中,以框图形式示出公知结构和设备以免不必要地模糊本发明的实施方式。
[0024]如这里所用,术语用户例如指代通过通信网络使用服务或者设备的实体,其中实体可以是个人或者组织。联系人例如指代服务的如下不同用户,用户通过服务与该不同用户通信。如这里所用,术语字符串指代任何数据,并且在示出的实施方式中,文本串指代从通过通信网络在用户的设备与用户的联系人的设备之间发送的任何类型的消息得出的字符序列。例如具有关联的发送或者递送或者接收时间的任何消息可以用作文本串的来源,这些消息包括有字符限制并且无主题行元数据的电子邮件和消息,比如SMS消息、IM消息和向社交网络服务发表的评论以及其它消息或者某一组合。从有字符限制的来源得出的字符串可以称为短文本串。对话例如指代如下一个或者多个文本或者其它字符串的汇集,该一个或者多个文本或者其它字符串被确定为在时间和主题上被聚类并且例如与用户的一个联系人和与汇集的文本串关联的任何内容关联。虽然关于在移动终端交换的SMS消息描述各种实施方式,但是设想这里描述的方式可以与一种或者多种类型的消息中的任何消息内的其它文本串来源一起单独地或者以任何组合方式使用,所述消息是在通信网络上的移动终端或者固定节点处交换的。
[0025]图1是根据一个实施方式的能够标识多个短文本串中的对话的系统100的图。为了方便而称为用户A至用户M的、数目为M的用户分别运用用户设备(UE)IOla至IOlm (下文统称为UE101)以各自访问网络服务110以及由省略号指示的并且在下文中统称为网络服务110的其它服务。在一些实施方式中,服务110与UElOl上的服务专属客户端过程117交互。在一些实施方式中,服务110与UElOl上的称为浏览器107的更通用万维网客户端过程交互。服务110中的每个服务通常包括用于保持与服务有关的数据的服务数据存储库114,该数据包括被称为用户简档数据的关于服务的每个用户的数据。
[0026]一些服务110基于时间统计量或者基于从个别消息推断的语义内容标识对话。尽管电子邮件提供主题行并且允许能够被挖掘语义内容的相当长的消息,但是在頂、SMS和社交联网评论中使用的短文本串未提供主题行和用于支持语义分析的充足文本。在多数情况下,任一条短消息都属于具体的对话,但是现有消息传送工具不能提供一种用于揭示这样的隐藏对话的有效组织方法。因此,未基于语义内容将用于这样的短文本串的消息组织成对话,并且可能按照时间统计量将若干不同对话混杂在一起。另外,可能将单个对话错误地表示为不同对话。现有的消息传送管理工具简单地根据时间、发送者/接收者或者内容来组织消息。检测一个对话中的短文本的线索并且将它们组织为对话可以帮助人们快速想起对话场景并且掌握核心内容。因此,包括一个或者多个具有短文本串的消息的现有消息组织方法是有缺陷的。
[0027]为了提供一种适合于IM、SMS和社交团体对话的创新的消息传送管理工具,提供了一种用于基于短文本的社交/时间属性和内容的主题相关度将短文本自动组织成有意义对话的机制和方法。图1的系统100引入了用于标识多个短文本串中的对话的能力。标识对话服务150确定适合于短文本串业务的语义词汇表和主题模型或者确定模型的一个或者多个参数,以基于时间聚类和语义相似度或者某一组合而从短文本串形成对话。在短文本词汇表数据存储库数据结构154中存储词汇表和主题模型。标识对话客户端过程152监控在用户设备、例如在UElOlm处与一个或者多个服务110交换的消息,提取包括一个或者多个短文本串的文本串并且至少部分地基于语义词汇表和主题模型和语义相似度将那些文本串和任何关联内容组织成对话。标识对话客户端152在一些实施方式中也确定用于对话的标签,并且通过直接生成用户接口或者通过服务客户端117或者通过浏览器107来将对话信息与任何标签一起呈现给UElOlm的用户。在一些实施方式中,服务110包括标识对话代理156,其参与服务110与标识对话服务150之间的交互,例如以便获得标识对话客户端152以用于安装于客户端117中。
[0028]虽然出于示例的目的而表示为在连接到网络105的节点的特定布置中的整体块,但是在其它实施方式中,按不同顺序布置一个或者多个过程或者数据结构或者其一部分。例如,服务150例如在云计算布置中具有客户端152的功能中的一些或者所有功能。
[0029]如图1A中所示,系统100包括用户设备(UE) 101,该UE具有经由通信网络105的与服务110和标识对话服务150的连通。举例而言,系统100的通信网络105包括一个或者多个网络、比如数据网络(未示出)、无线网络(未示出)、电话网络(未示出)或者其任何组合。设想数据网络可以是任何局域网(LAN)、城域网(MAN)、广域网(WAN)、公共数据网(例如因特网)、短程无线网络或者任何其它适当分组交换网络、比如商业上拥有的专有分组交换网络如专有线缆或者光纤网络等或者其任何组合。此外,无线网络可以例如是蜂窝网络并且可以运用包括全球演进增强数据速率(EDGE)、通用分组无线电服务(GPRS)、全球移动通信系统(GSM)、网际协议多媒体子系统(MS)、通用移动电信系统(UMTS)等的各种技术以及任何其它适当无线介质、例如全球微波接入互操作性(WiMAX)、长期演进(LTE)网络、码分多址(CDMA)、宽带码分多址(WCDMA)、无线保真(WiFi)、无线LAN (WLAN)、蓝牙?、网际协议(IP)数据播送、卫星、移动自组织网络(MANET)等或者其任何组合。
[0030]UElOl可以是任何类型的移动终端、固定终端或者便携式终端,该终端包括移动手持机、站、单元、设备、多媒体计算机、多媒体写字板、因特网节点、通信器、桌面型计算机、膝上型计算机、笔记本计算机、上网本计算机、写字板计算机、个人通信系统(PCS)设备、个人导航设备、个人数字助理(PDA)、音频/视频播放器、数字相机/可携式摄像机、定位设备、电视接收器、无线电广播接收器、电子书设备、游戏设备或者其任何组合——包括这些设备的附件和外设——或者其任何组合。也设想UElOl可以支持与用户的任何类型的接口(比如“可佩戴”电路装置等)。在一些实施方式中,UElOl中的一个或者多个UE包括情境引擎103,这些情境引擎确定UElOl的当前环境,比如设备标识符、安装的装备、当前时间、与网络105的当前连通(包括信号强度和噪声电平)、功率电平以及当前执行的过程。
[0031]举例而言,UElOl使用公知的、新型或者仍在开发的协议来相互通信并且与通信网络105的其它部件通信。在本文中,协议包括定义通信网络105内的网络节点如何基于通过通信链路发送的信息相互交互的规则集合。协议在每个节点内的不同操作层有效,并且这些操作层从生成和接收各种类型的物理信号到选择用于传送那些信号的链路到那些信号指示的信息的格式、到标识在计算机系统上执行的哪个软件应用发送或者接收信息是有效的。在开放系统互连(OSI)参考模型中描述用于通过网络交换信息的在概念上不同的协议层。
[0032]通常通过交换离散数据分组来实现网络节点之间的通信。每个分组通常包括(I)与特定协议关联的报头信息和(2)净荷信息,该净荷信息跟随报头信息并且包含可以独立于该特定协议来处理的信息。在一些协议中,分组包括(3)尾部信息,该尾部信息跟随净荷并且指示净荷信息的结束。报头包括如下信息,比如分组的源、分组的目的地、净荷的长度和协议所使用的其它特性。用于特定协议的净荷中的数据经常包括用于与OSI参考模型的不同高层关联的不同协议的报头和净荷。用于特定协议的报头通常指示用于它的净荷中所含下一协议的类型。认为高层协议封装于低层协议中。在跨越多个异构网络(比如因特网)的分组中包括的报头通常包括如OSI参考模型定义的物理(第I层)报头、数据链路(第2层)报头、网络间(第3层)报头和传送(第4层)报头以及各种应用层(第5层、第4层和第7层)报头。
[0033]在各种设备上执行的过程经常使用广泛已知和使用的网络通信的客户端-服务器模型来通信。根据客户端-服务器模型,客户端过程向服务器过程发送包括请求在内的一个或者多个数据分组的消息,并且服务器过程通过提供服务来进行响应。服务器过程也可以向客户端过程返回具有响应的消息。客户端过程和服务器过程经常在被称为主机的不同计算机设备上执行并且使用用于网络通信的一个或者多个协议而经由网络进行通信。术语“服务器”常规地用来指代提供服务的过程或者该过程在其上运行的主机。类似地,术语“客户端”常规地用来指代进行请求的过程或者该过程在其上运行的主机。如这里所用,除非根据上下文另有明示,术语“客户端”和“服务器”指代过程而非主机。此外,出于包括可靠性、可伸缩性和冗余性以及其它方面在内的原因,服务器所执行的过程可以被分解以作为多个过程而在多个主机(有时称为等级(tier))上运行。在连接到通信网络的大多数设备(称为节点)上可用的公知客户端过程是万维网客户端(称为“web浏览器”或者简称为“浏览器”),该万维网客户端通过根据超文本传送协议(HTTP)格式化的消息与提供网页的、被称为万维网(WWW)服务器的大量服务器中的任一个服务器交互。如图1所示,UElOl包括浏览器107。
[0034]在一个示例性实施方式中,通过关于时间序列的分级聚类将短文本串分组成下文称为片段的候选对话或者对话部分。其次,通过并入语义主题相关度测量来将片段合并到检测到的对话中,也称为标识的对话。而且,选择在主题模型中打分最高的主题的最有表示性的关键字以产生如下标签,该标签提供每个对话的核心内容的简洁概括。这些实施方式不仅根据不同联系人和时间来组织短文本消息而且自动检测相邻对话的边界,从而每个检测到的对话最可能与实际对话重合。
[0035]图1B是根据一个实施方式的图1A的系统的数据流框架的图。框架的主要部件包括监控的文本消息160、元数据提取模块172、社交分割模块174、时间聚类模块176、称为片段的有序候选对话162、片段文本提取模块180、基于主题的相关度测量模块186和片段合并模块188。基于主题的相关度测量模块186使用基于潜在狄利克雷分配(LDA)的主题模块192,LDA基于文本串的外部公共数据集合190。图1B的框架示出标识对话服务150和客户端152的组合功能而客户端152包括部件160至188并且服务150包括部件190和192。设想这些部件的功能可以在一个或者多个部件中被组合或者由等效功能的其它部件执行。
[0036]元数据提取模块172负责从文本消息提取发送/接收时间和发送者/接收者的标识符(ID),例如蜂窝电话号码或者用户姓名。社交分割模块174根据发送者/接收者的ID将来自一个或者多个服务的所有文本消息集合划分成子汇集,从而每个子汇集涵盖与具体联系人有关的所有对话。时间聚类模块176根据在与单个联系人的相邻文本消息之间的时间间隙将时间序列有序文本消息自动聚类成片段,以产生按照联系人164a、164b、164c至164m和时间排序的片段162。
[0037]片段文本提取模块180包括用于提供更长文本串以用于语义分析的词分割模块182和去除停用词模块184。
[0038]外部公共数据集合190是外部测试字符串的大型集合,这些外部测试字符串覆盖比如从如同twitter的网站汇集的许多日常生活方面的主题,以生成应用于片段文本以用于主题训练的主题模型。基于LDA的主题模块192从外部公共数据集合190提供在日常生活中频繁讨论的主题。将每个主题表示为来自词汇表的词语集合,这些词语后跟随有指示它们在涉及该主题的文本中的出现的概率。基于主题的相关度测量模块186以测量这里称为片段的相邻候选对话的语义相关度为目标。片段合并模块188通过组合相邻片段的时间相似度与主题相关度来测量在相邻片段之间的相关性。基于相关性的值,可以合并片段以形成自动检测到的对话。
[0039]在各种实施方式中,基于数据结构154中存储的词汇表和主题模型确定语义并且可以通过LDA或者任何其它方法来构造语义。例如在各种实施方式中,本领域公知的概率潜在语义编索引(PLSI)或者潜在狄利克雷分配(LDA)用来从文档集合中的词语推断主题。这样的方法可以用来从涉及网络服务消费者的日常境况的文档集合得出短文本串词语和主题。由于每个主题与某些相对充裕度中的一组词语关联,所以存在将主题与词语相关并且将子主题与更高级主题相关的拓扑。[0040]图2A是根据一个实施方式的示例性文本串主题拓扑200的图。该文本串主题拓扑是与在一个或者多个文本串中使用的主题和词语相比较的分级拓扑。在顶级或者根级是从许多用户聚集的公共文本串数据集合作为整体得出的文本串词汇表201。该文本串词汇表不同于其它词汇表,例如不同于从不同训练文档集合构造的生物或者文学或者语言语义词汇表。在根级以下是顶级类别203a至203i,这些顶级类别是各自涵盖一个或者多个子主题的顶级文本串主题,比如时间文本串、空间文本串、活动文本串。每个主题由规范名称和零个或者更多个同义词表示,该同义词包括不同语言中的相同名称,比如在顶级类别203a中的同义词204a和在顶级类别203i中的同义词204i。一个或者多个顶级类别可以包括一个或者多个下一级类别205a至205 j和205k至205L,每个下一级类别分别具有它们的对应同义词206a、206j、206k和206L。例如,时间文本串子类别包括当日时间、星期几、月的日期、月和季度。介于中间的级如果有则由省略号指示。在最深级,最深类别207a至207m和对应同义词208a至208m分别表示个别词语或者短语、比如周一、钟点、半点、四十五分、一月、夏天。个别词语可以出现于多个较高级类别中,例如周一出现于周和非周末类别中。
[0041]在一些实施方式中、例如在基于LDA的实施方式中,在根级文本串词汇表201以下仅有两级类别,例如主题和词语。每个主题由词语集合定义,每个词语有特定出现百分比范围。在这些实施方式中的一些实施方式中,V个词语的词汇表由V维向量表不;并且每个词语由在除了与该特定词语对应的位置之外的所有位置均为零的V维向量表示。诸如冠词、前置词、代词和公用词语的低意义的词语被忽略。Z个主题中的每个主题由V维向量表示,该V维向量具有通过相应词语位置中的百分比表示的主题中的每个词语的相对出现概率。所有主题由VXZ矩阵表示。
[0042]当在文档中找到来自文本串词汇表的词语时,该词语被认为是包括该词语的不同主题的混合,具有例如使用已知的LDA方法基于文档中的词语的百分比而分配给每个主题的百分比概率。作为结果,整个文档可以通过在文档中找到的具有分配给每个主题的概率度量的一组主题表示,例如,在向量的每个位置中具有变化概率的Z维向量。这样的向量在这里被称为标记。可以通过计算表示两个文档的两个Z维向量(标记)的相似度(比如对应项的乘积之和)来比较这些文档。备选地或者附加地,可以计算两个文档之间的距离度量,该距离度量随着两个标记的相似性变小而增加。可以使用任何距离度量,比如零阶距离(具有最大差异的坐标的绝对值)、1阶距离(Z个差异的绝对值之和)、二阶距离(Z个差异的平方之和一等效于欧几里得距离)、三阶距离(绝对值的立方之和)等。来自两个文档的标记越相似或者在这些标记之间的距离越小,文档彼此就越相关。在下文描述中,假设已经定义并且在文本串词汇表数据结构中存储例如如图2中所示的文本串词汇表。一个或者多个消息的集合的文本串由文本串标记表示。消息集合的文本串标记越相似,例如它们之间的距离测量越小,一个消息集合就与另一消息集合越相关。
[0043]在一些实施方式中,词汇表数据结构154是VX (Z+1)矩阵,其中前V个元素指示词汇表中的也称为关键字的每个词语;接下来的V个元素指示每个关键字在第一主题中的概率;接下来的V个元素指示在下一主题中的概率,等等。
[0044]在一些实施方式中,首先将数据集合划分成固定数目的人工选择的主题,例如包括体育、政治、商业、健康等的50个主题,并且应用LDA以确定关键字在每个人工选择的主题中的概率。在这些实施方式中的一些实施方式中,如图2B中所示那样存储词汇表。图2B是根据一个实施方式的词汇表和主题数据结构210的图。词汇表数据结构210包括用于每个主题的主题条目字段220、由省略号指示的其它主题,其在下文中统称为主题条目字段220。每个主题条目字段220包括第一关键字字段222a、第一关键字出现率(或者概率)字段224a、第二关键字字段222b、第二出现率字段224b以及由省略号指示的其它关键字和出现率字段。关键字字段222a、222b和由省略号指示的其它关键字字段在下文中称为关键字字段222。类似地,出现率字段224a、224b和由省略号指示的其它出现率字段在下文中称为比率字段224。在一些实施方式中,按从最高出现率到最低出现率的顺序将关键字字段222和关联的比率字段224包括在内。在一些实施方式中,个别主题由主题条目字段220在词汇表数据结构210中的顺序标识。在一些实施方式中,个别主题由具有最高比率的一个或者多个关键字标识。在一些实施方式中,主题由在向主题条目字段220中添加的另一字段中包括的人工提供的名称(例如体育)标识。
[0045]虽然出于示例的目的而在图2A中描绘并且接着在图2B中描述数据结构和字段为在特定布置中的整体块,但是在其它实施方式中,在连接到网络105的一个或者多个设备上的一个或者多个数据结构或者数据库上按不同顺序布置数据结构或者字段或者其一部分,或者省略一个或者多个字段,或者添加其它字段,或者以某一方式组合来改变数据结构。
[0046]在一些实施方式中,将文本串存储为标识转换客户端152所维护的用户文本串数据结构250中的有序片段162。图2C是根据一个实施方式的用户文本串数据结构250的图。用户文本串数据结构250包括用于用户的每个如下联系人的联系人条目字段260a、260b以及由省略号指示的其它联系人条目字段(下文统称为联系人条目字段260),该联系人的消息被监控。每个联系人条目字段260包括联系人标识符(ID)字段261和用于在处理期间标识的每个片段的片段字段270a、270b以及由省略号指示的其它片段字段(下文统称为片段字段270)。
[0047]每个片段字段270包括用于从通过一个服务100与联系人交换的一个消息中提取的每个文本串的时间戳字段262a、262b以及由省略号指示的其它时间戳字段(下文统称为时间戳字段262)。时间戳字段容纳如下数据,该数据指示如元数据提取模块172所确定的何时通过通信网络发送对应文本串。在一些实施方式中,针对在另一用户的UElOla的发送时间、在服务110的接收时间、在服务110的发送时间或者在UElOlm的接收时间之间的差异来校正时间戳。在一些实施方式中,忽略一个或者多个这样的时间差。
[0048]每个片段字段270包括用于从通过一个服务110与联系人交换的一个消息中提取的每个文本串的文本串字段264a、264b以及由省略号指示的其它文本串字段(下文统称为文本串字段264)。文本串字段264容纳指示从消息中提取的文本的数据。
[0049]每个片段字段274包括用于从通过一个服务110与联系人交换的一个消息中提取的每个文本串的服务数据字段266a、266b以及由省略号指示的其它服务数据字段(下文统称为服务数据字段266)。服务数据字段266容纳指示用来发送消息的服务的数据。在一些实施方式中,如果用于服务中的联系人的标识符不同于在字段261中指示的标识符,则月艮务数据字段266也指示该标识符。在一些实施方式中,所有文本串与单个服务相关联;并且省略服务数据字段266。
[0050]每个片段字段270包括用于从通过一个服务110与联系人交换的对应消息中提取的每个连续的文本串对的ΛT字段 268a、268b以及由省略号指示的其它Λ T字段(下文统称为Λ T字段268)。Λ T字段264容纳指示当前时间戳字段与下一时间戳字段之间的时间差的数据,例如Λ T268a指示在时间戳字段262a中指示的时间与在时间戳字段262b中指示的时间之间的时间差。在各种实施方式中,在联系人条目字段260中记录的最后一条消息的Λ T字段268为空或者省略最后一条消息的字段268。在一些实现方式中,按照需要,基于在连续的时间戳字段262中指示的时间确定时间差;并且针对每个消息省略AT字段268。
[0051]图3Α是根据一个实施方式的用于标识多个短文本串中的对话的客户端过程300的流程图。在一个实施方式中,标识对话客户端152执行过程300并且标识对话客户端152例如实施于如图8中所示的包括处理器和存储器的芯片组中或者实施于如图9中呈现的移动终端中。虽然在图3中以及在图3Β和图5中的后续流程图中按特定顺序将步骤不为整体块,但是在其它实施方式中,按不同顺序或者在时间上重叠、字符串行或者并行执行或者省略其一个或者多个步骤或者部分或者添加一个或者多个其它步骤或者在方式组合中改变过程。
[0052]在步骤301中,按联系人确定和隔离文本串。任何方法可以用来确定文本串。例如,标识对话客户端152监控通过多个服务110在UElOlm的用户M与其它UElOl的用户之间的消息业务(例如来自电子邮件消息的长或短文本串和来自即使消息传送消息的短文本串)、向一个或者多个社交网络服务发表的评论或者在邮件中的用户已经表明对它的喜欢的文本、关于与一个或多个联系人关联的照片或者其它内容的元数据,所述照片或者其它内容是向一个或者多个服务发表或者从一个或者多个服务下载的。因此在步骤301中,从一个或者多个即使消息传送消息、或者从一个或者多个短消息服务消息、或者从用于与第一联系人交换的内容的一个或者多个元数据字段、或者从某一组合中得出与第一联系人文本串关联的文本串。出于示例的目的,假设标识对话客户端模块在服务Iio的客户端117内并且仅标识通过服务110交换的消息中的对话。
[0053]步骤301在一些实施方式中包括按联系人隔离文本串。在一些实施方式中,步骤301包括确定用于同一联系人的多个联系人标识符,例如通过向用户M查询用户A在若干服务上的标识符,例如查询用户A的电子邮件地址、蜂窝电话号码、IM标识符和社交网络标识符。在仅监控一个服务内的消息的一些实施方式中,步骤301包括按服务110中的联系人ID隔离消息而不向用户提示任何输入。在一些实施方式中,考虑所有消息而不管联系人如何;并且跳过按联系人隔离。
[0054]在示例性实施方式中,在步骤301期间,针对数据结构250中的每个联系人条目字段260填充时间戳字段262、文本串字段264和服务数据字段266 (如果有的话),但是尚未划分成片段并且未必按时间增加的顺序排序。在一些实施方式中,步骤301由元数据提取模块172和社交分割模块174执行。例如在步骤301期间,根据发送者/接收者的姓名或者编号的元数据将SMS消息分类成多组。每组包含与指定的联系人交换的所有SMS消息。这一实施方式保证在不同联系人之间的对话不重叠。
[0055]在步骤303中,按时间对用于每个联系人的文本串排序。例如,按时间戳字段262中的数据所指示的值增加的顺序对每个联系人条目字段260中的字段排序。在一些实施方式中,步骤303包括在按时间排序之后确定连续的时间戳字段262所指示的时间之间的时间差,例如时间戳字段262a中指示的时间和时间戳字段262b中指示的时间之间的时间差。尚未执行按片段分离条目。
[0056]出于示例的目的,假设针对当前联系人有N个消息,这些消息具有对应时间戳tn,其中n=l,N。时间戳集合由符号T={tn,n=l,N}表示。将比如在Λ T字段268中存储的时间差的集合表示为DT= {DTn,n=l,N-1},其中DTn表示在tn与t(n+l)之间的时间差。
[0057]在步骤305期间,在一个或者多个片段之中划分时间有序文本串,该一个或者多个片段是最终检测到的对话中的基于时间统计量的部分。在一个示例性实施方式中,对排序的SMS消息应用无监督聚类算法以根据在相邻文本串之间的时间间隙算出所有潜在片段(候选对话)。在这一流程路径结束时,对潜在的片段集合应用统计分析,以选择与实际对话部分尽可能近似的优化的片段集合。下文参照图3B更具体地描述步骤305。因此,步骤305包括基于在连续的文本串之间的时间间距,从与用户的第一联系人关联的第一多个文本串确定包括第一多个文本串中的多个文本串的第一对话部分(片段)和包括第一多个文本串中的不同多个文本串的不同第二对话部分(片段)。
[0058]图3B是根据一个实施方式的用于图3A的过程300中的步骤305的流程图。因此,过程350是步骤305的一个实施方式。在步骤351中,如上文描述的那样确定在相邻文本串之间的时间差DT。在步骤353中,确定并且按从最小到最大间隙大小的顺序排序数目为G的唯一间隙大小。排序的唯一间隙大小的集合由GS= {GSg, g=l, G}表示,其中GSg是第g个最小间隙大小。
[0059]起初,每个文本串被视为用于N个潜在片段的集合的单独的潜在片段。术语聚类用来指代在每个潜在片段中包括的文本串的时间戳集合。因此,步骤353包括确定初始聚
类集合。·
[0060]步骤355至367表示G个回合的循环,该循环基于不同间隙大小和关联的质量测量来计算聚类。
[0061 ] 在G个分级聚类回合之后,产生G+1个聚类集合,每个集合通常具有少于N个的聚类而在第G+1个聚类集合中具有所有聚类集合中的最少聚类。在步骤369中,评估G+1个聚类集合的质量测量以找到如下回合,该回合给予按照某一客观测量最优的聚类集合。来自该回合的聚类确定被组合成如下片段(例如对话部分)的文本串的时间戳,这些片段被考虑用于基于语义相似度的合并。
[0062]在步骤357中,取第k个最小间隙GSk作为用于对时间戳聚类的参考时间间隙。
[0063]在步骤359中,在相同聚类中接合以小于参考时间间隙的间隙间隔的文本串的时间戳。也就是说,在属于相同片段的任何相邻文本串之间的时间间隙等于或者小于参考时间间隙GSk,而在不同片段的边界上的文本串的相邻时间戳之间的间隙大于GSk。
[0064]出于示例的目的,每个回合由索引k指示,其中k=0,G ;并且k=0指示在第一回合之前的初始聚类。在第k个回合上的聚类数目由Jk给定,在该回合期间的每个聚类由符号Cjk表示,其中j=l,Jk,并且在第k个回合上的第j个聚类中的时间戳由以下表达式给定:
[0065]Cjk={tq, q=pjk, ρ jk+Qjk-1}(la)
[0066]其中pjk是在第k个回合上的第j个聚类中的第一时间戳,并且Qjk是在第k个回合上的第j个聚类中的时间戳的数目。在每个回合中的聚类集合由下式表示:
[0067]ROUNDk= (Cjk, j=l, Jk}(lb)[0068]起初k=0、JO=N并且QjO对于所有N个聚类均为1,因此:
[0069]CjO= {tq, q=j, j} = {tj}(2a)
[0070]并且因此:
[0071]ROUNDO= (CjO, j=l,N}(2b)
[0072]然后,在步骤359期间的聚类导致满足如下条件:在聚类内时间差小于或者等于参考间隙,即:
[0073]t (q+1) - tq 彡 GSk,其中对于所有 j, pjk ( q<pjk+Qjk-1 (3a)
[0074]并且在聚类之间时间差大于参考间隙,SP:
[0075]t (q+1) - tq>GSk,其中对于所有 j, q=pjk+Qjk-1(3b)
[0076]步骤361至365确定聚类的客观质量测量。根据统计学,最优聚类对应于在聚类间间距与聚类内紧密度之间的最佳均衡点。
[0077]在步骤361期间确定聚类间间距;并且在步骤363期间确定聚类内紧密度。例如,基于等式4确定聚类间间距;而基于等式5确定聚类内紧密度。
[0078]Separation (ROUNDk) = Σ I mean (Cjk) - mean (T) I(4)
[0079]j=l, Jk
[0080]Compact (ROUND) = Σ Σ | tq-mean (Cjk)(5) [0081]j=l, Jk q
[0082]其中mean表示如下函数,该函数确定以下括号中的时间戳的算术均值。
[0083]在步骤365中,基于聚类间间距和聚类内紧密度确定第k个回合的质量测量。随着聚类数目增加,在较低k值处,等式4中的Separation的值单调增加,而等式5中的Compact的值单调减少。因此,最优平衡点实现最佳聚类质量。实验表明归一化的Separation (例如等式6b中的S印)与归一化的Compact的指数变换(例如等式6c中的Scat)之和产生最佳种类识别准确度。因此,等式6a至6d针对每个回合定义效用或者质量函数Q。
[0084]MAX=Compact(ROUNDG)=Separation(R0UND0) (6a)
[0085]Sep(ROUNDk)=Separation(ROUNDk)/MAX(6b)
[0086]Scat (ROUNDk) = [Compact (ROUNDk)/MAX]α(6c)
[0087]Q(ROUNDk)=Scat(ROUNDk)+Sep(ROUNDk)(6d)
[0088]通过实验确定等式6c中的参数α的值。
[0089]在步骤367中确定是否已经尝试所有间隙大小,例如是否k=G。如果不是,例如如果k〈G,则控制回到步骤355以在下一回合中使用下一间隙大小作为参考来确定聚类。如果已经尝试所有间隙大小,则在步骤369中使用如下聚类来形成片段,该聚类给予质量函数Q的最佳值。步骤369包括在G+1个聚类回合之中对函数Q的聚类值质量排序并且选择最小的一个来表示片段。出于示例的目的,假设回合B对应于最佳混合,因为它满足等式7。
[0090]R0UNDB=arg mink=0; G[Q (ROUNDk) ] (7)
[0091]步骤369结束图3A中的步骤305。因此,已经将每个文本串分组成一个或者多个文本串的适当片段,例如候选对话部分。如片段字段270指示的那样,在用户文本串数据结构250中存储这一信息,例如作为每个片段中的文本串的第一个和最后一个时间戳。
[0092]然而,可以仅基于时间聚类将持续长时间跨度的对话分离成若干片段。已认识到,如果两个候选对话属于相同对话,则它们应当聚焦于相同主题。有利地,由于作为时间聚类的结果已经在片段中对短文本串进行分组,所以片段在文本上比每个个别文本串丰富得多,尤其是比个别短文本串更丰富。因此,语义分析更有效地适用于在每个片段中分组的这些文本串的组合文本。基于这一考虑,通过并入基于主题模型的语义分析来修正时间聚类的结果。
[0093]在步骤307中,确定相邻片段的语义相似度。步骤307包括从每个文本消息提取文本串。然后将提取的文本放在一起以形成用于每个时间聚类的片段。然后对每个片段应用词语分割和停用词去除这些基本自然语言处理(NLP)技术。应用基于大型外部数据集合的主题模型。下文参照图5中的标识对话服务150的过程更具体地描述主题模型的形成。因此,步骤307包括基于文本串库确定语义词汇表和主题。出于示例的目的,假设主题模型包括由Yz,z=l,Z表示的Z个主题。回顾Yz是用于上至V个关键字中的每个关键字的出现率的向量。因此,步骤307包括确定用于第一对话部分(片段)的第一语义内容和用于第二对话部分(片段)的第二语义内容。
[0094]在一个示例性实施方式中,在步骤307期间,比较从时间聚类获得的片段与主题模型的主题以形成主题相关度的向量。回顾在第k个回合上的聚类数目由Jk给出并且回合B提供最高质量的聚类,因此存在由符号dj,j=l,JB表示的用于当前联系人的JB个片段。用于第j个片段dj的第z个主题z=l,Z的相关度由rjz给出并且其是在片段dj和主题Yz中同时出现的词语的概率之和Prob,如等式8中所定义的。
【权利要求】
1.一种方法,包括: 至少部分地基于连续的字符串之间的时间间距,从至少部分地与用户的第一联系人关联的第一多个字符串确定第一对话部分和不同的第二对话部分,所述第一对话部分包括所述第一多个字符串中的多个字符串,所述第二对话部分包括所述第一多个字符串中的不同的多个字符串; 确定用于所述第一对话部分的第一语义内容和用于所述第二对话部分的第二语义内容;以及 至少部分地基于所述第一·语义内容与所述第二语义内容的相似度来确定是否将所述第一对话部分和所述第二对话部分合并成包括所述第一对话部分的第一对话。
2.根据权利要求1所述的方法,其中确定是否合并所述第一对话部分和所述第二对话部分还包括如果确定所述相似度超过相似度阈值则将所述第一对话部分和所述第二对话部分组合成所述第一对话。
3.根据权利要求1-2中的任一权利要求所述的方法,其中确定是否合并所述第一对话部分和所述第二对话部分还包括如果确定所述相似度未超过相似度阈值则将所述第二对话部分放入不同的第二对话中。
4.根据权利要求1-3中的任一权利要求所述的方法,还包括至少部分地基于用于所述第一语义内容的语义主题来确定用于所述第一对话的第一对话标签。
5.根据权利要求4所述的方法,还包括呈现指示所述第一对话标签的数据。
6.根据权利要求5所述的方法,还包括与所述第一对话标签关联地呈现指示所述第一对话部分的数据。
7.根据权利要求1-6中的任一权利要求所述的方法,其中从一个或者多个即时消息传送消息、或者一个或者多个短消息服务消息、或者用于与所述第一联系人交换的内容的一个或者多个元数据字段、或者某一组合中得出至少部分地与所述第一联系人关联的所述字符串。
8.根据权利要求1-7中的任一权利要求所述的方法,其中: 所述第一联系人是所述用户的多个联系人之一;以及 所述方法还包括呈现数据,所述数据指示针对所述用户的所述多个联系人中的每个联系人确定的对话的数目。
9.根据权利要求1-8中的任一权利要求所述的方法,其中: 所述第一对话是与所述第一联系人的多个对话之一;以及 所述方法还包括呈现数据,所述数据指示与所述第一联系人的所述多个对话中的每个对话。
10.根据权利要求1-9中的任一权利要求所述的方法,其中: 所述方法还包括基于字符串库来确定语义词汇表和主题;以及 确定所述第一语义内容和所述第二语义内容至少部分地基于所述语义词汇表和主题。
11.根据权利要求1-10中的任一权利要求所述的方法,其中至少部分地基于连续的字符串之间的时间间距来确定所述第一对话部分和所述第二对话部分还包括对所述时间间距执行分级聚类分析。
12.根据权利要求1-11中的任一权利要求所述的方法,其中确定是否合并所述第一对话部分和所述第二对话部分还包括至少部分地基于对连续的对话部分的语义内容的差异执行分级聚类分析来确定相似度阈值。
13.根据权利要求1-12中的任一权利要求所述的方法,其中确定是否合并所述第一对话部分和所述第二对话部分还包括至少部分地基于对相关值的差异执行分级聚类分析来确定相似度阈值,所述相关值基于连续的对话部分的语义内容差异和时间差异的组合。
14.一种方法,包括促进对至少一个接口的访问,所述至少一个接口被配置为允许访问至少一个服务,所述至少一个服务被配置为执行根据权利要求1-13中的任一权利要求所述的方法的一个或者多个步骤。
15.一种装置,包括: 至少一个处理器;以及 至少一个存储器,其包括用于一个或者多个程序的计算机程序代码, 所述至少一个存储器和所述计算机程序代码被配置为与所述至少一个处理器一起使得所述装置至少执行以下: 至少部分地基于连续的字符串之间的时间间距,从至少部分地与用户的第一联系人关联的第一多个字符串确定第一对话部分和不同的第二对话部分,所述第一对话部分包括所述第一多个字符串中的多个字符串,所述第二对话部分包括所述第一多个字符串中的不同的多个字符串; 确定用于所述第一对话部分的第一语义内容和用于所述第二对话部分的第二语义内容;以及 至少部分地基于所述第一语义内容与所述第二语义内容的相似度来确定是否将所述第一对话部分和所述第二对话 部分合并成包括所述第一对话部分的第一对话。
16.根据权利要求15所述的装置,其中确定是否合并所述第一对话部分和所述第二对话部分还包括如果确定所述相似度超过相似度阈值则将所述第一对话部分和所述第二对话部分组合成所述第一对话。
17.根据权利要求15-16中的任一权利要求所述的装置,其中确定是否合并所述第一对话部分和所述第二对话部分还包括如果确定所述相似度未超过相似度阈值则将所述第二对话部分放入不同的第二对话中。
18.根据权利要求15-17中的任一权利要求所述的装置,其中还使得所述装置至少部分地基于用于所述第一语义内容的语义主题来确定用于所述第一对话的第一对话标签。
19.根据权利要求18所述的装置,其中还使得所述装置呈现指示所述第一对话标签的数据。
20.根据权利要求19所述的装置,其中还使地所述装置与所述第一对话标签关联地呈现指示所述第一对话部分的数据。
21.根据权利要求15-20中的任一权利要求所述的装置,其中从一个或者多个即时消息传送消息、或者一个或者多个短消息服务消息、或者用于与所述第一联系人交换的内容的一个或者多个元数据字段、或者某一组合中得出至少部分地与所述第一联系人关联的所述字符串。
22.根据权利要求15-21中的任一权利要求所述的装置,其中: 所述第一联系人是所述用户的多个联系人之一;以及还使得所述装置呈现数据,所述数据指示针对所述用户的所述多个联系人中的每个联系人确定的对话的数目。
23.根据权利要求15-22中的任一权利要求所述的装置,其中: 所述第一对话是与所述第一联系人的多个对话之一;以及 还使得所述装置呈现数据,所述数据指示与所述第一联系人的所述多个对话中的每个对话。
24.根据权利要求15-23中的任一权利要求所述的装置,其中: 还使得所述装置基于字符串库来确定语义词汇表和主题;以及 确定所述第一语义内容和所述第二语义内容至少部分地基于所述语义词汇表和主题。
25.根据权利要求15-24中的任一权利要求所述的装置,其中所述装置是移动电话,所述移动电话还包括: 用户接口电路和用户接口软件,被配置为促进用户通过使用显示器来控制所述移动电话的至少一些功能并且被配置为对用户输入做出响应;以及 显示器和显示电路,被配置为显示所述移动电话的用户接口的至少一部分,所述显示器和显示电路被配置为促进用户控制所述移动电话的至少一些功能。
26.一种计算机可读存储介质,承载一个或者多个指令的一个或者多个序列,所述一个或者多个指令的所述一个或 者多个序列在由一个或者多个处理器执行时,使得装置执行根据权利要求1-14中的任一权利要求所述的方法的全部或者部分。
27.一种计算机程序产品,包括一个或者多个指令的一个或者多个序列,所述一个或者多个指令的所述一个或者多个序列在由一个或者多个处理器执行时,使得装置执行根据权利要求1-14中的任一权利要求所述的方法的全部或者部分。
28.一种设备,包括用于执行根据权利要求1-14中的任一权利要求所述的方法的装置。
【文档编号】H04W4/12GK103430578SQ201080070950
【公开日】2013年12月4日 申请日期:2010年10月27日 优先权日:2010年10月27日
【发明者】饶京海, 田继雷, 田野, 王冠 申请人:诺基亚公司