CN107943982A - 内置约束规则的k‑means文本聚类方法及装置 - Google Patents

内置约束规则的k‑means文本聚类方法及装置 Download PDF

Info

Publication number
CN107943982A
CN107943982A CN201711236589.5A CN201711236589A CN107943982A CN 107943982 A CN107943982 A CN 107943982A CN 201711236589 A CN201711236589 A CN 201711236589A CN 107943982 A CN107943982 A CN 107943982A
Authority
CN
China
Prior art keywords
text
cluster
class
heart
mutual exclusion
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201711236589.5A
Other languages
English (en)
Other versions
CN107943982B (zh
Inventor
李德彦
晋耀红
席丽娜
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Science and Technology (Beijing) Co., Ltd.
Original Assignee
Beijing Shenzhou Taiyue Software Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Shenzhou Taiyue Software Co Ltd filed Critical Beijing Shenzhou Taiyue Software Co Ltd
Priority to CN201711236589.5A priority Critical patent/CN107943982B/zh
Publication of CN107943982A publication Critical patent/CN107943982A/zh
Application granted granted Critical
Publication of CN107943982B publication Critical patent/CN107943982B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/35Clustering; Classification
    • G06F16/355Class or cluster creation or modification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/23Clustering techniques
    • G06F18/232Non-hierarchical techniques
    • G06F18/2321Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions
    • G06F18/23213Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions with fixed number of clusters, e.g. K-means clustering

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Biology (AREA)
  • Evolutionary Computation (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Artificial Intelligence (AREA)
  • Probability & Statistics with Applications (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开一种内置约束规则的k‑means文本聚类方法及装置,该方法包括:利用第二约束规则预处理待聚类文本集,得到与第二约束规则对应的第二预处理集合;获取待聚类文本集中的k个文本作为簇心;如果簇心包含于第二预处理集合的任一个子集合中,则将该第二预处理集合的另一个子集合中的文本添加到与该簇心对应的类簇互斥集合中;如果待聚类文本集中的当前文本包含于x个类簇互斥集合中,则计算除类簇互斥集合所对应的簇心以外其他(k‑x)个簇心与当前文本的距离,将当前文本添加到与其距离最近的簇心所对应的类簇中;重新计算每个类簇的新的簇心,如果新的簇心满足停止条件,则输出全部类簇。采用该方法可以降低文本聚类的计算复杂度,提高聚类精度。

Description

内置约束规则的k-means文本聚类方法及装置
技术领域
本发明涉及信息处理与文本挖掘技术领域,具体涉及一种内置约束规则的k-means文本 聚类方法及装置。
背景技术
聚类分析是数据挖掘领域重要工具之一,其基础工作就是将数据进行聚类。聚类是将数 据分类到不同的类簇的一个过程,同一个类簇中的数据有很大的相似性,而不同类簇间的数 据有很大的相异性。常用的聚类算法有层次聚类、网格聚类、划分聚类等,其中划分聚类中 的k-means聚类算法相对更为常用且容易实现。
典型的k-means聚类算法包括以下步骤:
1、从包括N个文本的数据集中随机选择k个文本作为簇心,k<N;
2、对除簇心外的每一个文本,测量其到每个簇心的距离,并将该文本归入与其距离最近 的簇心的类簇中;
3、重新计算每个类簇的新的簇心;
4、迭代第2步和第3步,直到新的簇心与原簇心的距离小于预设的阈值,或者迭代次数 达到预设次数,然后输出每个类簇。
发明人经过分析认为,典型的k-means聚类算法每次迭代,数据集中所有的数据都需要 参与一次计算,计算除簇心外的其他每一个数据到每一个簇心的距离,尤其当数据集中的数 据量较大和/或选取的簇心数量较大时,计算复杂度很高。此外,典型的k-means聚类方法是 基于文本内容来提取特征,以计算文本之间的距离,其聚类的效果不够理想,很容易将特征 相似但主题不同/不相关的文本,或者将特征不相似但主题相同/相关的文本划分到错误的类 簇中。
发明内容
为解决上述技术问题,本申请提供一种内置约束规则的k-means文本聚类方法,以降低 文本聚类时的计算复杂度及改善聚类效果。
第一方面,本申请提供一种内置约束规则的k-means文本聚类方法,包括以下步骤:
利用第二约束规则预处理待聚类文本集,得到与所述第二约束规则对应的第二预处理集 合,所述第二约束规则包括两个子规则,符合其中一个子规则的文本与符合另一个子规则的 文本必须聚类到不同的类簇中,所述第二预处理集合包括两个子集合,每一个所述子集合包 括符合一个对应的子规则的文本;
获取所述待聚类文本集中的k个文本作为簇心,k<N,N为待聚类文本集中文本的总数 量;
如果簇心包含于第二预处理集合的任一个子集合中,则将该第二预处理集合的另一个子 集合中的文本添加到与该簇心对应的类簇互斥集合中;
如果待聚类文本集中的当前文本包含于x个类簇互斥集合中,则计算除类簇互斥集合所 对应的簇心以外其他(k-x)个簇心与当前文本的距离,将当前文本添加到与其距离最近的簇 心所对应的类簇中,其中,0<x<k;
如果待聚类文本集中的当前文本不包含于任何一个类簇互斥集合中,或者当前文本包含 于全部类簇互斥集合中,则计算所有簇心与当前文本的距离,将当前文本添加到与其距离最 近的簇心所对应的类簇中;
重新计算每个类簇的新的簇心,如果新的簇心满足预设的停止条件,则输出全部类簇。
结合第一方面,在第一方面第一种可能的实现方式中,在将当前文本添加到与其距离最 近的簇心所对应的类簇中的步骤之后,还包括:
如果当前文本包含于第二预处理集合的任一个子集合中,则将该第二预处理集合的另一 个子集合中的文本添加到与当前文本所属类簇的簇心对应的类簇互斥集合中。
结合第一方面及上述可能的实现方式,在第一方面第二种可能的实现方式中,所述第二 约束规则的子规则包括至少一个互斥词袋,所述互斥词袋包括至少一个预设的第二关键词, 当同一个互斥词袋中的第二关键词的数量≥2个时,所述互斥词袋还包括所述第二关键词之 间的逻辑与的关系。
结合第一方面及上述可能的实现方式,在第一方面第三种可能的实现方式中,在获取所 述待聚类文本集中的k个文本作为簇心之前,还包括:
利用第一约束规则预处理待聚类文本集,得到与所述第一约束规则对应的第一预处理集 合,符合所述第一约束规则的文本必须聚类到相同的类簇中,所述第一预处理集合包括符合 对应的第一约束规则的文本;
在如果簇心包含于第二预处理集合的任一个子集合中,则将该第二预处理集合的另一个 子集合中的文本添加到与该簇心对应的类簇互斥集合中的步骤之后,还包括:
如果簇心包含于第一预处理集合中,则将该第一预处理集合中除该簇心外的其余文本添 加到与簇心对应的类簇中,清除所述待聚类文本集中已经添加到类簇中的文本。
结合第一方面及上述可能的实现方式,在第一方面第四种可能的实现方式中,在将当前 文本添加到与其距离最近的簇心所对应的类簇中的步骤之后,还包括:
如果当前文本包含于第一预处理集合中,则将该第一预处理集合中除当前文本外的其余 文本添加到当前文本所在的类簇中,清除所述待聚类文本集中已经添加到类簇中的文本。
结合第一方面及上述可能的实现方式,在第一方面第五种可能的实现方式中,所述第一 约束规则包括至少一个聚合词袋,所述聚合词袋包括至少一个预设的第一关键词,当同一个 聚合词袋中的第一关键词的数量≥2个时,所述聚合词袋还包括第一关键词之间的逻辑与的 关系。
第二方面,本申请提供一种内置约束规则的k-means文本聚类装置,包括:
第二预处理单元,用于利用第二约束规则预处理待聚类文本集,得到与所述第二约束规 则对应的第二预处理集合,其中,所述第二约束规则包括两个子规则,符合其中一个子规则 的文本与符合另一个子规则的文本必须聚类到不同的类簇中,所述第二预处理集合包括两个 子集合,每一个所述子集合包括符合一个对应的子规则的文本;
聚合单元,用于获取所述待聚类文本集中的k个文本作为簇心;在簇心包含于第二预处 理集合的任一个子集合中的情况下将该第二预处理集合的另一个子集合中的文本添加到与该 簇心对应的类簇互斥集合中;在待聚类文本集中的当前文本包含于x个类簇互斥集合中的情 况下计算除类簇互斥集合所对应的簇心以外其他(k-x)个簇心与当前文本的距离,将当前文 本添加到与其距离最近的簇心所对应的类簇中;在待聚类文本集中的当前文本不包含于任何 一个类簇互斥集合中,或者当前文本包含于全部类簇互斥集合中的情况下计算所有簇心与当 前文本的距离,将当前文本添加到与其距离最近的簇心所对应的类簇中;以及,重新计算每 个类簇的新的簇心,如果新的簇心满足预设的停止条件,则输出全部类簇;其中,k<N,N 为待聚类文本集中文本的总数量,0<x<k。
结合第二方面,在第二方面第一种可能的实现方式中,所述聚合单元还用于在当前文本 包含于第二预处理集合的任一个子集合中的情况下将该第二预处理集合的另一个子集合中的 文本添加到与当前文本所属类簇的簇心对应的类簇互斥集合中。
结合第二方面及上述可能的实现方式,在第二方面第二种可能的实现方式中,该文本聚 类装置,还包括:
第一预处理单元,用于利用第一约束规则预处理待聚类文本集,得到与所述第一约束规 则对应的第一预处理集合,其中,符合所述第一约束规则的文本必须聚类到相同的类簇中, 所述第一预处理集合包括符合对应的第一约束规则的文本;
所述聚合单元还用于在簇心包含于第一预处理集合中的情况下将该第一预处理集合中除 该簇心外的其余文本添加到与簇心对应的类簇中,清除所述待聚类文本集中已经添加到类簇 中的文本。
结合第二方面及上述可能的实现方式,在第二方面第三种可能的实现方式中,所述聚合 单元还用于在当前文本包含于第一预处理集合中的情况下将该第一预处理集合中除当前文本 外的其余文本添加到当前文本所在的类簇中,清除所述待聚类文本集中已经添加到类簇中的 文本。
在本申请的聚类方法中,首先利用内置于k-means聚类方法中的第二约束规则预处理待 聚类文本集,得到第二预处理集合,然后获取待聚类文本集中的k个文本作为簇心。如果簇 心包含于第二预处理集合的任一个子集合中,则将该第二预处理集合的另一个子集合中的文 本添加到与该簇心对应的类簇互斥集合中,从而,使得簇心及与其对应的类簇互斥集合中的 文本符合第二约束规则。再逐一判断待聚类文本集中的文本是否包含于类簇互斥集合中,如 果某个文本包含于某个类簇互斥集合中,说明该文本与该类簇互斥集合所对应的簇心符合第 二约束规则,须归类到不同的类簇中。因此在将该文本进行归类时,无需再一一计算该文本 与每一个簇心的距离,只需要计算该文本到前述类簇互斥集合所对应的簇心以外的其他簇心 的距离即可,从而减少了参与计算的簇心的数量。如果该文本包含于x个类簇互斥集合中, 则只需要计算除类簇互斥集合所对应的x个簇心以外其他(k-x)个簇心与当前文本的距离即 可。从而改进了k-means聚类的过程,进而降低了文本聚类的计算复杂度。尤其是对于待聚 类文本集中的文本数量大、聚类的类簇多的情况,采用本申请的内置约束规则的k-means聚 类方法可以显著地降低计算复杂度。
此外,在申请的聚类方法中,由于每一个第二约束规则的子规则包括至少一个互斥词袋, 每一个互斥词袋包括至少一个预设的第二关键词,可以将第二关键词预先设置为类簇的主题 密切相关的词,以使第二关键词组成的互斥词袋能够体现类簇的主题。当面对文本特征交叉 严重的问题时,首先利用第二约束规则预处理,可以确定作为簇心的文本,以及用户明确期 望与该簇心聚类在不同类簇中的文本。然后在对待聚类文本集中的文本进行归类时,如果某 个文本包含于与某个簇心对应的类簇互斥集合,则在计算该文本与簇心的距离时,直接将该 簇心排除在外,只计算该文本与其他的簇心之间的距离,最后将该文本添加到与其距离最近 的簇心所对应的类簇中。通过这样的方式,一方面突出了用户关注的主题词,利用第二约束 规则排除用户不期望聚类到相同类簇中的文本;另一方面减少了在待聚类的文本归类过程中 需要参与计算的簇心的数量,从而减弱了与主题无关或相关度较低、但交叉严重的特征词对 聚类所造成的影响,进而提高了聚类精度。
附图说明
为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介 绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以 根据这些附图获得其他的附图。
图1为本申请内置约束规则的k-means文本聚类方法的第一个实施例的流程图;
图2为本申请内置约束规则的k-means文本聚类方法的第一个实施例中,包括步骤S700 的另一种实现方式的流程图;
图3为本申请内置约束规则的k-means文本聚类方法的第二个实施例的流程图;
图4为本申请内置约束规则的k-means文本聚类方法的第二个实施例中,包括步骤S803的另一种实现方式的流程图;
图5为本申请内置约束规则的k-means文本聚类装置的其中一个实施例的结构示意图。
具体实施方式
请参考图1,在本申请的第一个实施例中,提供一种内置约束规则的k-means文本聚类 方法,包括以下S100至S600的步骤。
S100:利用第二约束规则预处理待聚类文本集,得到与所述第二约束规则对应的第二预 处理集合,所述第二约束规则包括两个子规则,符合其中一个子规则的文本与符合另一个子 规则的文本必须聚类到不同的类簇中,所述第二预处理集合包括两个子集合,每一个所述子 集合包括符合一个对应的子规则的文本。
在S100的步骤中,第二约束规则包括两个子规则,符合其中一个子规则的文本与符合另 一个子规则的文本必须聚类到不同的类簇中。例如,第二约束规则1包括子规则1-1和子规 则1-2,文本A符合子规则1-1,文本J符合子规则1-2,则在对包括文本A和文本J的待聚 类文本集进行聚类时,须将文本A和文本J聚类到不同的类簇中。
具体地,在第二约束规则的其中一种实现方式中,每一个第二约束规则的子规则包括至 少一个互斥词袋(Bag of words),每一个互斥词袋包括至少一个预设的第二关键词。当同一 个互斥词袋中的第二关键词的数量≥2个时,所述互斥词袋还包括所述第二关键词之间的逻 辑“与”的关系。当某个文本包括某个第二约束规则中的子规则中任一个互斥词袋时,则该 文本符合该第二约束规则的子规则。
表1给出了第二约束规则的一个示例,在表1中“+”表示逻辑“与”的关系。以表1的第二约束规则为例,如果文本A包括互斥词袋1,也就是文本A中同时包括第二关键词1、第二关键词2和第二关键词3,则文本A符合第二约束规则1的子规则1-1。如果文本J包括互 斥词袋3,也就是文本J同时包括第二关键词7和第二关键词8,则文本J符合第二约束规则 1的子规则1-2。由于文本A和J分别符合第一约束规则1的两个子规则,故而在对包括文本 A和文本J的待聚类文本集进行聚类时,将文本A和文本J聚类到不同的类簇中。
表1第二约束规则的一种实现方式的示例
上述的每一个第二关键词都可以是一个明确的词,例如“办卡”、“错误”等。在不同的 应用场景中,子规则的互斥词袋中的第二关键词可以是与用户期望得到的类簇的主题密切相 关的词,以使第二关键词组成的互斥词袋能够体现类簇的主题。并且对于一个第二约束规则 而言,同一个子规则的互斥词袋均体现相同的类簇的主题,不同的子规则的互斥词袋体现不 同的类簇的主题。
例如,对于银行***部客户服务工单文本构成的待聚类文本集,用户预期对该文本集 进行聚类后得到的每个类簇都能够体现不同的主题,如“办卡问题”、“账务问题”、“资料录 入错误”、“工作人员业务不熟练”等,以便后续按不同的主题分别进行处理。为此,假设第 二约束规则1中子规则1-1的各个互斥词袋中的第二关键词能够体现“办卡问题”,则第二关 键词1可以是“办卡”,第二关键词2可以是“至今没有”,第二关键词3可以是“审批通过”, 则互斥词袋1为“办卡+至今没有+审批通过”,该互斥词袋体现了“办卡问题”这个类簇的主 题。类似地,还可以设置互斥词袋2等其他互斥词袋来体现“办卡问题”这个类簇的主题, 例如,互斥词袋2可以是“申请+卡+未收到”。第二约束规则1中子规则1-2的各个互斥词袋 中的第二关键词能够体现“资料录入错误”,则第二关键词4可以是“办卡”,第二关键词5 可以是“没有进展”,第二关键词6可以是“发现错误”,则互斥词袋3为“办卡+没有进展+发现错误”,该互斥词袋体现了“资料录入错误”这个类簇的主题。
类似地,还可以设置第二约束规则2等多个第二约束规则。例如,在第二约束规则2中, 子规则2-1的各个互斥词袋则可以体现“账务问题”这个类簇的主题;子规则2-2的各个互 斥词袋则可以体现“办卡问题”这个类簇的主题。
进一步地,第二关键词还可以用正则表达式来表示,即每一个第二关键词可以包括若干 个子关键词以及子关键词之间的关联关系。这里的关联关系可以用正则表达式中的元字符来 表示。例如“+”表示逻辑与;“|”表示逻辑或;“()”表示多元取整;“*”表示匹配前面的 子表达式任意次;“?”表示匹配前面的子表达式零次或一次;“(.*)?”表示最短匹配,即匹 配到“(.*)?”后面的限定字符就结束匹配。
举例来说,表9中的第二关键词1,可以表示为一个正则表达式“(办|办理|申办|申请)(.*)?卡”。其中,“办”、“办理”、“申办”、“申请”、“卡”均为子关键词,“()”、“|”、 “.*”、“?”元字符。如果某个文本中包括“办”、“办理”、“申办”、“申请”这4个子关键 词中的任意一个,并且在其后匹配到关键词“卡”,则该正则表达式能够匹配上该文本。也就 是说,该文本中包括第二关键词1。
在S100的步骤中,在利用第二约束规则预处理待聚类文本集时,将待聚类文本集中符合 第二约束规则的子规则的文本或者文本的唯一标识信息,例如编号信息,存储到相应的第二 预处理集合的子集合中,用于后续步骤。待聚类文本集中的部分文本可能不符合任意一条第 二约束规则的任一条子规则,这些文本或者文本的唯一标识信息则不会被存储到第二预处理 集合的子集合中。
需要说明的是,第二预处理集合、类簇互斥集合,以及后续第二个实施例中涉及的第一 预处理集合,这些集合中存储的可以是文本本身,也可以是文本的唯一标识信息,无论以哪 种形式存储,均未脱离本发明的核心思想。为便于描述,在后续的实施例中对此不做区分, 仅用“文本”来表示。
当本申请实施例的k-means文本聚类方法中存在n条第二约束规则的时候,利用第二约 束规则预处理待聚类文本集,相应地得到n个第二预处理集合,每个第二预处理集合包括2 个子集合,其中,n为≥1的正整数。
以下通过一个实例来进一步说明。假设待聚类文本集包括文本A、文本B、文本C……文 本H、文本I、文本J、文本L共11个文本。表2为本实例中,当存在2个第二约束规则时, 第二约束规则与第二预处理集合的对应关系。其中,文本A符合子规则1-1,文本J符合子 规则1-2;文本C、文本D和文本I符合子规则2-1,文本F和文本G符合子规则2-2。
表2第二预处理集合示例
S200:获取所述待聚类文本集中的k个文本作为簇心,k<N,N为待聚类文本集中文本 的总数量。
在S200的步骤中,选取待聚类文本集中的k个文本作为簇心。这意味着,待聚类文本集 中其余的(N-k)个文本将通过后续的步骤被归类到这k个类簇中。这里获取k个文本作为簇 心,可以是计算机获取人为指定的k个文本作为簇心,也可以由计算机随机获取k个文本作 为簇心,本申请对此不做限定。
S300:如果簇心包含于第二预处理集合的任一个子集合中,则将该第二预处理集合的另 一个子集合中的文本添加到与该簇心对应的类簇互斥集合中。
在S300的步骤中,可以遍历所有簇心,对于每一个簇心,如果该簇心包含于第二预处理 集合的任一个子集合中,则将该第二预处理集合的另一个子集合中的文本添加到与该簇心对 应的类簇互斥集合中。如果该簇心不包含于任何一个第二预处理集合的任何一个子集合中, 则对下一个簇心进行处理,直到所有簇心都处理完毕。
在本步骤中,类簇互斥集合与簇心一一对应,也就是说,在S200的步骤中获取了k个文 本作为簇心,则类簇互斥集合相应地也有k个,用于存储待聚类文本集中须与簇心聚类到不 同类簇中的文本。
沿用步骤100中的实例,假设S200的步骤获取3个文本作为簇心,分别是:文本A、文本D和文本H,则在执行了S300的步骤之后,可以得到表3的结果。具体来说,首先针对类 簇1的簇心——文本A,由于文本A包含于第二预处理集合1的子集合1-1中,因此子集合 1-2中的文本J存储到与簇心1对应的类簇互斥集合1中。然后针对下一个簇心——文本D, 由于文本D包含于第二预处理集合2的子集合2-1中,因此将子集合2-2中的文本F和文本 G存储到与簇心2对应的类簇互斥集合2中。最后针对下一个簇心——文本H,由于文本H不 包含于任何一个第二预处理集合的子集合中,因此,此时与簇心3对应的类簇互斥集合3中 暂时为空。
表3S300的步骤之后类簇互斥集合情况的示例
簇心序号 簇心 类簇互斥集合序号 类簇互斥集合的文本
簇心1 文本A 类簇互斥集合1 文本J
簇心2 文本D 类簇互斥集合2 文本F、文本G
簇心3 文本H 类簇互斥集合3 ——
S400:如果待聚类文本集中的当前文本包含于x个类簇互斥集合中,则计算除类簇互斥 集合所对应的簇心以外其他(k-x)个簇心与当前文本的距离,将当前文本添加到与其距离最 近的簇心所对应的类簇中,其中,0<x<k;
S500:如果待聚类文本集中的当前文本不包含于任何一个类簇互斥集合中,或者当前文 本包含于全部类簇互斥集合中,则计算所有簇心与当前文本的距离,将当前文本添加到与其 距离最近的簇心所对应的类簇中。
在S400和S500的步骤中,可以遍历待聚类文本集中的文本,对于每一个文本,判断该 文本是否包含于类簇互斥集合中。如果包含于x个类簇互斥集合中,则计算除类簇互斥集合 所对应的簇心以外其他(k-x)个簇心与当前文本的距离,将当前文本添加到与其距离最近的 簇心所对应的类簇中,其中,0<x<k。如果不包含在任何一个类簇互斥集合中,或者包含于 全部类簇互斥集合中,则计算该文本与每一个簇心的距离,然后将该文本添加到与其距离最 近的簇心所对应的类簇中。
这里需要说明的是,如果某个文本包含于全部类簇互斥集合中,说明在这种情况下该文 本和所有的簇心组合都能够符合第二约束规则。也就是说,此时,按照第二约束规则,该文 本必须与所有簇心都聚类到不同的类簇下。但这样操作的话,该文本在当前轮次的迭代中将 无法进行归类,容易导致聚类方法执行出错。为此,当面临这种情况时,将所有的簇心都视 为平等,一一计算该文本到所有簇心之间的距离,然后将该文本添加到与其距离最近的簇心 所对应的类簇中。
沿用本实施例步骤S300的实例,待聚类文本集中共有8个尚未归类的文本:文本B、文 本C、文本E、文本F、文本G、文本I、文本J、文本L。以下依次将8个文本归入3个类簇 中。
(1)判断文本B是否包含于表3的类簇互斥集合中,判断结果是文本B不包含于任何一 个类簇互斥集合中,则分别计算文本B与三个簇心之间的距离。假设文本B与簇心1“文本A” 的距离最近,则将文本B添加到类簇1中。
(2)判断文本C是否包含于表3的类簇互斥集合中,判断结果是文本C不包含于任何一 个类簇互斥集合中,则分别计算文本C与三个簇心之间的距离。假设文本C与簇心2“文本D” 的距离最近,则将文本C添加到类簇2中。
(3)判断文本E是否包含于表3的类簇互斥集合中,判断结果是文本E不包含于任何一 个类簇互斥集合中,则分别计算文本E与三个簇心之间的距离。假设文本E与簇心2“文本D” 的距离最近,则将文本E添加到类簇2中。
(4)判断文本F是否包含于表3的类簇互斥集合中,判断结果是文本F包含于类簇互斥 集合2中,类簇互斥集合2对应的簇心2为文本D,因此,分别计算除簇心2“文本D”之外 的其他簇心,也就是簇心1和簇心3,与文本F之间的距离。假设文本F与簇心3“文本H” 的距离最近,则将文本F添加到类簇3中。
(5)判断文本G是否包含于表3的类簇互斥集合中,判断结果是文本G包含于类簇互斥 集合2中,类簇互斥集合2对应的簇心2为文本D,因此,分别计算除簇心2“文本D”之外 的其他簇心,也就是簇心1和簇心3,与文本G之间的距离。假设文本G与簇心3“文本H” 的距离最近,则将文本G添加到类簇3中。
(6)判断文本I是否包含于表3的类簇互斥集合中,判断结果是文本I不包含于任何一 个类簇互斥集合中,则分别计算文本I与三个簇心之间的距离。假设文本I与簇心1“文本A” 的距离最近,则将文本I添加到类簇1中。
(7)判断文本J是否包含于表3的类簇互斥集合中,判断结果是文本J包含于类簇互斥 集合1中,类簇互斥集合1对应的簇心1为文本A,因此,分别计算除簇心1“文本A”之外 的其他簇心,也就是簇心2和簇心3,与文本J之间的距离。假设文本J与簇心3“文本H” 的距离最近,则将文本J添加到类簇3中。
(8)判断文本L是否包含于表3的类簇互斥集合中,判断结果是文本L不包含于任何一 个类簇互斥集合中,则分别计算文本L与三个簇心之间的距离。假设文本L与簇心3“文本H” 的距离最近,则将文本L添加到类簇3中。
上述归类的过程中,在将文本F、文本G和文本J归类到类簇中的时候,只需要计算除 类簇互斥集合所对应的簇心以外其他的簇心与当前文本的距离即可,减少了需要参与计算的 簇心的数量,从而降低了文本聚类的计算复杂度。
至此,待聚类文本集中所有的文本都已经被聚类到相应的类簇中,结果如表4所示。
表4S400和S500的步骤之后类簇情况的示例
类簇序号 簇心 类簇中的其余文本
类簇1 文本A 文本B、文本I
类簇2 文本D 文本C、文本E
类簇3 文本H 文本F、文本G、文本J、文本L
S600:重新计算每个类簇的新的簇心,如果新的簇心满足预设的停止条件,则输出全部 类簇。
在S600的步骤中,重新计算每个类簇的新的簇心,具体可以采用典型k-means聚类方法 中的计算方法,即计算类簇中所有文本两两之间的距离,然后找到与类簇中其他文本综合距 离最近的文本,将其作为新的簇心。
如果新的簇心不满足预设的停止条件,则重置待聚类文本集,以新的簇心为簇心,重复 执行S300至S500的步骤,然后再重新计算每个类簇的新的簇心。这里每一次重复S300、S400、 S500的步骤,以及计算每个类簇的新的簇心的过程,累记一次迭代过程。直到新的簇心满足 预设的停止条件,则输出全部类簇。
在S600的步骤中,预设的停止条件,可以根据不同的情况来具体设置,例如,如果新的 簇心与原簇心之间的的偏差值小于预设阈值,则新的簇心满足预设的停止条件;又例如,如 果累计的迭代次数达到预设的迭代次数,则新的簇心满足预设的停止条件。
以下沿用前述S400和S500的步骤中的实例来说明新的簇心满足预设的停止条件的情况。
经过一次迭代之后,假设重新计算每个类簇的新的簇心,分别为:类簇1——文本B,类 簇2——文本C,类簇3——文本J。
若经过计算,类簇1的原簇心文本A与新的簇心文本B之间的距离小于预设阈值,类簇 2的原簇心文本D与新的簇心文本C之间的距离小于预设阈值,并且类簇3的原簇心文本H与新的簇心文本J之间的距离小于预设阈值,则此时新的簇心满足停止条件,输出全部类簇, 如表5所示。
表5输出全部类簇的一个示例
类簇序号 类簇中的文本
类簇1 文本A、文本B、文本I
类簇2 文本D、文本C、文本E
类簇3 文本F、文本G、文本H、文本J、文本L
以下延用前述S400和S500的步骤中的实例来说明新的簇心不满足预设的停止条件的情 况。
经过一次迭代之后,假设重新计算每个类簇的新的簇心,分别为:类簇1——文本B,类 簇2——文本C,类簇3——文本J。若经过计算,新的簇心不满足预设的停止条件,则进入 第二次迭代过程。具体过程包括:
重置待聚类文本集,此时待聚类文本集包括文本A、文本B、文本C……文本H、文本I、 文本J、文本L共11个文本。重置类簇互斥集合。
以每个类簇的新的簇心为簇心,如果簇心包含于第二预处理集合的任一个子集合中,则 将该第二预处理集合的另一个子集合中的文本添加到与该簇心对应的类簇互斥集合中,从而 得到新的类簇互斥集合。遍历完所有簇心,得到的类簇互斥集合如表6所示。
表6第二轮迭代中执行上述步骤后类簇互斥集合情况的示例
簇心序号 簇心 类簇互斥集合序号 类簇互斥集合的文本
簇心1 文本B 类簇互斥集合1 ——
簇心2 文本C 类簇互斥集合2 文本G、文本F
簇心3 文本J 类簇互斥集合3 文本A
待聚类文本集中共有8个尚未归类的文本:文本A、文本D、文本E、文本F、文本G、 文本H、文本I、文本L。以下依次将8个文本归入3个类簇中。
(1)判断文本A是否包含于表6的类簇互斥集合中,判断结果是文本A包含于类簇互斥 集合3中,类簇互斥集合3对应的簇心3为文本J,因此,分别计算除簇心3“文本J”之外 的其他簇心,也就是簇心1和簇心2,与文本A之间的距离。假设文本A与簇心1“文本B” 的距离最近,则将文本A添加到类簇1中。
(2)判断文本D是否包含于表6的类簇互斥集合中,判断结果是文本D不包含于任何一 个类簇互斥集合中,则分别计算文本D与三个簇心之间的距离。假设文本D与簇心2“文本C” 的距离最近,则将文本D添加到类簇2中。
(3)判断文本E是否包含于表6的类簇互斥集合中,判断结果是文本E不包含于任何一 个类簇互斥集合中,则分别计算文本E与三个簇心之间的距离。假设文本E与簇心2“文本C” 的距离最近,则将文本E添加到类簇2中。
(4)判断文本F是否包含于表6的类簇互斥集合中,判断结果是文本F包含于类簇互斥 集合2中,类簇互斥集合2对应的簇心2为文本C,因此,分别计算除簇心2“文本C”之外 的其他簇心,也就是簇心1和簇心3,与文本F之间的距离。假设文本F与簇心3“文本J” 的距离最近,则将文本F添加到类簇3中。
(5)判断文本G是否包含于表6的类簇互斥集合中,判断结果是文本G包含于类簇互斥 集合2中,类簇互斥集合2对应的簇心2为文本C,因此,分别计算除簇心2“文本C”之外 的其他簇心,也就是簇心1和簇心3,与文本G之间的距离。假设文本G与簇心3“文本J” 的距离最近,则将文本G添加到类簇3中。
(6)判断文本H是否包含于表6的类簇互斥集合中,判断结果是文本H不包含于任何一 个类簇互斥集合中,则分别计算文本H与三个簇心之间的距离。假设文本H与簇心2“文本C” 的距离最近,则将文本H添加到类簇2中。
(7)判断文本I是否包含于表6的类簇互斥集合中,判断结果是文本I不包含于任何一 个类簇互斥集合中,则分别计算文本I与三个簇心之间的距离。假设文本I与簇心1“文本B” 的距离最近,则将文本I添加到类簇1中。
(8)判断文本L是否包含于表6的类簇互斥集合中,判断结果是文本L不包含于任何一 个类簇互斥集合中,则分别计算文本L与三个簇心之间的距离。假设文本L与簇心1“文本B” 的距离最近,则将文本L添加到类簇1中。
至此,待聚类文本集中所有的文本都已经被聚类到相应的类簇中,结果如表7所示。
表7第二次迭代执行上述步骤后类簇情况的示例
类簇序号 簇心 类簇中的其余文本
类簇1 文本B 文本A、文本I、文本L
类簇2 文本C 文本D、文本E、文本H
类簇3 文本J 文本F、文本G
然后再一次重新计算每个类簇的新的簇心,假设此时计算得到新的簇心分别为:类簇1 ——文本A,类簇2——文本E,类簇3——文本J。
若经过计算,此时类簇1的原簇心文本B与新的簇心文本A之间的距离小于预设阈值, 类簇2的原簇心文本C与新的簇心文本E之间的距离小于预设阈值,并且类簇3的原簇心文 本J与新的簇心文本J之间的距离小于预设阈值,则此时新的簇心满足停止条件,输出全部 类簇,输出结果如表8所示。
表8输出全部类簇的另一个示例
类簇序号 类簇中的文本
类簇1 文本A、文本B、文本I、文本L
类簇2 文本D、文本C、文本E、文本H
类簇3 文本F、文本G、文本J
在典型的k-means聚类方法中,在获取了k个文本作为簇心之后,对于除簇心外的每一 个文本,都需要一一测量其到每一个簇心的距离,然后才能将该文本添加到与其距离最近的 簇心所对应的类簇中。
而在本实施例的聚类方法中,首先利用内置于k-means聚类方法中的第二约束规则预处 理待聚类文本集,得到第二预处理集合,然后获取待聚类文本集中的k个文本作为簇心。如 果簇心包含于第二预处理集合的任一个子集合中,则将该第二预处理集合的另一个子集合中 的文本添加到与该簇心对应的类簇互斥集合中,从而,使得簇心及与其对应的类簇互斥集合 中的文本符合第二约束规则。再逐一判断待聚类文本集中的文本是否包含于类簇互斥集合中, 如果某个文本包含于某个类簇互斥集合中,说明该文本与该类簇互斥集合所对应的簇心符合 第二约束规则,须归类到不同的类簇中。因此在将该文本进行归类时,无需再一一计算该文 本与每一个簇心的距离,只需要计算该文本到前述类簇互斥集合所对应的簇心以外的其他簇 心的距离即可,从而减少了参与计算的簇心的数量。如果该文本包含于x个类簇互斥集合中, 则只需要计算除类簇互斥集合所对应的x个簇心以外其他(k-x)个簇心与当前文本的距离即 可。从而改进了k-means聚类的过程,进而降低了文本聚类的计算复杂度。尤其是对于待聚 类文本集中的文本数量大、聚类的类簇多的情况,采用本申请的内置约束规则的k-means聚 类方法可以显著地降低计算复杂度。
此外,对于特征交叉较多的文本集,采用典型的k-means聚类方法进行聚类的效果较差。 具体来说,在计算待聚类的文本与作为簇心的文本之间的距离时,需要分别从待聚类的文本 和作为簇心的文本中提取特征词,然后比对两个文本的特征词的相似度,以此来计算二者之 间的距离。在这些特征词中,有的特征词与该文本实际表达的主题相关度较低或者完全无关。 如果在两个文本各自提取的特征词中,与主题无关或相关度较低的特征词的重叠比例高,与 主题密切相关的特征词的比例很低,则可以认为这两个文本的特征交叉严重。在进行聚类时, 对于两个主题不同但特征交叉严重的文本,用户期望将这两个文本聚类到不同的类簇中,而 计算机很可能由于这两个文本的特征词重叠比例高而将这两个文本聚类到同一个类簇中,也 就是把一个待聚类的文本添加到另一个作为簇心的文本所对应的类簇中,因此降低了聚类精 度,导致整体聚类效果不理想。
在本实施例的聚类方法中,由于每一个第二约束规则的子规则包括至少一个互斥词袋, 每一个互斥词袋包括至少一个预设的第二关键词,可以将第二关键词预先设置为类簇的主题 密切相关的词,以使第二关键词组成的互斥词袋能够体现类簇的主题。当面对文本特征交叉 严重的问题时,首先利用第二约束规则预处理,可以确定作为簇心的文本,以及用户明确期 望与该簇心聚类在不同类簇中的文本。然后在对待聚类文本集中的文本进行归类时,如果某 个文本包含于与某个簇心对应的类簇互斥集合,则在计算该文本与簇心的距离时,直接将该 簇心排除在外,只计算该文本与其他的簇心之间的距离,最后将该文本添加到与其距离最近 的簇心所对应的类簇中。通过这样的方式,一方面突出了用户关注的主题词,利用第二约束 规则排除用户不期望聚类到相同类簇中的文本;另一方面减少了在待聚类的文本归类过程中 需要参与计算的簇心的数量,从而减弱了与主题无关或相关度较低、但交叉严重的特征词对 聚类所造成的影响,进而提高了聚类精度。
对于待聚类的文本来说,其有可能满足“包含于x个类簇互斥集合中”的条件,也可能 满足“不包含于任何一个类簇互斥集合中或者包含于全部类簇互斥集合中”的条件。但是对 于某一个确定的待聚类的文本而言,其不能同时满足上述两个条件,因此,相应地只可以执 行步骤S400和步骤S500中的一个。而无论在步骤S400还是在步骤S500中,最后都需要文 本添加到与其距离最近的簇心所对应的类簇中。
在此基础上,可选地,请参考图2,在S400或S500中的将当前文本添加到与其距离最 近的簇心所对应的类簇中的步骤之后,还可以包括:
S700:如果当前文本包含于第二预处理集合的任一个子集合中,则将该第二预处理集合 的另一个子集合中的文本添加到与当前文本所属类簇的簇心对应的类簇互斥集合中。
在执行S700的步骤中,有可能出现一种情况,即,第二预处理集合的另一个子集合中的 全部文本或者部分文本已经存储在相应的类簇互斥集合中。此时,对于类簇互斥集合中已经 存有的文本,无需再重复添加,仅将类簇互斥集合中没有的文本添加进入即可。
此处仍然沿用本实施例步骤S300的实例,待聚类文本集中共有8个尚未归类的文本:文 本B、文本C、文本E、文本F、文本G、文本I、文本J、文本L。以下依次将8个文本归入 3个类簇中。
(1)判断文本B是否包含于表3的类簇互斥集合中,判断结果是文本B不包含于任何一 个类簇互斥集合中,则分别计算文本B与三个簇心之间的距离。假设文本B与簇心1“文本A” 的距离最近,则将文本B添加到类簇1中。
文本B所属类簇1的簇心为簇心1“文本A”,簇心1对应类簇互斥集合1。由于文本B不包含于任一个第二预处理集合中,因此接下来对下一个尚未归类的文本进行归类。
(2)判断文本C是否包含于表3的类簇互斥集合中,判断结果是文本C不包含于任何一 个类簇互斥集合中,则分别计算文本C与三个簇心之间的距离。假设文本C与簇心2“文本D” 的距离最近,则将文本C添加到类簇2中。
文本C所属类簇2的簇心为簇心2“文本D”,簇心2对应类簇互斥集合2。文本C包含于第二预处理集合2的子集合2-1中,子集合2-2包括文本F、文本G均已经包含在表3的 类簇互斥集合2中,因此不再重复将文本F、文本G添加到类簇互斥集合2中。至此本轮迭 代中类簇互斥集合的情况仍然如表3所示。
(3)判断文本E是否包含于表3的类簇互斥集合中,判断结果是文本E不包含于任何一 个类簇互斥集合中,则分别计算文本E与三个簇心之间的距离。假设文本E与簇心2“文本D” 的距离最近,则将文本E添加到类簇2中。
由于文本B不包含于任一个第二预处理集合中,因此接下来对下一个尚未归类的文本进 行归类。
(4)判断文本F是否包含于表3的类簇互斥集合中,判断结果是文本F包含于类簇互斥 集合2中,类簇互斥集合2对应的簇心2为文本D,因此,分别计算除簇心2“文本D”之外 的其他簇心,也就是簇心1和簇心3,与文本F之间的距离。假设文本F与簇心3“文本H” 的距离最近,则将文本F添加到类簇3中。
文本F所属类簇3的簇心为簇心3“文本H”,簇心3对应类簇互斥集合3。由于文本F包含于第二预处理集合2的子集合2-2中,子集合2-1包括文本C、文本D和文本I,因此将 文本C、文本D和文本I添加到类簇互斥集合3中。至此类簇互斥集合的情况如表9所示。
表9执行上述步骤之后类簇互斥集合情况的示例
簇心序号 簇心 类簇互斥集合序号 类簇互斥集合的文本
簇心1 文本A 类簇互斥集合1 文本J
簇心2 文本D 类簇互斥集合2 文本F、文本G
簇心3 文本H 类簇互斥集合3 文本C、文本D、文本I
(5)判断文本G是否包含于表9的类簇互斥集合中,判断结果是文本G包含于类簇互斥 集合2中,类簇互斥集合2对应的簇心2为文本D,因此,分别计算除簇心2“文本D”之外 的其他簇心,也就是簇心1和簇心3,与文本G之间的距离。假设文本G与簇心3“文本H” 的距离最近,则将文本G添加到类簇3中。
文本G所属类簇3的簇心为簇心3“文本H”,簇心3对应类簇互斥集合3。由于文本F包含于第二预处理集合2的子集合2-2中,而子集合2-1中的文本C、文本D和文本I均已 经添加到类簇互斥集合3中,故而不再重复将文本C、文本D和文本I添加到类簇互斥集合3 中。至此类簇互斥集合的情况仍然如表9所示。
(6)判断文本I是否包含于表9的类簇互斥集合中,判断结果是文本I包含于类簇互斥 集合3中,类簇互斥集合3对应的簇心3为文本H,因此,分别计算除簇心3“文本H”之外 的其他簇心,也就是簇心1和簇心2,与文本I之间的距离。假设文本I与簇心1“文本A” 的距离最近,则将文本I添加到类簇1中。
文本I所属类簇3的簇心为簇心1“文本A”,簇心1对应类簇互斥集合1。由于文本I包含于第二预处理集合2的子集合2-1中,因此将子集合2-2中的文本F、文本G添加到类 簇互斥集合1中。至此类簇互斥集合的情况仍然如表10所示。
表10执行上述步骤之后类簇互斥集合情况的示例
簇心序号 簇心 类簇互斥集合序号 类簇互斥集合的文本
簇心1 文本A 类簇互斥集合1 文本J、文本F、文本G
簇心2 文本D 类簇互斥集合2 文本F、文本G
簇心3 文本H 类簇互斥集合3 文本C、文本D、文本I
(7)判断文本J是否包含于表10的类簇互斥集合中,判断结果是文本J包含于类簇互 斥集合1中,类簇互斥集合1对应的簇心1为文本A,因此,分别计算除簇心1“文本A”之 外的其他簇心,也就是簇心2和簇心3,与文本J之间的距离。假设文本J与簇心3“文本H” 的距离最近,则将文本J添加到类簇3中。
文本J所属类簇3的簇心为簇心3“文本H”,簇心3对应类簇互斥集合3。由于文本J包含于第二预处理集合1的子集合1-2中,而子集合11-1中的文本A添加到类簇互斥集合3中。至此类簇互斥集合的情况仍然如表11所示。
表11执行上述步骤之后类簇互斥集合情况的示例
簇心序号 簇心 类簇互斥集合序号 类簇互斥集合的文本
簇心1 文本A 类簇互斥集合1 文本J、文本F、文本G
簇心2 文本D 类簇互斥集合2 文本F、文本G
簇心3 文本H 类簇互斥集合3 文本C、文本D、文本I、文本A
(8)判断文本L是否包含于表11的类簇互斥集合中,判断结果是文本L不包含于任何 一个类簇互斥集合中,则分别计算文本L与三个簇心之间的距离。假设文本L与簇心3“文本H”的距离最近,则将文本L添加到类簇3中。
由于文本L是待聚类文本集中最后一个文本,至此,待聚类文本集中所有的文本都已经 被聚类到相应的类簇中,结果同表4。
将上述实例与S300和S400的步骤下的实例相比较,可见,在遍历待聚类文本集中尚未 归类的文本并将这些文本归类的过程中,利用在先归类的文本以及第二预处理集合不断更新 类簇互斥集合,可以减少在后归类的文本在归类时参与计算的簇心数量,从而进一步降低聚 类的计算复杂度。例如,在上述的例子中,将文本F归类到类簇3中之后,将子集合2-1中 的文本添加到类簇互斥集合中,从而使得在后续对文本I进行归类时,无需计算文本I与所 有簇心的距离,只需要计算文本I与簇心1和簇心2的距离,然后将文本I归类到与其距离 最近的簇心对应的类簇中即可,进而进一步降低了聚类的计算复杂度。
请参考图3,在本申请的第二个实施例中,提供一种内置约束规则的k-means文本聚类 方法,包括S100、S801、S200、S300、S802、S400、S500和S600的步骤。
S100:利用第二约束规则预处理待聚类文本集,得到与所述第二约束规则对应的第二预 处理集合,所述第二约束规则包括两个子规则,符合其中一个子规则的文本与符合另一个子 规则的文本必须聚类到不同的类簇中,所述第二预处理集合包括两个子集合,每一个所述子 集合包括符合一个对应的子规则的文本。
步骤S100可以参考第一个实施例中相关的描述,此处不再赘述。
S801:利用第一约束规则预处理待聚类文本集,得到与所述第一约束规则对应的第一预 处理集合,符合所述第一约束规则的文本必须聚类到相同的类簇中,所述第一预处理集合包 括符合对应的第一约束规则的文本。
此处S801的步骤可以在S100的步骤之前,也可以在S100的步骤之后,本申请对此不做 限定。
在S801的步骤中,第一约束规则是指符合该规则的文本必须聚类到相同的类簇中的预设 规则。例如,有两个文本A和B都符合某一条第一约束规则,则在对包括A和B的待聚类文 本集进行聚类时,就需将A和B聚类到同一个类簇中。这里将待聚类文本集中符合不同的第 一约束规则的文本划堆,并存储在第一预处理集合中。
具体地,在第一约束规则的其中一种实现方式中,每一个第一约束规则包括至少一个聚 合词袋,每一个聚合词袋包括至少一个预设的第一关键词,当同一个聚合词袋中的第一关键 词的数量≥2个时,所述聚合词袋还包括第一关键词之间的逻辑“与”的关系。当某个文本 包括某个第一约束规则中的任一个聚合词袋时,则该文本符合该第一约束规则。
表12给出了第一约束规则的一个示例,在表12中“+”表示逻辑“与”的关系。以表12的约束规则为例,如果文本A包括聚合词袋1,也就是文本A中同时包括第一关键词1、 第一关键词2和第一关键词3,则文本A符合第一约束规则1。如果文本B包括聚合词袋3, 也就是文本B同时包括第一关键词6和第一关键词7,则文本B也符合第一约束规则1。由于 文本A和文本B都符合第一约束规则1,则在对包括文本A和文本B的待聚类文本集进行聚 类时,将文本A和文本B聚类到同一个类簇中。
表12第一约束规则的一种实现方式的示例
上述的每一个第一关键词都可以是一个明确的词,例如“办卡”、“办理***”等。在 不同的应用场景中,第一约束规则的聚合词袋中的第一关键词可以是与用户期望得到的类簇 的主题密切相关的词,以使第一关键词组成的聚合词袋能够体现类簇的主题。
例如,对于银行***部客户服务工单文本构成的文本集,用户预期对该文本集进行聚 类后得到的每个类簇都能够体现不同的主题,如“办卡问题”、“账务问题”、“资料录入错误”、 “工作人员业务不熟练”等,以便后续按不同的主题分别进行处理。为此,假设第一约束规 则1中的各个聚类词袋中的第一关键词能够体现“办卡问题”,则第一关键词1可以是“办卡”, 第一关键词2可以是“至今没有”,第一关键词3可以是“审批通过”,则聚合词袋1为“办 卡+至今没有+审批通过”,该聚合词袋体现了“办卡问题”这个类簇的主题。除了聚合词袋1, 还可以设置聚合词袋2、聚合词袋3等其他聚合词袋,用以体现“办卡问题”这个类簇的主 题。类似的,第一约束规则2中的各个聚合词袋则可以体现“账务问题”这个类簇的主题; 第一约束规则3中的各个聚合词袋则可以体现“资料录入错误”这个类簇的主题。
进一步地,第一关键词还可以用正则表达式来表示,即每一个第一关键词可以包括若干 个子关键词以及子关键词之间的关联关系。这里的关联关系可以用正则表达式中的元字符来 表示。例如“+”表示逻辑“与”;“|”表示逻辑“或”;“()”表示多元取整;“*”表示匹配 前面的子表达式任意次;“?”表示匹配前面的子表达式零次或一次;“(.*)?”表示最短匹配, 即匹配到“(.*)?”后面的限定字符就结束匹配。
举例来说,表1中的第一关键词1,可以表示为一个正则表达式“(办|办理|申办|申请)(.*)?卡”。其中,“办”、“办理”、“申办”、“申请”、“卡”均为子关键词,“()”、“|”、“(.*)?”为元字符。如果某个文本中包括“办”、“办理”、“申办”、“申请”这4个子关键词 中的任意一个,并且在其后匹配到关键词“卡”,则该正则表达式能够匹配上该文本。也就是 说,该文本中包括第一关键词1。
此处的第一关键词与前述的第二关键词可以相同,也可以不同,用户可以根据关注的关 键词的不同或者应用场景的不同来进行调整,本申请对此不做限制。
待聚类文本集包括至少2个待聚类的文本。在利用第一约束规则预处理待聚类文本集时, 将待聚类文本集中符合第一约束规则的文本存储到相应的第一预处理集合中,用于后续步骤。 待聚类文本集中的部分文本可能不符合任意一条第一约束规则,这些文本则不会被存储到第 一预处理集合中。
当本申请实施例的k-means文本聚类方法中存在m条第一约束规则的时候,利用第一约 束规则预处理待聚类文本集,相应地得到m个第一预处理集合,其中,m为≥1的正整数。
以下通过另一个实例来进一步说明S801的步骤。假设待聚类文本集包括文本A、文本B、 文本C……文本H、文本I、文本J、文本L共11个文本。表13为本实例中,当存在3个第 一约束规则时,第一约束规则与第一预处理集合的对应关系。其中,文本A、文本B都符合 第一约束规则1;文本C、文本D、文本E都符合第一约束规则2;文本F、文本G都符合第 一约束规则3。
表13第一预处理集合的示例
约束规则 预处理集合 文本
第一约束规则1 第一预处理集合1(Must-set1) 文本A,文本B
第一约束规则2 第一预处理集合2(Must-set2) 文本C,文本D,文本E
第一约束规则3 第一预处理集合3(Must-set3) 文本F,文本G
S200:获取所述待聚类文本集中的k个文本作为簇心,k<N,N为待聚类文本集中文本 的总数量。
S300:如果簇心包含于第二预处理集合的任一个子集合中,则将该第二预处理集合的另 一个子集合中的文本添加到与该簇心对应的类簇互斥集合中。
步骤S200和S300可以参考第一个实施例中相关的描述,此处不再赘述。沿用S100中的 例子,并且S200-S300的步骤采用与第一个实施例步骤S300的例子相同的操作,则可以得到 与第一个实施例中表3示出的相同的结果。
S802:如果簇心包含于第一预处理集合中,则将该第一预处理集合中除该簇心外的其余 文本添加到与簇心对应的类簇中,清除所述待聚类文本集中已经添加到类簇中的文本。
在S802的步骤中,可以依次遍历所有簇心,对于每一个簇心,如果该簇心包含于第一预 处理集合中,将与该簇心属于同一个第一预处理集合中的其余文本添加到与该簇心对应的类 簇中,然后清除待聚类文本集中已经添加到类簇中的文本。如果该簇心不包含于任何一个第 一预处理集合中,则对下一个簇心进行处理,直到所有簇心都处理完毕。
需要说明的是,S402的步骤和S300的步骤顺序可以交换,本申请对二者的先后顺序不 做限定。由于S403的步骤和S300的步骤都需要遍历簇心,因此,在一种实现方式中,可以 只对簇心进行一次遍历,例如,针对每一个簇心,可以先判断该簇心是否包含于第二预处理 集合的任一个子集合中,如果是,则将该第二预处理集合的另一个子集合中的文本添加到与 该簇心对应的类簇互斥集合中;再判断该簇心是否包含于第一预处理集合中,如果是,则将 该第一预处理集合中除该簇心外的其余文本添加到与簇心对应的类簇中,清除所述待聚类文 本集中已经添加到类簇中的文本。直到所有簇心遍历完毕,然后进行后续的S400和S500的 步骤。
沿用本实施例中前述S801的步骤中的实例,假设S200的步骤获取3个文本作为簇心, 分别是:文本A、文本D和文本H,则此时待聚类文本集中尚未归类的文本共有8个:文本B、 文本C、文本E、文本F、文本G、文本I、文本J、文本L。
在执行了S802的步骤之后,可以得到表14示出的结果。具体来说,首先针对类簇1的 簇心——文本A,由于文本A包含于第一预处理集合1中,因此将文本B添加到类簇1中。然后针对下一个簇心——文本D,由于文本D包含于第一预处理集合2中,因此将文本C和 文本E添加到类簇2中。最后针对下一个簇心——文本H,由于文本H不包含于任何一个第 一预处理集合中,因此,此时类簇3中除文本H之外尚没有其他文本。
表14S802的步骤之后类簇情况的示例
类簇序号 簇心 类簇中的其余文本
类簇1 文本A 文本B
类簇2 文本D 文本C、文本E
类簇3 文本H ——
在S802的步骤之前,待聚类文本集包括8个尚未归类的文本。在将第一预处理集合中除 该簇心外的其余文本添加到与簇心对应的类簇中的步骤之后,清除待聚类文本集中已经添加 到类簇中的文本,也就是清除文本B、文本C和文本E。此时,待聚类文本集中还剩下5个尚 未归类的文本:文本F、文本G、文本I、文本J、文本L。
S400:如果待聚类文本集中的当前文本包含于x个类簇互斥集合中,则计算除类簇互斥 集合所对应的簇心以外其他(k-x)个簇心与当前文本的距离,将当前文本添加到与其距离最 近的簇心所对应的类簇中,其中,0<x<k;
S500:如果待聚类文本集中的当前文本不包含于任何一个类簇互斥集合中,或者当前文 本包含于全部类簇互斥集合中,则计算所有簇心与当前文本的距离,将当前文本添加到与其 距离最近的簇心所对应的类簇中。
S600:重新计算每个类簇的新的簇心,如果新的簇心满足预设的停止条件,则输出全部 类簇。
步骤S400至S600的步骤可以参考第一个实施例中相关的描述,此处不再赘述。
S600的步骤中,如果新的簇心不满足预设的停止条件,则重置待聚类文本集,重置类簇 互斥集合,以新的簇心为簇心,重复执行前述的S300、S802、S400和S500的步骤,然后再 重新计算每个类簇的新的簇心。这里每一次重复S300、S802、S400和S500的步骤,以及计算每个类簇的新的簇心的过程,累记一次迭代过程。直到新的簇心满足预设的停止条件,则输出全部类簇。
以下沿用本实施例中前述S802的步骤中的实例来进一步说明。此时待聚类文本集中还剩 下5个尚未归类的文本:文本F、文本G、文本I、文本J、文本L。
(1)判断文本F是否包含于表3的类簇互斥集合中,判断结果是文本F包含于类簇互斥 集合2中,类簇互斥集合2对应的簇心2为文本D,因此,分别计算除簇心2“文本D”之外 的其他簇心,也就是簇心1和簇心3,与文本F之间的距离。假设文本F与簇心3“文本H” 的距离最近,则将文本F添加到类簇3中。
(2)判断文本G是否包含于表3的类簇互斥集合中,判断结果是文本G包含于类簇互斥 集合2中,类簇互斥集合2对应的簇心2为文本D,因此,分别计算除簇心2“文本D”之外 的其他簇心,也就是簇心1和簇心3,与文本G之间的距离。假设文本G与簇心3“文本H” 的距离最近,则将文本G添加到类簇3中。
(3)判断文本I是否包含于表3的类簇互斥集合中,判断结果是文本I不包含于任何一 个类簇互斥集合中,则分别计算文本I与三个簇心之间的距离。假设文本I与簇心1“文本A” 的距离最近,则将文本I添加到类簇1中。
(4)判断文本J是否包含于表3的类簇互斥集合中,判断结果是文本J包含于类簇互斥 集合1中,类簇互斥集合1对应的簇心1为文本A,因此,分别计算除簇心1“文本A”之外 的其他簇心,也就是簇心2和簇心3,与文本J之间的距离。假设文本J与簇心3“文本H” 的距离最近,则将文本J添加到类簇3中。
(5)判断文本L是否包含于表3的类簇互斥集合中,判断结果是文本L不包含于任何一 个类簇互斥集合中,则分别计算文本L与三个簇心之间的距离。假设文本L与簇心3“文本H” 的距离最近,则将文本L添加到类簇3中。
至此,待聚类文本集中所有的文本都已经被聚类到相应的类簇中,结果同表4。
经过一次迭代之后,假设重新计算每个类簇的新的簇心,分别为:类簇1——文本B,类 簇2——文本C,类簇3——文本J。
若经过计算,类簇1的原簇心文本A与新的簇心文本B之间的距离小于预设阈值,类簇 2的原簇心文本D与新的簇心文本C之间的距离小于预设阈值,并且类簇3的原簇心文本H与新的簇心文本J之间的距离小于预设阈值,则此时新的簇心满足停止条件,输出全部类簇, 结果同表5。
在本实施例的聚类方法中,首先分别利用内置于k-means聚类方法中的第一约束规则和 第二约束规则预处理待聚类文本集,得到第一预处理集合和第二预处理集合。然后利用第一 预处理集合,将待聚类文本集中与簇心共同符合第一约束规则的文本先进行归类。这样,已 经归类到类簇中的文本就不再需要一一计算与每一个簇心的距离,从而降低了计算的复杂度。 接着,对于待聚类文本中剩余的尚未归类的每一个文本,再判断该文本是否包含于类簇互斥 集合中,以此来排除需要计算与文本之间的距离的簇心,从而减少了归类时需要参与计算的 簇心的数量,进而进一步降低了文本聚类的计算复杂度。尤其是对于待聚类文本集中的文本 数量大、聚类的类簇多的情况,采用本申请的内置约束规则的k-means聚类方法可以显著地 降低计算复杂度。
可选地,请参考图4,在S400或S500中的将当前文本添加到与其距离最近的簇心所对 应的类簇中的步骤之后,还可以包括:
S803:如果当前文本包含于第一预处理集合中,则将该第一预处理集合中除当前文本外 的其余文本添加到当前文本所在的类簇中,清除所述待聚类文本集中已经添加到类簇中的文 本。
沿用前述S802的步骤中的实例来进一步说明。此时待聚类文本集中还剩下5个尚未归类 的文本:文本F、文本G、文本I、文本J、文本L。
(1)判断文本F是否包含于表3的类簇互斥集合中,判断结果是文本F包含于类簇互斥 集合2中,类簇互斥集合2对应的簇心2为文本D,因此,分别计算除簇心2“文本D”之外 的其他簇心,也就是簇心1和簇心3,与文本F之间的距离。假设文本F与簇心3“文本H” 的距离最近,则将文本F添加到类簇3中。
由于文本F包括在表13所示的第一预处理集合3中,则将第一预处理集合3中除文本F 之外的其余文本,也就是文本G,添加到类簇3中,然后清除待聚类文本集中的文本G。
至此,待聚类文本集中还剩下3个尚未归类的文本:文本I、文本J、文本L。
(2)判断文本I是否包含于表3的类簇互斥集合中,判断结果是文本I不包含于任何一 个类簇互斥集合中,则分别计算文本I与三个簇心之间的距离。假设文本I与簇心1“文本A” 的距离最近,则将文本I添加到类簇1中。
(3)判断文本J是否包含于表3的类簇互斥集合中,判断结果是文本J包含于类簇互斥 集合1中,类簇互斥集合1对应的簇心1为文本A,因此,分别计算除簇心1“文本A”之外 的其他簇心,也就是簇心2和簇心3,与文本J之间的距离。假设文本J与簇心3“文本H” 的距离最近,则将文本J添加到类簇3中。
(4)判断文本L是否包含于表3的类簇互斥集合中,判断结果是文本L不包含于任何一 个类簇互斥集合中,则分别计算文本L与三个簇心之间的距离。假设文本L与簇心3“文本H” 的距离最近,则将文本L添加到类簇3中。
至此,待聚类文本集中所有的文本都已经被聚类到相应的类簇中,结果同表4。
通过上述的例子可以发现,通过增加S803的步骤,在文本F已经添加到类簇3中以后, 由于文本G与文本F都处于第一预处理集合3中,也就是都符合第一约束规则3,故而将文 本F直接添加到类簇3中,省略了一一计算文本F与每一个簇心之间的距离的步骤,从而进 一步减少了需要一一计算与簇心之间的距离的待聚类的文本数量,进一步降低了文本聚类的 计算复杂度。
在本申请的第三个实施例中,提供一种内置约束规则的k-means文本聚类方法,该方法 将第一个实施例以及第二个实施例中的方法结合在一起,即包括:
S801:利用第一约束规则预处理待聚类文本集,得到与所述第一约束规则对应的第一预 处理集合,符合所述第一约束规则的文本必须聚类到相同的类簇中,所述第一预处理集合包 括符合对应的第一约束规则的文本。
S100:利用第二约束规则预处理待聚类文本集,得到与所述第二约束规则对应的第二预 处理集合,所述第二约束规则包括两个子规则,符合其中一个子规则的文本与符合另一个子 规则的文本必须聚类到不同的类簇中,所述第二预处理集合包括两个子集合,每一个所述子 集合包括符合一个对应的子规则的文本。
S200:获取所述待聚类文本集中的k个文本作为簇心,k<N,N为待聚类文本集中文本 的总数量。
遍历簇心,对每一个簇心分别判断该簇心是否包含于第二预处理集合的任一个子集合中, 以及判断该簇心是否包含于第一预处理集合中。如果满足执行S300和S802的条件,则执行 S300和S802的步骤。较佳地,S300的步骤在S802的步骤之前执行。
S300:如果簇心包含于第二预处理集合的任一个子集合中,则将该第二预处理集合的另 一个子集合中的文本添加到与该簇心对应的类簇互斥集合中。
S802:如果簇心包含于第一预处理集合中,则将该第一预处理集合中除该簇心外的其余 文本添加到与簇心对应的类簇中,清除所述待聚类文本集中已经添加到类簇中的文本。
遍历待聚类文本集中尚未归类的文本。对每一个文本,判断该文本是否包含于类簇互斥 集合中。如果包含于部分类簇互斥集合中,则执行S400的步骤;如果包含于全部类簇互斥集 合中,或者不包含于任何一个类簇互斥集合中,则执行S500的步骤。再判断当前文本是否包 含于第二预处理集合的任一个子集合中,如果是,则执行S700的步骤;判断当前文本是否包 含于第一预处理集合中,如果是,则执行S803的步骤。
S400:如果待聚类文本集中的当前文本包含于x个类簇互斥集合中,则计算除类簇互斥 集合所对应的簇心以外其他(k-x)个簇心与当前文本的距离,将当前文本添加到与其距离最 近的簇心所对应的类簇中,其中,0<x<k。
S500:如果待聚类文本集中的当前文本不包含于任何一个类簇互斥集合中,或者当前文 本包含于全部类簇互斥集合中,则计算所有簇心与当前文本的距离,将当前文本添加到与其 距离最近的簇心所对应的类簇中。
S700:如果当前文本包含于第二预处理集合的任一个子集合中,则将该第二预处理集合 的另一个子集合中的文本添加到与当前文本所属类簇的簇心对应的类簇互斥集合中。
S803:如果当前文本包含于第一预处理集合中,则将该第一预处理集合中除当前文本外 的其余文本添加到当前文本所在的类簇中,清除所述待聚类文本集中已经添加到类簇中的文 本。
通过S400和S500的步骤,将待聚类文本集中的文本都添加到与其距离最近的簇心所对 应的类簇中,完成了归类的过程。而通过S700和S803的步骤,在对待聚类文本集中后续的 文本进行归类时,减少了需要参与计算的簇心的数量,以及减少了需要参与计算的文本的数 量,从而降低文本聚类是计算的复杂度。
遍历完所有待聚类文本集中的文本,则所有的文本都归类完毕,然后执行S600的步骤。
S600:重新计算每个类簇的新的簇心,如果新的簇心满足预设的停止条件,则输出全部 类簇。
如果新的簇心不满足预设的停止条件,则重置待聚类文本集,重置类簇互斥集合使其为 空。然后以新的簇心为簇心,重复执行S300、S802、S400、S500、S700以及S803的步骤, 再重新计算每个类簇的新的簇心。这里每重复一次,就累记一次迭代过程。直到新的簇心满 足预设的停止条件,则输出全部类簇。
请参考图5,在本申请的第四个实施例中,提供一种内置约束规则的k-means文本聚类 装置,包括:
第二预处理单元3,用于利用第二约束规则预处理待聚类文本集,得到与所述第二约束 规则对应的第二预处理集合,其中,所述第二约束规则包括两个子规则,符合其中一个子规 则的文本与符合另一个子规则的文本必须聚类到不同的类簇中,所述第二预处理集合包括两 个子集合,每一个所述子集合包括符合一个对应的子规则的文本;可选地,所述第二约束规 则的子规则包括至少一个互斥词袋,所述互斥词袋包括至少一个预设的第二关键词,当同一 个互斥词袋中的第二关键词的数量≥2个时,所述互斥词袋还包括所述第二关键词之间的逻 辑与的关系。
聚类单元2,用于获取所述待聚类文本集中的k个文本作为簇心;在簇心包含于第二预 处理集合的任一个子集合中的情况下将该第二预处理集合的另一个子集合中的文本添加到与 该簇心对应的类簇互斥集合中;在待聚类文本集中的当前文本包含于x个类簇互斥集合中的 情况下计算除类簇互斥集合所对应的簇心以外其他(k-x)个簇心与当前文本的距离,将当前 文本添加到与其距离最近的簇心所对应的类簇中;在待聚类文本集中的当前文本不包含于任 何一个类簇互斥集合中,或者当前文本包含于全部类簇互斥集合中的情况下计算所有簇心与 当前文本的距离,将当前文本添加到与其距离最近的簇心所对应的类簇中;以及,重新计算 每个类簇的新的簇心,如果新的簇心满足预设的停止条件,则输出全部类簇。其中,k<N,N 为待聚类文本集中文本的总数量;0<x<k。
可选地,所述聚类单元2还用于在当前文本包含于第二预处理集合的任一个子集合中的 情况下将该第二预处理集合的另一个子集合中的文本添加到与当前文本所属类簇的簇心对应 的类簇互斥集合中。
可选地,上述内置约束规则的k-means文本聚类装置,还包括:
第一预处理单元1,用于利用第一约束规则预处理待聚类文本集,得到与所述第一约束 规则对应的第一预处理集合,其中,符合所述第一约束规则的文本必须聚类到相同的类簇中, 所述第一预处理集合包括符合对应的第一约束规则的文本;可选地,所述第一约束规则包括 至少一个聚合词袋,所述聚合词袋包括至少一个预设的第一关键词,当同一个聚合词袋中的 第一关键词的数量≥2个时,所述聚合词袋还包括第一关键词之间的逻辑与的关系。
所述聚合单元2还用于在簇心包含于第一预处理集合中的情况下将该第一预处理集合中 除该簇心外的其余文本添加到与簇心对应的类簇中,清除所述待聚类文本集中已经添加到类 簇中的文本。
可选地,所述聚合单元2还用于在当前文本包含于第一预处理集合中的情况下将该第一 预处理集合中除当前文本外的其余文本添加到当前文本所在的类簇中,清除所述待聚类文本 集中已经添加到类簇中的文本。
本说明书中各个实施例之间相同相似的部分互相参见即可。以上所述的本发明实施方式 并不构成对本发明保护范围的限定。

Claims (10)

1.一种内置约束规则的k-means文本聚类方法,其特征在于,包括以下步骤:
利用第二约束规则预处理待聚类文本集,得到与所述第二约束规则对应的第二预处理集合,所述第二约束规则包括两个子规则,符合其中一个子规则的文本与符合另一个子规则的文本必须聚类到不同的类簇中,所述第二预处理集合包括两个子集合,每一个所述子集合包括符合一个对应的子规则的文本;
获取所述待聚类文本集中的k个文本作为簇心,k<N,N为待聚类文本集中文本的总数量;
如果簇心包含于第二预处理集合的任一个子集合中,则将该第二预处理集合的另一个子集合中的文本添加到与该簇心对应的类簇互斥集合中;
如果待聚类文本集中的当前文本包含于x个类簇互斥集合中,则计算除类簇互斥集合所对应的簇心以外其他(k-x)个簇心与当前文本的距离,将当前文本添加到与其距离最近的簇心所对应的类簇中,其中,0<x<k;
如果待聚类文本集中的当前文本不包含于任何一个类簇互斥集合中,或者当前文本包含于全部类簇互斥集合中,则计算所有簇心与当前文本的距离,将当前文本添加到与其距离最近的簇心所对应的类簇中;
重新计算每个类簇的新的簇心,如果新的簇心满足预设的停止条件,则输出全部类簇。
2.根据权利要求1所述的内置约束规则的k-means文本聚类方法,其特征在于,在将当前文本添加到与其距离最近的簇心所对应的类簇中的步骤之后,还包括:
如果当前文本包含于第二预处理集合的任一个子集合中,则将该第二预处理集合的另一个子集合中的文本添加到与当前文本所属类簇的簇心对应的类簇互斥集合中。
3.根据权利要求1或2所述的内置约束规则的k-means文本聚类方法,其特征在于,所述第二约束规则的子规则包括至少一个互斥词袋,所述互斥词袋包括至少一个预设的第二关键词,当同一个互斥词袋中的第二关键词的数量≥2个时,所述互斥词袋还包括所述第二关键词之间的逻辑与的关系。
4.根据权利要求1所述的内置约束规则的k-means文本聚类方法,其特征在于,在获取所述待聚类文本集中的k个文本作为簇心之前,还包括:
利用第一约束规则预处理待聚类文本集,得到与所述第一约束规则对应的第一预处理集合,符合所述第一约束规则的文本必须聚类到相同的类簇中,所述第一预处理集合包括符合对应的第一约束规则的文本;
在如果簇心包含于第二预处理集合的任一个子集合中,则将该第二预处理集合的另一个子集合中的文本添加到与该簇心对应的类簇互斥集合中的步骤之后,还包括:
如果簇心包含于第一预处理集合中,则将该第一预处理集合中除该簇心外的其余文本添加到与簇心对应的类簇中,清除所述待聚类文本集中已经添加到类簇中的文本。
5.根据权利要求4所述的内置约束规则的k-means文本聚类方法,其特征在于,在将当前文本添加到与其距离最近的簇心所对应的类簇中的步骤之后,还包括:
如果当前文本包含于第一预处理集合中,则将该第一预处理集合中除当前文本外的其余文本添加到当前文本所在的类簇中,清除所述待聚类文本集中已经添加到类簇中的文本。
6.根据权利要求4或5所述的内置约束规则的k-means文本聚类方法,其特征在于,所述第一约束规则包括至少一个聚合词袋,所述聚合词袋包括至少一个预设的第一关键词,当同一个聚合词袋中的第一关键词的数量≥2个时,所述聚合词袋还包括第一关键词之间的逻辑与的关系。
7.一种内置约束规则的k-means文本聚类装置,其特征在于,包括:
第二预处理单元,用于利用第二约束规则预处理待聚类文本集,得到与所述第二约束规则对应的第二预处理集合,其中,所述第二约束规则包括两个子规则,符合其中一个子规则的文本与符合另一个子规则的文本必须聚类到不同的类簇中,所述第二预处理集合包括两个子集合,每一个所述子集合包括符合一个对应的子规则的文本;
聚合单元,用于获取所述待聚类文本集中的k个文本作为簇心;在簇心包含于第二预处理集合的任一个子集合中的情况下将该第二预处理集合的另一个子集合中的文本添加到与该簇心对应的类簇互斥集合中;在待聚类文本集中的当前文本包含于x个类簇互斥集合中的情况下计算除类簇互斥集合所对应的簇心以外其他(k-x)个簇心与当前文本的距离,将当前文本添加到与其距离最近的簇心所对应的类簇中;在待聚类文本集中的当前文本不包含于任何一个类簇互斥集合中,或者当前文本包含于全部类簇互斥集合中的情况下计算所有簇心与当前文本的距离,将当前文本添加到与其距离最近的簇心所对应的类簇中;以及,重新计算每个类簇的新的簇心,如果新的簇心满足预设的停止条件,则输出全部类簇;其中,k<N,N为待聚类文本集中文本的总数量,0<x<k。
8.根据权利要求7所述的内置约束规则的k-means文本聚类装置,其特征在于,所述聚合单元还用于在当前文本包含于第二预处理集合的任一个子集合中的情况下将该第二预处理集合的另一个子集合中的文本添加到与当前文本所属类簇的簇心对应的类簇互斥集合中。
9.根据权利要求7所述的内置约束规则的k-means文本聚类装置,其特征在于,还包括:
第一预处理单元,用于利用第一约束规则预处理待聚类文本集,得到与所述第一约束规则对应的第一预处理集合,其中,符合所述第一约束规则的文本必须聚类到相同的类簇中,所述第一预处理集合包括符合对应的第一约束规则的文本;
所述聚合单元还用于在簇心包含于第一预处理集合中的情况下将该第一预处理集合中除该簇心外的其余文本添加到与簇心对应的类簇中,清除所述待聚类文本集中已经添加到类簇中的文本。
10.根据权利要求9所述的内置约束规则的k-means文本聚类装置,其特征在于,所述聚合单元还用于在当前文本包含于第一预处理集合中的情况下将该第一预处理集合中除当前文本外的其余文本添加到当前文本所在的类簇中,清除所述待聚类文本集中已经添加到类簇中的文本。
CN201711236589.5A 2017-11-30 2017-11-30 内置约束规则的k-means文本聚类方法及装置 Active CN107943982B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711236589.5A CN107943982B (zh) 2017-11-30 2017-11-30 内置约束规则的k-means文本聚类方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711236589.5A CN107943982B (zh) 2017-11-30 2017-11-30 内置约束规则的k-means文本聚类方法及装置

Publications (2)

Publication Number Publication Date
CN107943982A true CN107943982A (zh) 2018-04-20
CN107943982B CN107943982B (zh) 2020-08-21

Family

ID=61946929

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711236589.5A Active CN107943982B (zh) 2017-11-30 2017-11-30 内置约束规则的k-means文本聚类方法及装置

Country Status (1)

Country Link
CN (1) CN107943982B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108764726A (zh) * 2018-05-29 2018-11-06 阿里巴巴集团控股有限公司 根据规则对请求进行决策的方法及装置
CN114896393A (zh) * 2022-04-15 2022-08-12 中国电子科技集团公司第十研究所 一种数据驱动的文本增量聚类方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130159309A1 (en) * 2009-06-25 2013-06-20 University Of Tennessee Research Foundation Method and apparatus for predicting object properties and events using similarity-based information retrieval and modeling
CN105447119A (zh) * 2015-11-16 2016-03-30 北京京东尚科信息技术有限公司 一种文本聚类方法
CN105512277A (zh) * 2015-12-04 2016-04-20 北京航空航天大学 一种面向图书市场书名的短文本聚类方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130159309A1 (en) * 2009-06-25 2013-06-20 University Of Tennessee Research Foundation Method and apparatus for predicting object properties and events using similarity-based information retrieval and modeling
CN105447119A (zh) * 2015-11-16 2016-03-30 北京京东尚科信息技术有限公司 一种文本聚类方法
CN105512277A (zh) * 2015-12-04 2016-04-20 北京航空航天大学 一种面向图书市场书名的短文本聚类方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
尹学松等: "基于成对约束的判别型半监督聚类分析", 《JOURNAL OF SOFTWARE》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108764726A (zh) * 2018-05-29 2018-11-06 阿里巴巴集团控股有限公司 根据规则对请求进行决策的方法及装置
CN108764726B (zh) * 2018-05-29 2021-09-21 创新先进技术有限公司 根据规则对请求进行决策的方法及装置
CN114896393A (zh) * 2022-04-15 2022-08-12 中国电子科技集团公司第十研究所 一种数据驱动的文本增量聚类方法
CN114896393B (zh) * 2022-04-15 2023-06-27 中国电子科技集团公司第十研究所 一种数据驱动的文本增量聚类方法

Also Published As

Publication number Publication date
CN107943982B (zh) 2020-08-21

Similar Documents

Publication Publication Date Title
US9875294B2 (en) Method and apparatus for classifying object based on social networking service, and storage medium
CN110929752B (zh) 基于知识驱动和数据驱动的分群方法及相关设备
US11580376B2 (en) Electronic apparatus and method for optimizing trained model
CN106156092B (zh) 数据处理方法及装置
CN113379042B (zh) 保护数据隐私的业务预测模型训练方法及装置
KR102134472B1 (ko) 유전 알고리즘을 활용한 콘볼루션 뉴럴 네트워크의 최적 구조 탐색 방법
CN107679539B (zh) 一种基于局部感知野的单卷积神经网络局部信息与全局信息整合方法
CN110310114A (zh) 对象分类方法、装置、服务器及存储介质
CN112418320B (zh) 一种企业关联关系识别方法、装置及存储介质
CN107729423A (zh) 一种大数据处理方法及装置
CN110969172A (zh) 一种文本的分类方法以及相关设备
CN112307860A (zh) 图像识别模型训练方法和装置、图像识别方法和装置
CN107943982A (zh) 内置约束规则的k‑means文本聚类方法及装置
CN109117475A (zh) 一种文本改写的方法以及相关设备
Scaman et al. Convergence rates of non-convex stochastic gradient descent under a generic lojasiewicz condition and local smoothness
CN108460038A (zh) 规则匹配方法及其设备
CN107908771A (zh) 内置约束规则的k‑means文本聚类方法及装置
WO2022183019A1 (en) Methods for mitigation of algorithmic bias discrimination, proxy discrimination and disparate impact
CN114881761A (zh) 相似样本的确定方法与授信额度的确定方法
CN113392086B (zh) 基于物联网的医疗数据库构建方法、装置及设备
CN114021699A (zh) 一种基于梯度的卷积神经网络剪枝方法及装置
CN110968690B (zh) 词语的聚类划分方法和装置、设备以及存储介质
JP2022154862A (ja) 情報処理方法、プログラム及び情報処理装置
Guevara et al. Fuzzy set similarity using a distance-based kernel on fuzzy sets
Siers et al. RBClust: High quality class-specific clustering using rule-based classification.

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20190905

Address after: Room 630, 6th floor, Block A, Wanliu Xingui Building, 28 Wanquanzhuang Road, Haidian District, Beijing

Applicant after: China Science and Technology (Beijing) Co., Ltd.

Address before: Room 601, Block A, Wanliu Xingui Building, 28 Wanquanzhuang Road, Haidian District, Beijing

Applicant before: Beijing Shenzhou Taiyue Software Co., Ltd.

CB02 Change of applicant information
CB02 Change of applicant information

Address after: 230000 zone B, 19th floor, building A1, 3333 Xiyou Road, hi tech Zone, Hefei City, Anhui Province

Applicant after: Dingfu Intelligent Technology Co., Ltd

Address before: Room 630, 6th floor, Block A, Wanliu Xingui Building, 28 Wanquanzhuang Road, Haidian District, Beijing

Applicant before: DINFO (BEIJING) SCIENCE DEVELOPMENT Co.,Ltd.

GR01 Patent grant
GR01 Patent grant