CN116304012A - 一种大规模文本聚类方法及装置 - Google Patents
一种大规模文本聚类方法及装置 Download PDFInfo
- Publication number
- CN116304012A CN116304012A CN202211538156.6A CN202211538156A CN116304012A CN 116304012 A CN116304012 A CN 116304012A CN 202211538156 A CN202211538156 A CN 202211538156A CN 116304012 A CN116304012 A CN 116304012A
- Authority
- CN
- China
- Prior art keywords
- texts
- text
- similarity
- clustering
- candidate
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 53
- 239000013598 vector Substances 0.000 claims abstract description 67
- 239000011159 matrix material Substances 0.000 claims abstract description 59
- 238000004422 calculation algorithm Methods 0.000 claims description 9
- 238000012216 screening Methods 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 5
- 238000013135 deep learning Methods 0.000 claims description 5
- 238000012545 processing Methods 0.000 description 16
- 230000008569 process Effects 0.000 description 11
- 230000000694 effects Effects 0.000 description 6
- 230000002776 aggregation Effects 0.000 description 4
- 238000004220 aggregation Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000002372 labelling Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000001914 filtration Methods 0.000 description 3
- 238000012549 training Methods 0.000 description 3
- 238000012512 characterization method Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000007621 cluster analysis Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000035800 maturation Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/35—Clustering; Classification
- G06F16/353—Clustering; Classification into predefined classes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/35—Clustering; Classification
- G06F16/355—Class or cluster creation or modification
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本说明书实施例提供了一种大规模文本聚类方法及装置。该方法中包含粗聚类和二次精细聚类。首先,通过语义表示模型确定多条文本分别对应的语义向量;基于多条文本的语义向量,确定多条文本彼此之间的相似度矩阵。接着,在粗聚类阶段,从相似度矩阵中确定多条文本分别对应的相似度最大的M个相似文本,并在M个相似文本对应的相似度大于阈值时,将对应的文本作为筛选出的中心文本,以便快速地去除大量孤立噪点。然后,基于中心文本在相似度矩阵中对应的数据,得到候选类簇,并对存在交叉文本的候选类簇进行合并,之后再对合并后的类簇进行二次精细聚类。
Description
技术领域
本说明书一个或多个实施例涉及数据处理技术领域,尤其涉及一种大规模文本聚类方法及装置。
背景技术
在互联网平台上,每时每刻都会产生大量的文本数据。通过文本聚类的方式,计算设备可以将这些文本数据中具有相同语义的文本进行聚类,然后通过统计计算就能得到其中的热点信息。例如,在新闻领域,通过对新闻标题的聚类,能够及时地获取社会上发生的热点事件,并可以用于后续的用户推送等场景;在客服平台领域,可以对一段时间内用户咨询反馈的问题进行聚类分析,从而及时识别出用户反馈的热点问题,方便系统进行问题预警。文本数据中也常常包含隐私数据,在对文本数据进行聚类时,也要考虑对文本数据中的隐私数据进行保护,使其不被泄露的问题。文本聚类还可以应用在更多的场景,从而提供更多的便利性。目前,业界面临对大规模海量文本数据进行聚类时耗时较长的问题。
因此,希望能有改进的方案,可以在大规模场景下对文本进行更快速的聚类。
发明内容
本说明书一个或多个实施例描述了一种大规模文本聚类方法及装置,以在大规模场景下对文本进行更快速的聚类。具体的技术方案如下。
第一方面,实施例提供了一种大规模文本聚类方法,包括:
针对包含多条文本的待聚类文本,通过语义表示模型,确定所述多条文本分别对应的语义向量;
基于多条文本的语义向量,确定多条文本彼此之间的相似度矩阵;
从所述相似度矩阵中确定所述多条文本分别对应的相似度最大的M个相似文本,并在所述M个相似文本对应的相似度大于第一阈值时,将对应的文本作为筛选出的中心文本;
基于所述中心文本在所述相似度矩阵中对应的数据,对所述待聚类文本进行聚类。
在一种实施方式中,所述确定所述多条文本分别对应的语义向量的步骤,包括:
通过语义表示模型,确定所述多条文本分别对应的包含各自文本的全局语义信息的语义向量。
在一种实施方式中,所述从所述相似度矩阵中确定所述多条文本分别对应的相似度最大的M个相似文本的步骤,包括:
采用利用深度学习框架封装的并行计算工具,或者采用向量检索引擎通过构建索引,从所述相似度矩阵中确定所述多条文本分别对应的相似度最大的M个相似文本。
在一种实施方式中,所述在所述M个相似文本对应的相似度大于第一阈值时,将对应的文本作为筛选出的中心文本的步骤,包括:
针对所述多条文本中的任意一条文本,将该文本对应的所述M个相似文本的最小相似度与第一阈值进行比较,当所述最小相似度大于所述第一阈值时,将该文本作为筛选出的中心文本。
在一种实施方式中,所述基于所述中心文本在所述相似度矩阵中对应的数据,对所述待聚类文本进行聚类的步骤,包括:
从所述相似度矩阵中分别确定若干个中心文本的相似文本,得到若干个第一候选类簇;
对存在交叉文本的第一候选类簇进行合并,得到若干个第二候选类簇;
基于所述第二候选类簇各自包含的文本,分别对所述若干个第二候选类簇进行二次精细聚类,得到所述待聚类文本的聚类类簇。
在一种实施方式中,所述从所述相似度矩阵中分别确定若干个中心文本的相似文本的步骤,包括:
针对若干个中心文本中的任意一个第一中心文本,从所述相似度矩阵中确定所述第一中心文本对应的相似度最大的C个相似文本,将所述C个相似文本中相似度大于第二阈值的相似文本以及所述第一中心文本,作为对应的一个第一候选类簇,从而得到若干个第一候选类簇;其中,所述C大于所述M。
在一种实施方式中,所述对存在交叉文本的第一候选类簇进行合并的步骤,包括:
按照包含的文本数量从多到少,对所述若干个第一候选类簇进行排序;
对排序后的若干个第一候选类簇依次进行交叉文本判断,并基于判断结果进行类簇合并。
在一种实施方式中,所述对排序后的若干个第一候选类簇依次进行交叉文本判断的步骤,包括:
确定所述若干个第一候选类簇包含的文本标识的哈希值;
基于所述哈希值之间的匹配,对排序后的若干个第一候选类簇依次进行交叉文本判断。
在一种实施方式中,在基于判断结果进行类簇合并之后,还包括:
对于任意一个合并后的第一候选类簇,如果该合并后的第一候选类簇包含的文本数量大于预设数量阈值,则停止对该合并后的第一候选类簇继续合并。
在一种实施方式中,所述分别对所述若干个第二候选类簇进行二次精细聚类的步骤,包括:
基于所述第二候选类簇各自包含的文本,采用层次聚类算法,分别对所述若干个第二候选类簇进行二次精细聚类。
在一种实施方式中,其中,所述M在预设范围内取值;或者,所述M基于所述多条文本的总数量确定。
第二方面,实施例提供了一种大规模文本聚类装置,包括:
语义模块,配置为针对包含多条文本的待聚类文本,通过语义表示模型,确定所述多条文本分别对应的语义向量;
相似度模块,配置为基于多条文本的语义向量,确定多条文本彼此之间的相似度矩阵;
筛选模块,配置为从所述相似度矩阵中确定所述多条文本分别对应的相似度最大的M个相似文本,并在所述M个相似文本对应的相似度大于第一阈值时,将对应的文本作为筛选出的中心文本;
聚类模块,配置为基于所述中心文本在所述相似度矩阵中对应的数据,对所述待聚类文本进行聚类。
在一种实施方式中,所述聚类模块包括:
确定子模块,配置为从所述相似度矩阵中分别确定若干个中心文本的相似文本,得到若干个第一候选类簇;
合并子模块,配置为对存在交叉文本的第一候选类簇进行合并,得到若干个第二候选类簇;
聚类子模块,配置为基于所述第二候选类簇各自包含的文本,分别对所述若干个第二候选类簇进行二次精细聚类,得到所述待聚类文本的聚类类簇。
第三方面,实施例提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面中任一项所述的方法。
第四方面,实施例提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面中任一项所述的方法。
本说明书实施例提供的方法及装置中,基于多条文本彼此之间的相似度矩阵,通过从该相似度矩阵中确定多条文本分别对应的相似度最大的M个相似文本,并筛选出M个相似文本的相似度均大于第一阈值的文本,能够过滤掉相似文本很少的孤立噪点,筛选出可能的聚类中心文本。在大规模文本数据的场景下,这种方式不需要比对大量的相似度,从而能够快速地筛选出可能的聚类中心文本,实现对大规模文本更快速的聚类。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本说明书披露的一个实施例的实施场景示意图;
图2为实施例提供的一种大规模文本聚类方法的流程示意图;
图3为实施例提供的步骤S240的一种流程示意图;
图4为实施例提供的一种大规模文本聚类装置的示意性框图。
具体实施方式
下面结合附图,对本说明书提供的方案进行描述。
图1为本说明书披露的一个实施例的实施场景示意图。待聚类文本包括文本1和文本2等多条文本,通过语义表示模型对多条文本的向量生成过程,可以得到多条文本的语义向量,从而可以构建多条文本的语义向量之间的相似度矩阵。以该相似度矩阵作为基础数据,可以对多条文本进行高效粗聚类和二次精细聚类,从而得到针对待聚类文本的聚类结果。其中,面对大规模的待聚类文本,希望能更快速、更准确地实现文本聚类。而在高效粗聚类阶段,通过类簇筛选来快速去除孤立噪点,通过类簇凝聚快速获取候选类簇,以及通过类簇合并实现对交叉类簇的快速合并。通过这样方式,大规模文本被快速地进行了粗聚类,并且得到的粗聚类结果的数据量大大减少。接着,对粗聚类结果进行二次精细聚类,能明显提高聚类结果的准确度,也不会耗时太长。
一条文本,可以包含一个句子,也可以包括多个句子。一条文本可以包含通过标点分隔开的若干个句子。对文本的划分可以根据应用场景来区分。例如,在新闻领域,一条新闻标题可以认为是一条文本,或者一条简短的新闻陈述认为是一条文本;在客服平台领域,用户输入的一条消息可以认为是一条文本。从物理意义上来说,一条文本是包含相对完整的语义的一段文字。待聚类文本一般不具有类别标签。
文本聚类是将没有类别标签但有相同语义特征的文本聚集到一起的文本处理方式。当将文本聚集到一起时,可以根据聚集到一起的文本的数量、从文本中提取出的信息进行进一步的应用,因此文本聚类有着很重要的应用价值。
在互联网平台上,一段时间内可能产生几万条、几十万条文本。为了快速地应对大规模海量文本的聚类问题,本说明书实施例提供了一种大规模文本聚类方法。在该方法中包含以下步骤:步骤S210,针对包含多条文本的待聚类文本,通过语义表示模型确定多条文本分别对应的语义向量;步骤S220,基于多条文本的语义向量,确定多条文本彼此之间的相似度矩阵;步骤S230,从相似度矩阵中确定多条文本分别对应的相似度最大的M个相似文本,并在M个相似文本对应的相似度大于第一阈值时,将对应的文本作为筛选出的中心文本,M小于第一数值;步骤S240,基于中心文本在相似度矩阵中对应的数据,对待聚类文本进行聚类。在本实施例中,通过简单的操作步骤便能够快速地过滤掉相似文本很少的孤立噪点,避免对大量相似度进行比对的耗时操作,因此能提高本文本聚类的速度,减少耗时。
下面通过图2所示流程示意图对本实施例进行详细说明。
图2为实施例提供的一种大规模文本聚类方法的流程示意图。该实施例可以通过计算设备执行,该计算设备可以通过任何具有计算、处理能力的装置、设备、平台、设备集群等来实现。该方法包括以下步骤。
在步骤S210中,针对包含多条文本的待聚类文本,通过语义表示模型确定多条文本分别对应的语义向量。语义表示模型用于确定文本的语义向量。该语义向量是文本的一种特征表示形式,是包含了文本的语义信息的向量。提取文本的语义向量,即实现了文本的语义表示,从而将文本从文字转化为带有文本语义信息的向量。具体的,计算设备可以获取包含N条文本的待聚类文本,例如可以从其他设备中获取,或者从互联网平台中搜索得到,等等。N为大于0的整数,通常为较大的数值。
在本实施例中,可以首先获取初始的多条文本,对这多条文本进行预处理,得到待聚类文本。预处理可以包括去重、纠错等操作。在去重时,可以采用MinHash等算法进行。因此,待聚类文本可以是经过预处理后的文本。每一条文本可以存在对应的标识(ID),通过该标识对不同的文本进行区分和标记。
在确定文本的语义向量时,可以分别将每条文本输入语义表示模型,通过语义表示模型提取该文本的语义向量,从而分别得到N条文本的语义向量。例如,分别确定文本1的语义向量,文本2的语义向量,文本3的语义向量,等等。每条文本的语义向量的维度可以是预先设定的相同值。
语义向量的准确性直接决定了文本聚类时的效果。为了提高语义向量的准确性,可以选择能够提取文本的全局语义信息的语义表示模型,进而可以通过这样的语义表示模型,确定多条文本分别对应的包含各自文本的全局语义信息的语义向量。
在一种实施方式中,语义表示模型可以通过类似于SimCSE这样的对比表示模型实现。模型SimCSE利用基于Transformers的双向编码表征(Bidirectional EncoderRepresentation from Transformers,BERT)算法进行预训练,能够学习到丰富的语义信息。
在实际应用中,针对没有标注的类别标签的文本数据,可以通过对比表示模型进行自监督学习,得到语义表示模型。对比学习是一种不依赖标注数据,通过自动构造相似实例和不相似实例,使得相似实例在投影空间中比较接近,而不相似实例在投影空间中距离比较远的模型学习方式。自监督学习是一种在大规模的无监督数据基础上,通过构建不依赖人工标注的辅助任务而进行有监督的网络学习,最终学习到有价值的表征的模型学习方式。在本实施例中,具体可以采用以下步骤1~4训练语义表示模型。
步骤1,获取无标注的类别标签的第一样本文本和第二样本文本。
步骤2,通过语义表示模型,确定第一样本文本的至少两个样本语义向量,以及第二样本文本的样本语义向量。例如,可以将第一样本文本输入语义表示模型两次,可以分别得到两个语义向量,这两个语义向量的语义相同但是表现形式不同。将第二样本文本输入语义表示模型,得到对应的样本语义向量。
步骤3,基于第一样本文本的至少两个样本语义向量构建正样本对,基于第一样本文本的样本语义向量与第二样本文本的样本语义向量构建负样本对。例如,样本1的样本语义向量a与样本语义向量b构建得到一组正样本对,样本1的语义向量a与样本2的样本语义向量构成一组负样本对,样本1的语义向量b与样本3的样本语义向量构成一组负样本对。
步骤4,利用正样本对和负样本对,对语义表示模型进行更新。利用正样本对的样本语义向量之间的距离,以及负样本对的样本语义向量之间的距离构建预测损失,使得其中正样本对的样本语义向量之间的距离尽可能小,负样本对的样本语义向量之间的距离尽可能大,从而利用预测损失对语义表示模型进行更新。执行多次模型迭代,当模型训练过程收敛时可以停止训练。
以上是针对无标注文本进行模型训练的方式。如果样本数据存在标注信息,可以采用类似于Sentence-BERT的模型,通过有监督学习实现语义表示模型,从而能得到较好的语义表现效果。文本数据的标注信息可以是针对每两条文本标注的语义是否相同的标签。
在步骤S220中,基于多条文本的语义向量,确定多条文本彼此之间的相似度矩阵。
针对任意两条文本,基于这两条文本的语义向量可以确定这两条文本之间的相似度。利用这种方式可以确定任意两条文本之间的相似度,从而构建得到包含多个相似度的相似度矩阵。例如,针对N条文本,可以构建得到N*N维的相似度矩阵,其中包含N*N个相似度,采用表的形式表示该相似度矩阵如下表1。
表1
其中,相似度11、相似度12、相似度21和相似度22等是相似度矩阵中的元素。对于文本1来说,例如第二行的相似度或者第二列的相似度就是文本1与其他文本之间的相似度。
在基于两个语义向量确定相似度时,可以利用cosine函数、协方差函数或欧几里得距离算法来衡量两个语义向量之间的相似度。
为了提高计算速度,在确定大规模文本彼此之间的相似度矩阵时,可以采用已有的计算工具快速地确定大量向量之间的相似度,从而得到相似度矩阵。
在步骤S230中,从相似度矩阵中确定多条文本分别对应的相似度最大的M个相似文本,并在M个相似文本对应的相似度大于第一阈值时,将对应的文本作为筛选出的中心文本。
其中,第一阈值可以是根据经验预先设定的值。M可以在预设范围内取值,也可以基于多条文本的总数量确定。M是大于0的整数,并且M小于第一数值,第一数值可以是预设的较小数值。例如,M一般可以但不限于取3~10。M也可以取为多条文本的总数量的K分之一,K可以是预先设定的较大数值,但小于多条文本的总数量,例如当多条文本为1千万条时,K可以取值为几百万至几十万等数值。M一般可以为较小的数据,当M在一定范围内取值较小时,能够更快速地过滤掉孤立噪点。这里的孤立噪点,是指与其在语义上存在相似性的文本很少,无法形成类簇的文本。对大规模文本进行文本聚类,并不意味着要把所有文本进行聚类,而是从中找到能够聚成类的文本,并将其分别聚合成表示不同语义的若干个类簇。对于无法聚类的文本,可以在文本聚类的过程中做舍弃处理。
为了快速地从相似度矩阵中筛选出相似度最大的M个相似文本,可以采用利用深度学习框架封装的并行计算工具,例如通过深度学习框架pytorch封装的并行计算工具来实现。或者,可以采用向量检索引擎,例如采用向量检索引擎faiss,通过构建索引来实现。或者,也可以采用其他的成熟工具实现上述筛选过程。同时,上述筛选过程还可以通过图形处理器(Graphics Processing Unit,GPU)实现,从而提高处理速度。
例如,针对表1中的文本1,可以将相似度11、相似度12、…、相似度1N,利用并行计算工具可以快速地从中确定最大的M个相似度,当M为5时,最大的5个相似度假设为相似度12、相似度15、相似度160、相似度141和相似度123,则可以确定文本1的M个相似文本包括文本2、文本5、文本60、文本41和文本23。在确定最大的M个相似度时,可以将该文本与自身的相似度排除,例如,对于文本1来说,去除相似度11。
在将M个相似文本的相似度与第一阈值进行比较时,为了提高效率,可以将第一文本对应的M个相似文本的最小相似度与第一阈值进行比较,当最小相似度大于第一阈值时,则认为M个相似度都大于第一阈值,这时该第一文本可以不被认为是孤立噪点,因此可以将该第一文本作为筛选出的中心文本。当最小相似度不大于第一阈值时,认为该第一文本的相似文本少于M个,可以将该第一文本作为孤立噪点在文本聚类过程中不予以处理。筛选出的中心文本是相对于孤立噪点来说的,中心文本是后续可以作为聚类类簇中成员的文本,并可以以该中心文本为引入文本而进行聚类。
当存在大规模海量的待聚类文本时,相似度矩阵中的数据量也是非常大的。对文本筛选相似度最大的M个相似文本,只比较这M个相似文本的相似度与第一阈值的关系,从而不必将N个相似度均与第一阈值进行比较,能够在很大程度上提高处理速度,快速地筛选出符合条件的中心文本,跳过占大多数的孤立文本。
在步骤S240中,基于中心文本在相似度矩阵中对应的数据,对待聚类文本进行聚类。
经过步骤S230的处理,筛选出的中心文本在一般情况下只占所有文本的一小部分,在本步骤中继续对这小部分的文本进行聚类。中心文本在相似度矩阵中对应的数据,可以理解为包含中心文本与其他文本之间的相似度。例如,假设文本1是中心文本,该文本1在相似度矩阵中对应的数据包括文本1与其他N-1个文本之间的相似度。
在一种实施方式中,步骤S240在执行时可以按照图3进行。图3为实施例提供的步骤S240的一种流程示意图,具体包括以下步骤。
在步骤S241中,从相似度矩阵中分别确定若干个中心文本的相似文本,得到若干个第一候选类簇。
在本步骤中,可以基于中心文本在相似度矩阵中对应的相似度,分别确定若干个中心文本的相似文本,得到若干个第一候选类簇。
例如,针对若干个中心文本中的任意一个第一中心文本,从相似度矩阵中确定第一中心文本对应的相似度最大的C个相似文本,将C个相似文本中相似度大于第二阈值的相似文本以及第一中心文本,作为对应的一个第一候选类簇。依据这种方式可以得到若干个第一候选类簇。在具体实施时,为了提高处理速度,也可以选择使用上述并行计算工具或者向量检索引擎,从相似度矩阵中确定所有中心文本分别对应的相似度最大的C个相似文本。
其中,数值C大于数值M,数值C是大于0的整数,通常可以取较大的数值。第二阈值可以是预先设置的相似度数值,其值可以与第一阈值相同或不同。
以表1中数据作为例子,假设N=1万,C取N的1/10,C为1000。对于文本1来说,可以从相似度11、相似度12、…、相似度1N这1万个相似度中查找相似度最大的1000个相似度,并将这1000个相似度的值与第二阈值进行比较,筛选出大于第二阈值的相似度,将该文本1以及这筛选出的相似度对应的除文本1之外的文本作为一个第一候选类簇。这样就实现了图1中的高效粗聚类中的类簇凝聚处理。
从第一中心文本对应的N个相似度中取C个最大的相似度与第二阈值进行判断,避免了将全部的N个相似度与阈值进行比较,因此能够实现快速类簇凝聚,避免不必要的数值比较。这里C的设置就显得比较重要了。为了使得尽可能多的相似文本被聚类,数值C可以设置为较大的数值,但也不能过大,过大则会影响处理速度。C的取值可以通过对历史的文本聚类进行统计分析得到。例如,数值C可以取N的1/10~1/20,例如可以取N的1/15等。
在步骤S242中,对存在交叉文本的第一候选类簇进行合并,得到若干个第二候选类簇。经过步骤S241的处理得到的若干个第一候选类簇之间可能存在交叉重叠的文本。存在交叉文本,则说明两个第一候选类簇之间具有一定的相似性。为了提高聚类的准确性,在本步骤S242中可以对存在交叉文本的第一候选类簇进行合并,从而得到若干个第二候选类簇。
为了提高处理效率,在步骤S242中对存在交叉文本的第一候选类簇进行合并时,可以按照第一候选类簇包含的文本数量从多到少,对若干个第一候选类簇进行排序,对排序后的若干个第一候选类簇依次进行交叉文本判断,也就是依次对若干个第一候选类簇进行交叉文本判断,并基于判断结果进行类簇合并。
例如,按照包含的文本数量从多到少的排序是:候选类簇a>候选类簇b>候选类簇c>候选类簇d。在进行交叉文本判断时,先判断候选类簇a与候选类簇b之间是否存在交叉文本,如果存在,则将两者合并,得到候选类簇ab;接着,判断候选类簇ab与候选类簇c之间是否存在交叉文本,如果不存在,则继续判断候选类簇ab与候选类簇d之间是否存在交叉文本,如果不存在,则继续判断候选类簇c与候选类簇d之间是否存在交叉文本。
包含的文本数量更多的第一候选类簇之间更容易存在交叉文本,因此按照文本数量从多到少的大致顺序对第一候选类簇进行交叉文本判断,能够在较大程度上提高类簇合并时的处理速度。更具体的判断流程可以根据需要进行设定。
在一种实施方式中,为了更方便地比对交叉文本,可以确定若干个第一候选类簇包含的文本标识的哈希值,从而得到每一个第一候选类簇包含的文本的哈希值,即第一候选类簇与其包含的哈希值的对应关系;在比对任意两个第一候选类簇之间是否存在交叉文本时,可以基于哈希值之间的匹配,对两个第一候选类簇进行交叉文本判断,从而能够快速地确定交叉文本。
在具体实施时,可以设置只要存在第二数量个交叉文本,即可以将两个第一候选类簇进行合并。第二数量可以是1、2、3或其他的整数值。在类簇合并阶段,为了提高类簇的准确性,一般情况下可以将第二数量设置为1。也就是说,只要有一个交叉文本,即可以将两个第一候选类簇进行合并。
为了防止类簇合并过程中产生巨型类簇,还可以设置合并时的限制条件。如果合并后的第一候选类簇包含的文本数量大于预设数量阈值,则停止对该合并后的第一候选类簇继续合并。此处,预设数量阈值可以根据经验设定,例如可以设定为3*C,即3倍的数值C或者C的2倍、4倍、5倍或6倍等其他数值。
在步骤S243中,基于第二候选类簇各自包含的文本,分别对若干个第二候选类簇进行二次精细聚类,得到待聚类文本的聚类类簇。在得到若干个第二候选类簇之后,本步骤实际上是对第二候选类簇进行类簇拆分的过程。具体的,可以将对若干个第二候选类簇进行二次精细聚类的结果,作为对待聚类文本的聚类类簇。
例如,已知得到3个第二候选类簇:候选类簇A、候选类簇B和候选类簇C。基于候选类簇A包含的文本进行二次精细聚类,得到类簇A1、类簇A2和类簇A3。基于候选类簇B包含的文本进行二次精细聚类,得到类簇B1和类簇B2。基于候选类簇C包含的文本进行二次精细聚类,得到类簇C1、类簇C2和类簇C2。根据上述的精细聚类结果,可以得到待聚类文本的最终聚类类簇包括:类簇A1、类簇A2、类簇A3、类簇B1、类簇B2、类簇C1、类簇C2和类簇C2。
在对任意一个第二候选类簇进行二次精细聚类时,可以基于第二候选类簇包含的文本的语义向量进行聚类。在所采用的方法上可以选择聚类效果较好的算法进行,例如,可以基于第二候选类簇各自包含的文本,采用层次聚类算法,分别对若干个第二候选类簇进行二次精细聚类。或者,可以使用基于密度的HDBSCAN算法对第二候选类簇进行二次精细聚类。
回顾上述实施例可知,步骤S230可以理解为图1中的类簇筛选处理。步骤S230、步骤S241和步骤S242共同构成了高效粗聚类阶段,实现了对大规模文本的快速粗聚类。步骤S243则是粗聚类之后的二次精细聚类。实施例通过这种快速粗聚类与二次精细聚类的结合,提高了对大规模文本进行聚类时的效率和准确性。
综合上述各个实施例,在类簇凝聚阶段,实施例只选取了Top-C个相似度最大的文本组成后续类簇,避免了部分具有强连通性的异常文本导致的候选类簇过大的问题,在提高聚类效果的同时减少了后续类簇合并与二次精细聚类的运算次数。
在类簇合并阶段,实施例按照类簇大小的排序结果,并利用哈希映射表将有交叉部分的类簇进行合并的操作,以及限制类簇大小为3*C的操作均减少了类簇合并操作的复杂性。
在二次精细聚类阶段,由于这是在粗聚类的结果上再次进行聚类,各类簇大小较小,此操作既能提高聚类结果的准确性,同时也能保证高的实效性。
本说明书中,第一阈值、第一数值、第一文本、第一候选类簇和第一中心文本等词语中的“第一”,以及文中的“第二”(如果存在),仅仅是为了区分和描述方便,并不具有任何限定意义。
上述内容对本说明书的特定实施例进行了描述,其他实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行,并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要按照示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的,或者可能是有利的。
图4为实施例提供的一种大规模文本聚类装置的示意性框图。该装置400部署在计算设备中,该计算设备可以通过任何具有计算、处理能力的装置、设备、平台、设备集群等来实现。该装置实施例与图2和图3所示方法实施例相对应。该装置400包括:
语义模块410,配置为针对包含多条文本的待聚类文本,通过语义表示模型,确定所述多条文本分别对应的语义向量;
相似度模块420,配置为基于多条文本的语义向量,确定多条文本彼此之间的相似度矩阵;
筛选模块430,配置为从所述相似度矩阵中确定所述多条文本分别对应的相似度最大的M个相似文本,并在所述M个相似文本对应的相似度大于第一阈值时,将对应的文本作为筛选出的中心文本;
聚类模块440,配置为基于所述中心文本在所述相似度矩阵中对应的数据,对所述待聚类文本进行聚类。
在一种实施方式中,语义模块410体配置为:
通过语义表示模型,确定所述多条文本分别对应的包含各自文本的全局语义信息的语义向量。
在一种实施方式中,所述筛选模块430,从所述相似度矩阵中确定所述多条文本分别对应的相似度最大的M个相似文本时,包括:
采用利用深度学习框架封装的并行计算工具,或者采用向量检索引擎通过构建索引,从所述相似度矩阵中确定所述多条文本分别对应的相似度最大的M个相似文本。
在一种实施方式中,所述筛选模块430,在所述M个相似文本对应的相似度大于第一阈值时,将对应的文本作为筛选出的中心文本时,包括:
针对所述多条文本中的任意一条文本,将该文本对应的所述M个相似文本的最小相似度与第一阈值进行比较,当所述最小相似度大于所述第一阈值时,将该文本作为筛选出的中心文本。
在一种实施方式中,聚类模块440包括:
确定子模块441,配置为从所述相似度矩阵中分别确定若干个中心文本的相似文本,得到若干个第一候选类簇;
合并子模块442,配置为对存在交叉文本的第一候选类簇进行合并,得到若干个第二候选类簇;
聚类子模块443,配置为基于所述第二候选类簇各自包含的文本,分别对所述若干个第二候选类簇进行二次精细聚类,得到所述待聚类文本的聚类类簇。
在一种实施方式中,所述确定子模块441具体配置为:
针对若干个中心文本中的任意一个第一中心文本,从所述相似度矩阵中确定所述第一中心文本对应的相似度最大的C个相似文本,将所述C个相似文本中相似度大于第二阈值的相似文本以及所述第一中心文本,作为对应的一个第一候选类簇,从而得到若干个第一候选类簇;其中,所述C大于所述M。
在一种实施方式中,所述合并子模块442包括:
排序单元(图中未示出),配置为按照包含的文本数量从多到少,对所述若干个第一候选类簇进行排序;
合并单元(图中未示出),配置为对排序后的若干个第一候选类簇依次进行交叉文本5判断,并基于判断结果进行类簇合并。
在一种实施方式中,所述合并单元,对排序后的若干个第一候选类簇依次进行交叉文本判断时,包括:
确定所述若干个第一候选类簇包含的文本标识的哈希值;
基于所述哈希值之间的匹配,对排序后的若干个第一候选类簇依次进行交叉文本判断。0在一种实施方式中,所述合并子模块442还包括:
停止单元(图中未示出),配置为在基于判断结果进行类簇合并之后,对于任意一个合并后的第一候选类簇,如果该合并后的第一候选类簇包含的文本数量大于预设数量阈值,则停止对该合并后的第一候选类簇继续合并。
在一种实施方式中,聚类子模块443具体配置为:5基于所述第二候选类簇各自包含的文本,采用层次聚类算法,分别对所述若干个第二
候选类簇进行二次精细聚类。
上述装置实施例与方法实施例相对应,具体说明可以参见方法实施例部分的描述,此处不再赘述。装置实施例是基于对应的方法实施例得到,与对应的方法实施例具有同样的技术效果,具体说明可参见对应的方法实施例。
0本说明书实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,当所述
计算机程序在计算机中执行时,令计算机执行图1至图3任一项所述的方法。
本说明书实施例还提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现图1至图3任一项所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互5相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于存储介质
和计算设备实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些0功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
以上所述的具体实施方式,对本发明实施例的目的、技术方案和有益效果进行了进一步的详细说明。所应理解的是,以上所述仅为本发明实施例的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。
Claims (15)
1.一种大规模文本聚类方法,包括:
针对包含多条文本的待聚类文本,通过语义表示模型,确定所述多条文本分别对应的语义向量;
基于多条文本的语义向量,确定多条文本彼此之间的相似度矩阵;
从所述相似度矩阵中确定所述多条文本分别对应的相似度最大的M个相似文本,并在所述M个相似文本对应的相似度大于第一阈值时,将对应的文本作为筛选出的中心文本;
基于所述中心文本在所述相似度矩阵中对应的数据,对所述待聚类文本进行聚类。
2.根据权利要求1所述的方法,所述确定所述多条文本分别对应的语义向量的步骤,包括:
通过语义表示模型,确定所述多条文本分别对应的包含各自文本的全局语义信息的语义向量。
3.根据权利要求1所述的方法,所述从所述相似度矩阵中确定所述多条文本分别对应的相似度最大的M个相似文本的步骤,包括:
采用利用深度学习框架封装的并行计算工具,或者采用向量检索引擎通过构建索引,从所述相似度矩阵中确定所述多条文本分别对应的相似度最大的M个相似文本。
4.根据权利要求1所述的方法,所述在所述M个相似文本对应的相似度大于第一阈值时,将对应的文本作为筛选出的中心文本的步骤,包括:
针对所述多条文本中的任意一条文本,将该文本对应的所述M个相似文本的最小相似度与第一阈值进行比较,当所述最小相似度大于所述第一阈值时,将该文本作为筛选出的中心文本。
5.根据权利要求1所述的方法,所述基于所述中心文本在所述相似度矩阵中对应的数据,对所述待聚类文本进行聚类的步骤,包括:
从所述相似度矩阵中分别确定若干个中心文本的相似文本,得到若干个第一候选类簇;
对存在交叉文本的第一候选类簇进行合并,得到若干个第二候选类簇;
基于所述第二候选类簇各自包含的文本,分别对所述若干个第二候选类簇进行二次精细聚类,得到所述待聚类文本的聚类类簇。
6.根据权利要求5所述的方法,所述从所述相似度矩阵中分别确定若干个中心文本的相似文本的步骤,包括:
针对若干个中心文本中的任意一个第一中心文本,从所述相似度矩阵中确定所述第一中心文本对应的相似度最大的C个相似文本,将所述C个相似文本中相似度大于第二阈值的相似文本以及所述第一中心文本,作为对应的一个第一候选类簇,从而得到若干个第一候选类簇;其中,所述C大于所述M。
7.根据权利要求5所述的方法,所述对存在交叉文本的第一候选类簇进行合并的步骤,包括:
按照包含的文本数量从多到少,对所述若干个第一候选类簇进行排序;
对排序后的若干个第一候选类簇依次进行交叉文本判断,并基于判断结果进行类簇合并。
8.根据权利要求7所述的方法,所述对排序后的若干个第一候选类簇依次进行交叉文本判断的步骤,包括:
确定所述若干个第一候选类簇包含的文本标识的哈希值;
基于所述哈希值之间的匹配,对排序后的若干个第一候选类簇依次进行交叉文本判断。
9.根据权利要求7所述的方法,在基于判断结果进行类簇合并之后,还包括:
对于任意一个合并后的第一候选类簇,如果该合并后的第一候选类簇包含的文本数量大于预设数量阈值,则停止对该合并后的第一候选类簇继续合并。
10.根据权利要求5所述的方法,所述分别对所述若干个第二候选类簇进行二次精细聚类的步骤,包括:
基于所述第二候选类簇各自包含的文本,采用层次聚类算法,分别对所述若干个第二候选类簇进行二次精细聚类。
11.根据权利要求1所述的方法,其中,所述M在预设范围内取值;或者,所述M基于所述多条文本的总数量确定。
12.一种大规模文本聚类装置,包括:
语义模块,配置为针对包含多条文本的待聚类文本,通过语义表示模型,确定所述多条文本分别对应的语义向量;
相似度模块,配置为基于多条文本的语义向量,确定多条文本彼此之间的相似度矩阵;
筛选模块,配置为从所述相似度矩阵中确定所述多条文本分别对应的相似度最大的M个相似文本,并在所述M个相似文本对应的相似度大于第一阈值时,将对应的文本作为筛选出的中心文本;
聚类模块,配置为基于所述中心文本在所述相似度矩阵中对应的数据,对所述待聚类文本进行聚类。
13.根据权利要求12所述的装置,所述聚类模块,包括:
确定子模块,配置为从所述相似度矩阵中分别确定若干个中心文本的相似文本,得到若干个第一候选类簇;
合并子模块,配置为对存在交叉文本的第一候选类簇进行合并,得到若干个第二候选类簇;
聚类子模块,配置为基于所述第二候选类簇各自包含的文本,分别对所述若干个第二候选类簇进行二次精细聚类,得到所述待聚类文本的聚类类簇。
14.一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行权利要求1-11中任一项所述的方法。
15.一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求1-11中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211538156.6A CN116304012A (zh) | 2022-12-02 | 2022-12-02 | 一种大规模文本聚类方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211538156.6A CN116304012A (zh) | 2022-12-02 | 2022-12-02 | 一种大规模文本聚类方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116304012A true CN116304012A (zh) | 2023-06-23 |
Family
ID=86836489
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211538156.6A Pending CN116304012A (zh) | 2022-12-02 | 2022-12-02 | 一种大规模文本聚类方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116304012A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116756293A (zh) * | 2023-08-11 | 2023-09-15 | 之江实验室 | 一种模型训练的方法、装置、存储介质及电子设备 |
-
2022
- 2022-12-02 CN CN202211538156.6A patent/CN116304012A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116756293A (zh) * | 2023-08-11 | 2023-09-15 | 之江实验室 | 一种模型训练的方法、装置、存储介质及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108304468B (zh) | 一种文本分类方法以及文本分类装置 | |
CN109791569B (zh) | 因果关系识别装置及存储介质 | |
WO2021093755A1 (zh) | 问题的匹配方法及装置、问题的回复方法及装置 | |
CN111581354A (zh) | 一种faq问句相似度计算方法及其系统 | |
EP1528486A2 (en) | Classification evaluation system, method, and program | |
US7099819B2 (en) | Text information analysis apparatus and method | |
KR101508260B1 (ko) | 문서 특징을 반영하는 요약문 생성 장치 및 방법 | |
US20150074112A1 (en) | Multimedia Question Answering System and Method | |
CN110674289A (zh) | 基于分词权重判断文章所属分类的方法、装置和存储介质 | |
CN110134777B (zh) | 问题去重方法、装置、电子设备和计算机可读存储介质 | |
US11645447B2 (en) | Encoding textual information for text analysis | |
CN112131876A (zh) | 一种基于相似度确定标准问题的方法及系统 | |
CN115470133A (zh) | 大规模持续集成的测试用例优先级排序方法、设备及介质 | |
CN116304012A (zh) | 一种大规模文本聚类方法及装置 | |
CN115146062A (zh) | 融合专家推荐与文本聚类的智能事件分析方法和系统 | |
KR20120047622A (ko) | 디지털 콘텐츠 관리 시스템 및 방법 | |
Abdollahpour et al. | Image classification using ontology based improved visual words | |
CN110704638A (zh) | 一种基于聚类算法的电力文本词典构造方法 | |
US20100063966A1 (en) | Method for fast de-duplication of a set of documents or a set of data contained in a file | |
CN106407332B (zh) | 基于人工智能的搜索方法和装置 | |
CN112685374B (zh) | 日志分类方法、装置及电子设备 | |
CN115203206A (zh) | 数据内容搜索方法、装置、计算机设备及可读存储介质 | |
CN115640375A (zh) | 专利文献中的技术问题抽取方法及相关设备 | |
US20240184990A1 (en) | Large-scale text cluster methods and apparatuses | |
Ajitha et al. | EFFECTIVE FEATURE EXTRACTION FOR DOCUMENT CLUSTERING TO ENHANCE SEARCH ENGINE USING XML. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |