具体实施方式
本申请的实施例提出一种新的聚类方法,可以为待划分集合中的部分点设置指定结果属性,在运行聚类算法时将指定属性结果作为类别划分的约束条件,这样分析人员可以通过限制部分点的类别划分,对聚类结果直接施加影响,相比于更换聚类算法或修改聚类算法的参数,不仅能够更快的得到符合实际需求的聚类结果,而且得到的聚类结果质量更高,从而解决现有技术中存在的问题。
本申请的实施例可以运行在任何具有计算和存储能力的设备上,如手机、平板电脑、PC(Personal Computer,个人电脑)、笔记本、服务器等设备;还可以由运行在两个或两个以上设备的逻辑节点相互协同来实现本申请实施例中的各项功能。
本申请的实施例中,聚类方法的流程如图1所示。
步骤110,获取集合中部分点的指定结果属性。
本申请的实施例中,待划分集合中的点具有指定结果属性。指定结果属性用来限制点的类别划分结果,通常可以包括两种情形,第一种是某个类别的固定对象,即确定该点属于该类别;第二种是某个类别的排除对象,即确定该点不属于该类别。当然根据实际应用场景的需要,在上述两种情形中也可以只采用其中的一种。
分析人员可以在聚类分析的任意一个阶段来设置的集合中点的指定结果属性,本申请的实施例不做限定。例如,分析人员可以在尚未运行聚类算法时,即设置待划分集合中部分点的指定结果属性;也可以先运行聚类算法,在得到聚类结果后,再针对聚类结果设置集合中部分点的指定结果属性,用于下一次的聚类算法运行。
分析人员可以通过适合于所采用聚类算法的任意方式来设置的集合中点的指定结果属性,本申请的实施例不做限定。例如,在以数据表来记载集合中点的各种属性时,可以在数据表中增加指定结果属性,并由分析人员在要设置指定结果属性的点的行记录中,按照约定方式输入该点的指定结果属性。
在一些应用场景中,可以采用二维或三维的可视化图像来展现聚类分析中点的集合、或聚类分析结果。在这些应用场景中,分析人员可以借助于可视化图像直观、便于操作的优点,来输入点的指定结果属性。例如,分析人员可以在显示集合中点的可视化图像上,针对部分点输入器指定结果属性;再如,在通常需要进行多次聚类分析来得到符合需要的聚类结果的应用场景中,可以在某一次对待划分集合运行聚类算法运行完毕后,以可视化图像显示该次运行的聚类结果,由分析人员基于所显示的可视化图像上,来输入集合中部分点的指定结果属性。
在一种实现方式中,在显示之前聚类结果的界面上,集合中的点在可视化图像按照其所属的类别来显示,例如不同类别中点采用不同的颜色,或者以外围框线等方式将类别的边界标识出来等。在这样的界面上,可以将某个类别作为当前类别,将若干个点作为操作对象,来进行指定结果属性的设置。
具体而言,可以在显示界面上向分析人员提供指定当前类别的操作方式、对可视化图像上显示的点进行圈选的操作方式、以及设置指定结构属性的操作方式,在收到分析人员对当前类别的指定、和对可视化图像上显示的点进行的圈选后,按照分析人员对指定结果属性的设置操作,确定被圈选的所有点与当前类别相关的指定结果属性。这样,分析人员能够通过方便、直观的操作方式来完成点的指定结果属性设置。
上述实现方式中,可视化图像界面的布局、显示方式、各种操作的具体方式等均可以根据实际应用场景来确定,不做限定。在一个例子中,在一种可视化聚类结果显示界面上,分析人员可以圈选属于当前类别的一个到多个点,然后通过绑定操作将被圈选的点设置为当前类别的固定对象,或者通过删除操作将将被圈选的点设置为当前类别排除对象。在另一个例子中,在一种可视化聚类结果显示界面上,分析人员可以圈选不属于当前类别的一个到多个点,然后通过添加操作将被圈选的点设置为当前类别的固定对象,或者通过排除操作将将被圈选的点设置为当前类别的排除对象。其中,圈选可以通过首尾近似相接的任意闭合曲线完成,闭合曲线内部的点即为被圈选的点。
步骤120,以集合中部分点的指定结果属性为约束条件运行聚类算法,得到符合所述指定结果属性的聚类结果。
以集合中部分点的指定结果属性为约束条件运行聚类算法的具体方式,可以根据所采用的聚类算法类型、实际应用场景中算法的程序实现等因素来确定,本申请的实施例不做限定,只要运行得到的聚类结果与所有的指定结果属性相符即可。另外,本申请实施例中可以采用任意的聚类算法,如基于划分、基于层次、基于密度、基于网格的聚类算法等。
对集合中有的点的指定结果属性为某个类别的固定对象的情形,在一个例子中,在运行聚类算法判定某个点的所属类别时,对指定结果属性为某个类别的固定对象的待划分类别的点(称该点的固定类别为该类别),如果已划分类别的点中尚未有具有同一个固定类别的点存在,则按常规运行聚类算法,为该待划分的点确定所属类别(包括归入现有的类别中或划入新增加的类别中);否则将该待划分的点归入与具有同一个固定类别的已划分点的所属类别中。在另一个例子中,对能够指定算法初始值的聚类算法,可以将所有不具有固定类别的点作为待划分子集中的成员,将所有具有固定类别的点作为其所属固定类别的初始成员(即以各个点归于其所属的固定类别作为初始值),以待划分子集对象运行聚类算法,对所有不具有固定类别的点进行类别划分。
对集合中有的点的指定结果属性为某个类别的固定对象的情形,在一个例子中,在运行聚类算法判定某个点的所属类别时,对指定结果属性为某个类别的排除对象的待划分类别的点(称该点的排除类别为该类别),如果聚类算法的运行结果是该点属于其排除类别,则不将所述点划分入其排除类别中;根据具体的聚类算法,或者以次优选的另一个类别作为该点的所属类别,或者将该点归入新增加的类别,或者将该点作为离群点,不做限定。如果聚类算法的运行结果是该点不属于其排除类别,则按照聚类算法继续运行,无需其他处理。
在针对之前运行聚类算法所得的聚类结果设置点的指定结果属性,用于下一次聚类算法运行的应用场景中,可以在设置指定结果属性的同时进行聚类算法的参数调整,以更快的得到符合业务需要的聚类结果。具体而言,在获取点的指定结果属性的之前或之后,接收分析人员度聚类算法参数的调整;再以集合中点的指定结果属性为约束条件,采用调整后的参数运行聚类算法,得到符合所述指定结果属性的聚类结果。如果采用可视化图像来展现之前的聚类结果,分析人员可以根据所显示的可视化图像,更快更直观的发现是否需要调整参数、和/或确定如何调整参数。
可见,本申请的实施例中,为待划分集合中的部分点设置指定结果属性,来限制集合中部分点的类别划分结果,在运行聚类算法时将指定属性结果作为类别划分的约束条件,使得分析人员可以通过设置点的指定结果属性来对聚类结果直接产生影响,相比于更换聚类算法或修改聚类算法的参数,在提升聚类质量的同时,加快了聚类分析的收敛速度。
在本申请的一个应用示例中,对从客户服务渠道接收的、来自用户的问句进行分类。本应用示例中的聚类算法包括新增聚类算法和新建聚类算法,其中,新增聚类算法在待划分集合中的某个点不符合预定新建条件时,将该点划归已有类别中;对符合预定新建条件的点,新增聚类算法调用新建聚类算法,由新建聚类算法确定是添加新的类别并将该点划归新添加的类别中,还是将该点作为不属于任何类别的离群点。
新增聚类算法和新建聚类算法可以是基于划分的聚类算法,如k-means(k均值);可以是基于密度的聚类算法,如dbscan(Density-Based Spatia lClustering ofApplications with Noise,具有噪声的基于密度的聚类方法)、hdbscan(HierarchicalDensity-Based Spatial Clustering of Applications with Noise,层次化具有噪声的基于密度的聚类方法)等;还可以是其他的聚类算法,如最近邻聚类(Nearest NeighboringClustering)等。
本应用示例中,问句分类的流程如图2所示。
步骤210,加载数据,即加载待分类的问句集合(一种点集,每个点为一个从客户服务渠道接收的问句)。
步骤220,对加载后的数据进行预处理。预处理可以包括数据清洗、数据集成、数据变换和数据归约等,可采用现有数据挖掘技术中的手段实现,不再赘述。
步骤230,对预处理后的点进行分词和距离计算。其中,分词可以采用任何适用于问句的分词方式,如现有技术中各种分词算法;距离可以是用来衡量问句集合中点之间、点与类别之间相似程度的各种变量,例如本应用示例中可以采用k-d tree(k-dimensionaltree,k维空间树)来进行距离粗选,并基于NGRAM(一种语言模型)、LSTM(Long Short-TermMemory,时间递归神经网络)、word2vec(一种文本深度表示模型)等算法确定点之间的距离。
步骤240,以问句集合中点之间的距离为基础运行新增聚类算法。设本应用示例中采用最近邻聚类算法作为新增聚类算法,当点和每个已有可划分类别的距离超过预定距离阈值(最近邻聚类算法的预定新建条件)时,认为该点不应当被划入到已有可划分类别中,则调用新建聚类算法,执行步骤250;否则将该点划入已有可划分类别中,转步骤260。
步骤250,对不应当划入已有类别中点运行新建聚类算法,决定是新增加一个类别,并且将该点划入新增加的类别中,还是将该点作为离群点。
设本应用示例中采用基于密度的聚类算法作为新建聚类算法。一个例子中,可以采用为点赋予权重的基于密度的聚类算法。通过给点赋予权重,对参与聚类的点的权重进行合理的调整,让聚类中心更加靠近权重较大的点。具体的做法是,计算每个点距离其最近的类别的距离,根据该距离计算该点在基于密度的聚类算法中的权重(该权重的计算规则参照现有技术,只要使得距离某个类别越近的点权重越小即可);随后,在计算点之间距离的时候把点的权重作为因子加进去,这样就可以使得聚类产生的点大多围绕权重高的点。这样可以使得新增加类别距离已有的类别足够远,更多地发现原有类别没有覆盖到的地方,使得聚类算法的效率得到提升。
步骤260,在对问句集合中所有点都运行过步骤240后,得到一次聚类结果。本步骤中将聚类结果以可视化图像显示在界面上,供分析人员为点设置指定结果属性,包括将某些点设置为某个类别的固定对象、和/或将某些点设置为某个类别的排除对象;此外,还可以帮助分析人员修改新增聚类算法或新建聚类算法的参数。
一种显示可视化图像的界面示例如图3所示,其中,右上角的小图为整个问句集合的宏观概览图,在其上可进行局部框选操作,被选中的局部将放大投影在作为局部调整主界面的中间大图上。在宏观概览图和中间大图上,采用Fortune算法(扫描线算法)将问句集合分割为voronoi(泰森多边形)图,显示每个类别的边界线,并在宏观概览图上对每个类别的闭合区域着以不同的颜色。
在中间大图上,分析人员可以选定一个类别作为当前类别,还可以对可视化图像上的点进行圈选。分析人员可以在中间大图上画出一个近似封闭的环形,环形内部的点即为被圈选的点。可以采用现有来确定图上的哪些点是被圈选的点,如winding number(环绕数)、ray casting(光线投射)等算法。
当分析人员完成圈选后,被圈选的点在中间大图上高亮显示,这些点的信息、以及可以进行的设置操作将显示在右下角的列表区域。本应用示例中,对属于当前类别的被圈选的点,分析人员可以通过绑定操作将该点设置为当前类别的固定对象,可以通过删除操作将该点设置为当前类别的排除对象;对不属于当前类别的被圈选的点,分析人员可以通过添加操作将该点设置为当前类别的固定对象,可以通过排除操作将该点设置为当前类别的排除对象。
此外,分析人员还可以借助于可视化图像对类别和问句集合中点的分布的直观展示,来对新增聚类算法和/或新建聚类算法中的参数进行调整。例如,对最近邻聚类算法的预定距离阈值进行调整。
在设置了点的指定结果属性、和/或调整了聚类算法的参数后,转步骤240,以集合中点的指定结果属性为约束条件,采用调整后的聚类算法参数(如预定距离阈值)运行聚类算法,得到符合指定结果属性的聚类结果。
具体而言,本应用示例中以集合中所有固定对象作为其所属类别的初始成员,将集合中不是任何一个类别固定对象的点的集合作为待划分集合,来对待划分集合中的点运行新增聚类算法;对每一个待划分的点,将不以该点为排除对象的已有类别作为已有可划分类别,如果该点与每个已有可划分类别的距离超过预定距离阈值,则调用新建聚类算法,执行步骤250来对该点进行处理;否则在步骤240中由新增聚类算法确定该点的所属类别。这样,即可按照分析人员针对可视化图像显示界面所作出的设置,得到相符合的聚类结果。
通过将集合中的点设置为某个类别的固定对象,实际上将聚类分为两类:锁定聚类和非锁定聚类。其中,具有固定类别的点属于锁定聚类,不具有固定类别的点为非锁定聚类。锁定聚类是人工审核过的高纯度聚类,非锁定聚类是算法产生的往往纯度略低的聚类。对锁定聚类的好处是,当下次运行聚类算法的时候,锁定为同一类别的是不会被拆散的,但是可能会有新的点加入进来;对于非锁定的聚类,当下一次运行聚类算法的时候,未被锁定的点会被按照算法重新聚类,这样做的好处是可以通过参数调整来得到满意的聚类结果。在可视化工具的支持下,分析人员可以高效的更改、合并、删除、锁定任何一个类别,从而可以加快聚类收敛的速度,并且聚类的效率和质量都能有所提高,摆脱了以前只能根据经验调整参数,并且对于聚类结果无能为力的现状。
步骤270,输出聚类结果。可以将每次聚类算法的运行结果都输出并保存,也可以由分析人员决定是否要输出某次聚类结果,不做限定。
与上述流程实现对应,本申请的实施例还提供了一种聚类装置。该装置可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为逻辑意义上的装置,是所在设备的CPU(Central Process Unit,中央处理器)将对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,除了图4所示的CPU、内存以及非易失性存储器之外,聚类装置所在的设备通常还包括用于进行无线信号收发的芯片等其他硬件,和/或用于实现网络通信功能的板卡等其他硬件。
图5所示为本申请实施例提供的一种聚类装置,用于对某个集合的点进行类别划分,所述装置包括指定结果属性获取单元和聚类算法运行单元,其中:指定结果属性获取单元用于获取集合中部分点的指定结果属性,所述指定结果属性用来限制点的类别划分结果;聚类算法运行单元用于以集合中部分点的指定结果属性为约束条件运行聚类算法,得到符合所述指定结果属性的聚类结果。
可选的,所述指定结果属性包括:某个类别的固定对象,所述固定对象为被确定为属于某个类别的点;所述聚类算法运行单元具体用于:将集合中所有固定对象作为其所属类别的初始成员运行聚类算法,对集合中除固定对象外的点进行类别划分,得到聚类结果。
可选的,所述指定结果属性包括:某个类别的排除对象,所述排除对象为被确定为不属于某个类别的点;所述聚类算法运行单元具体用于:在运行聚类算法判定某个点的所属类别时,如果所述点是某个类别的排除对象,则不将所述点划分入所述类别中。
可选的,所述聚类算法运行单元具体用于:接收分析人员对聚类算法参数的调整;以集合中点的指定结果属性为约束条件,采用调整后的参数运行聚类算法,得到符合所述指定结果属性的聚类结果。
一种实现方式中,所述装置还包括:聚类结果可视化展示单元,用于以可视化图像显示之前对所述集合运行聚类算法的聚类结果;所述指定结果属性获取单元具体用于:接收分析人员基于所述可视化图像输入的点的指定结果属性。
上述实现方式的一个例子中,所述指定结果属性获取单元具体用于:接收分析人员对当前类别的指定,以及对可视化图像上显示的点进行的圈选;按照分析人员对指定结果属性的设置操作,确定被圈选的所有点与当前类别相关的指定结果属性。
上述例子中,所述被圈选的点为属于当前类别的点;所述对指定结果属性的设置操作包括:将被圈选的点设置为当前类别固定对象的绑定操作、或将被圈选的点设置为当前类别排除对象的删除操作。
上述例子中,所述被圈选的点为不属于当前类别的点;所述对指定结果属性的设置操作包括:将被圈选的点设置为当前类别固定对象的添加操作、或将被圈选的点设置为当前类别排除对象的排除操作。
可选的,所述点包括:从客户服务渠道接收的问句;所述聚类算法包括:新增聚类算法和新建聚类算法;所述新增聚类算法在某个点不符合预定新建条件时,将所述点划归已有类别中;否则调用新建聚类算法确定是否添加新的类别并将所述点划归新添加的类别中;所述新增聚类算法包括:最近邻聚类算法;所述最近邻聚类算法的预定新建条件包括:点与已有可划分类别的距离超过预定距离阈值;所述已有可划分类别包括不以所述点为排除对象的已有类别;所述新建聚类算法包括:为点赋予权重的基于密度的聚类算法。
可选的,所述聚类算法运行单元具体用于:接收分析人员根据可视化图像对所述预定距离阈值的调整;以集合中点的指定结果属性为约束条件,采用调整后的预定距离阈值运行聚类算法,得到符合所述指定结果属性的聚类结果。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。