CN111522941B - 文本聚类方法、装置、电子设备及计算机存储介质 - Google Patents
文本聚类方法、装置、电子设备及计算机存储介质 Download PDFInfo
- Publication number
- CN111522941B CN111522941B CN201910108649.8A CN201910108649A CN111522941B CN 111522941 B CN111522941 B CN 111522941B CN 201910108649 A CN201910108649 A CN 201910108649A CN 111522941 B CN111522941 B CN 111522941B
- Authority
- CN
- China
- Prior art keywords
- text
- category
- classified
- merging
- index
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 110
- 238000004891 communication Methods 0.000 claims description 17
- 230000004044 response Effects 0.000 claims description 15
- 238000004422 calculation algorithm Methods 0.000 claims description 12
- 238000012216 screening Methods 0.000 claims description 12
- 238000007689 inspection Methods 0.000 claims description 3
- 238000004590 computer program Methods 0.000 claims description 2
- 238000004364 calculation method Methods 0.000 description 20
- 230000011218 segmentation Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 7
- 238000012545 processing Methods 0.000 description 7
- 239000013598 vector Substances 0.000 description 7
- 238000010801 machine learning Methods 0.000 description 6
- 235000012813 breadcrumbs Nutrition 0.000 description 4
- 230000001960 triggered effect Effects 0.000 description 4
- 230000002045 lasting effect Effects 0.000 description 3
- 238000012163 sequencing technique Methods 0.000 description 3
- 238000012549 training Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000002441 reversible effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011022 operating instruction Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
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
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
本发明实施例提供了一种文本聚类方法、装置、电子设备及计算机存储介质。其中,所述文本聚类方法包括:根据至少一待分类文本的特征数据,通过索引获取与所述待分类文本相匹配的候选类别;确定所述候选类别中是否存在与所述待分类文本的匹配度大于或等于设定阈值的类别;若存在,则从所述匹配度大于或等于所述设定阈值的类别中确定所述待分类文本的归属类别,并将所述待分类文本合并入所述归属类别中。通过本发明实施例,文本聚类效率更高。
Description
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种文本聚类方法、装置、电子设备及计算机存储介质。
背景技术
文本聚类是通过聚类方法为文本划分类别的方法,例如,根据文本特征进行匹配,并根据匹配结果,将相匹配的多个文本合并至同一个类别下,由此,若干个不同的文本即可能归属于多个不同类别。
在使用现有的聚类方法对文本进行聚类时,需要对文本进行全量计算,即对所有任意两个文本根据特征进行匹配,再根据计算结果将文本分为两类别,之后,针对每个分出的类别执行前述分类操作,直至分出类别的数量满足要求。但是,这种聚类方法由于需要全量计算,使得计算量大、耗时长,且由于全量计算时,需要预先确定所有文本,无法针对任意文本进行实时处理。
发明内容
有鉴于此,本发明实施例提供一种文本聚类方案,以解决上述部分或全部问题。
根据本发明实施例的第一方面,提供了一种文本聚类方法,其包括:根据至少一待分类文本的特征数据,通过索引获取与所述待分类文本相匹配的候选类别;确定所述候选类别中是否存在与所述待分类文本的匹配度大于或等于设定阈值的类别;若存在,则从所述匹配度大于或等于所述设定阈值的类别中确定所述待分类文本的归属类别,并将所述待分类文本合并入所述归属类别中。
根据本发明实施例的第二方面,提供了一种文本聚类装置,其包括:第一获取模块,用于根据至少一待分类文本的特征数据,通过索引获取与所述待分类文本相匹配的候选类别;确定模块,用于确定所述候选类别中是否存在与所述待分类文本的匹配度大于或等于设定阈值的类别;合并模块,用于若存在,则从所述匹配度大于或等于所述设定阈值的类别中确定所述待分类文本的归属类别,并将所述待分类文本合并入所述归属类别中。
根据本发明实施例的第三方面,提供了一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如第一方面所述的文本聚类方法对应的操作。
根据本发明实施例的第四方面,提供了一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现如第一方面所述的文本聚类方法。
根据本发明实施例提供的文本聚类方案,根据至少一待分类文本的特征数据,通过索引获取与所述待分类文本相匹配的候选类别,并在存在匹配度大于或等于所述设定阈值的类别时,从中确定所述待分类文本的归属类别,将所述待分类文本合并入所述归属类别中,实现文本聚类。在文本聚类过程中,由于根据待分类文本与类别间的匹配度进行聚类,不需要计算待分类文本间的匹配度,因此无需预先确定所有待分类文本,可以针对每个待分类文本进行实时处理。此外,通过索引获取候选类别,无需遍历所有类别,减少了获取候选类别的计算量,降低了聚类所用耗时。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1为根据本发明实施例一的一种文本聚类方法的步骤流程图;
图2为根据本发明实施例二的一种文本聚类方法的步骤流程图;
图3为根据本发明实施例三的一种文本聚类方法的步骤流程图;
图4为根据本发明实施例四的一种文本聚类方法的步骤流程图;
图5为根据本发明实施例五的一种文本聚类装置的结构框图;
图6为根据本发明实施例六的一种文本聚类装置的结构框图
图7为根据本发明实施例七的一种电子设备的结构示意图;
图8为一具体应用场景中使用本发明的文本聚类方法的文本聚类系统的结构示意图;
图9为一具体应用场景中使用本发明的文本聚类方法进行文本合并和/或类别创建的流程示意图。
具体实施方式
为了使本领域的人员更好地理解本发明实施例中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明实施例一部分实施例,而不是全部的实施例。基于本发明实施例中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于本发明实施例保护的范围。
下面结合本发明实施例附图进一步说明本发明实施例具体实现。
实施例一
参照图1,示出了根据本发明实施例一的一种文本聚类方法的步骤流程图。
本实施例的文本聚类方法包括以下步骤:
步骤S102:根据至少一待分类文本的特征数据,通过索引获取与所述待分类文本相匹配的候选类别。
所述待分类文本可以是任何需要进行聚类处理的文本。例如,新闻文本、聊天记录文本、小说文本等等。
所述待分类文本的特征数据包括但不限于以下一种或多种:待分类文本中的关键词、待分类文本的类目、待分类文本的文本向量、和待分类文本的TF/IDF(Term Frequency词频/Inverse Document Frequency逆文本频率)特征等。
其中,所述待分类文本中的关键词包括但不限于:地点、人物、时间等。所述待分类文本中的关键词可以使用基于词典的分词方法(如逆向最大匹配算法RMM、设立切分标志法等)、基于统计的分词方法(如N-gram模型、隐马尔科夫模型等)等分词方法获得,也可以通过训练能够进行分词的机器学习模型获得。
所述待分类文本的类目包括但不限于:科技、体育、城市、人物等。本领域技术人员可以根据需要设置类目的层级数量,以提升类目划分的详细程度,如:体育-篮球,或者,体育-篮球-NBA等。
所述待分类文本的类目可以通过任意适配的方式获取,如通过训练的能够进行类目预测的机器学习模型获得,或者,通过网络抓取的面包屑信息(Breadcrumb Navigation)进行对齐获取,等等。
所述待分类文本的文本向量用于指示所述待分类文本的语义,其可以通过任何适配的方式获取,如通过word-embedding(词嵌入)方式或其他word2vec算法。
所述待分类文本的TF/IDF特征用于指示某个词对某个待分类文本的重要程度。其中,TF即词频用于指示某个词在某一待分类文本中出现的频率,IDF即逆文本频率用于指示某个词在所有文本中出现的频率。所述待分类文本的TF/IDF特征可以采用任何适配的方式获取,本实施例对此不作限定。
所述索引可以根据已有的聚类结果生成,其中的索引项与聚类结果中的类别对应,索引用于根据特征数据进行检索,以获得与特征数据对应的待分类文本相匹配的候选类别。
例如,根据特征数据计算类别与待分类文本间的匹配度,根据匹配度确定候选类别,或者,根据特征数据中的类目确定候选类别等。
匹配度用于指示类别与所述待分类文本之间的相关程度。匹配度可以是相似度、关键词重合率等任何能够表征类别与所述待分类文本之间的相关程度的属性。
由于根据已有类别生成了索引,在获取候选类别时,可以通过索引检索的方式从多个类别中确定出与所述待分类文本相匹配的所述候选类别,而无需遍历所有类别,从而提升获取候选类别的速度,进而提升了聚类的速度,满足时延和每秒查询率(QPS)的要求。
步骤S104:确定所述候选类别中是否存在与所述待分类文本的匹配度大于或等于设定阈值的类别。
在将某一待分类文本分入某个候选类别中实现文本聚类的过程中,若某一候选类别与所述待分类文本的匹配度大于或等于设定阈值,则表明其与所述待分类文本的相关程度较高,可以执行步骤S106;反之,则表示所有候选类别与所述待分类文本的相关程度均不高,不存在能够合并所述待分类文本的类别,此时,可以指示合并失败。
本领域技术人员可以根据需要设置适当的设定阈值,本实施例对此不作限定。
步骤S106:若存在,则从所述匹配度大于或等于所述设定阈值的类别中确定所述待分类文本的归属类别,并将所述待分类文本合并入所述归属类别中。
所述归属类别即所述待分类文本所属的类别。本领域技术人员可以采用任何适当的方式,从匹配度大于或等于所述设定阈值的类别中确定所述归属类别。例如,若匹配度大于或等于所述设定阈值的类别仅有1个,则将其确定为归属类别;若匹配度大于或等于所述设定阈值的类别多于1个,则可以按照适当规则如最匹配规则从多个中选取1个作为归属类别。
确定归属类别后,可以将所述待分类文本合并入所述归属类别中。
通过本实施例,根据至少一待分类文本的特征数据,通过索引获取与所述待分类文本相匹配的候选类别,并在存在匹配度大于或等于所述设定阈值的类别时,从中确定所述待分类文本的归属类别,将所述待分类文本合并入所述归属类别中,实现文本聚类。在文本聚类过程中,由于根据待分类文本与类别间的匹配度进行聚类,不需要计算待分类文本间的匹配度,因此无需预先确定所有待分类文本,可以针对每个待分类文本进行实时处理。此外,通过索引获取候选类别,无需遍历所有类别,减少了获取候选类别的计算量,降低了聚类所用耗时。
本实施例的文本聚类方法可以由任意适当的具有数据处理能力的电子设备执行,包括但不限于:服务器、移动终端(如平板电脑、手机等)和PC机等。
实施例二
参照图2,示出了根据本发明实施例二的一种文本聚类方法的步骤流程图。
本实施例的文本聚类方法基于前述实施例一的步骤S102~S106,并对其中的步骤S102进行了改进。
具体地,所述步骤S102包括以下子步骤:
子步骤S1021:根据至少一所述待分类文本的特征数据,生成并发送检索请求。
所述检索请求用于指示根据所述待分类文本的特征数据进行检索,以通过所述索引获取与所述待分类文本相匹配的候选类别。根据需要检索的索引结构的不同,本领域技术人员可以生成适当的检索请求,本实施例对此不作限定。
例如,在本实施例中,所述索引为包括多级索引项的索引,各级所述索引项均与相应类别层级中的类别对应。
这种包括多级索引项的索引是根据具有多个类别层级的聚类结果生成的索引。通过具有多个类别层级的聚类结果,可以更好地体现文本间的关联和层次关系,使得聚类结果能够更好地满足后续的使用要求。
以待分类文本是新闻文本为例,聚类结果中的类别层级包括文本层(以L1为标识,文本层是所有重复文本或相似度较高的新闻文本的聚类)、事件层(以L2为标识,事件层是描述同一事件的新闻文本的聚类)和话题层(以L3为标识,话题层是同一事件的不同时间段的新闻文本的聚类),其中事件层中的多个类别可以从属于一个文本层中的类别,话题层中的多个类别可以从属于一个事件层中的类别。相应地,所述索引包括对应的三个索引级,其中,第一级中的索引项与文本层的类别对应,第二级中的索引项与事件层中的类别对应,最末级中的索引项与话题层中的类别对应。
当然,在其他实施例中,针对不同的待分类文本,聚类结果可以采用不同的层级数量和划分层级规则,进而其对应的索引可以采用与聚类结果适配的结构,本实施例对此不作限定。针对不同的聚类结果,可以生成适当结构的索引。
针对这种具有多级索引项的索引,在生成检索请求时,可以根据需要指示对索引中的某一级索引项进行检索,以减少计算量,提升检索效率。
在一具体实现中,检索请求用于请求检索所述索引中的最末级索引项。
由于具有多级索引项的索引通常是对应于具有多个类别层级的聚类结果生成的索引。而最末级索引项对应的通常为最末层级的类别即范围最小的类别,因此,若根据检索请求从最末级索引项中检索出能够合并待分类文本的归属类别,则可以直接将待分类文本合并到该归属类别中,这样可以减少检索的索引项的数量,相较于常规的索引检索时从顶层向底层检索的方式,检索效率更高。
例如,在一具体实现中,所述索引根据存储在外部存储空间中的聚类结果生成,且存储在外部存储空间中。通过将所述索引以及所述索引对应的类别数据(即聚类结果)持久化存储在外部存储设备中,可以解决现有的聚类方法将聚类结果存储在内存中存在的存储空间受限、无法长时间保存等问题。
子步骤S1022:从响应于所述检索请求的响应消息中,获取与所述待分类文本相匹配的候选类别及对应的匹配度。
所述响应消息可以是根据检索出的候选类别生成的,用于响应所述检索请求的消息。其中包括与所述待分类文本相匹配的所述候选类别、及其与所述待分类文本间的匹配度。
在本实施例中,根据所述检索请求进行检索可以由生成所述检索请求的执行主体之外的执行主体执行,以减少单个执行主体的计算负担,降低对执行主体性能的需求。
此外,生成检索请求和根据所述检索请求进行检索采用不同的执行主体,可以实现并行检索,如多个执行主体同时根据一个检索请求进行检索,从而提升检索的效率,降低检索时的时延。
通过本实施例,根据至少一待分类文本的特征数据,通过索引获取与所述待分类文本相匹配的候选类别,并在存在匹配度大于或等于所述设定阈值的类别时,从中确定所述待分类文本的归属类别,将所述待分类文本合并入所述归属类别中,实现文本聚类。在文本聚类过程中,由于根据待分类文本与类别间的匹配度进行聚类,不需要计算待分类文本间的匹配度,因此无需预先确定所有待分类文本,可以针对每个待分类文本进行实时处理。在获取候选类别时,通过索引获取,无需遍历所有类别才能获取候选类别,减少了获取候选类别的计算量,减少了耗时,满足了性能需求。
此外,根据待分类文本的特征数据生成检索请求,并从响应于所述检索请求的响应消息中获取所述候选类别和对应的匹配度,这样可以使通过索引进行检索的执行主体与生成检索请求的执行主体不同,进而提升检索效率。
本实施例的文本聚类方法可以由任意适当的具有数据处理能力的电子设备执行,包括但不限于:服务器、移动终端(如平板电脑、手机等)和PC机等。
实施例三
参照图3,示出了根据本发明实施例三的一种文本聚类方法的步骤流程图。
本实施例的文本聚类方法基于前述实施例一或二的步骤S102~S106,并对其中的步骤S106进行说明。
具体地,所述步骤S106为:若存在大于或等于设定阈值的类别,则根据预设的筛选规则,从匹配度大于或等于设定阈值的类别中确定出所述待分类文本的归属类别,并将所述待分类文本合并入所述归属类别中。
其中,所述筛选规则可以根据需要设置适配的规则。例如,所述筛选规则为:
第一种情况中:若所述候选类别中匹配度大于或等于设定阈值的类别的数量大于1,则根据待分类文本的特征数据中的全部或部分关键词,从所有匹配度大于或等于设定阈值的类别中确定出所述归属类别。
确定所述归属类别时,根据不同类型的待分类文本,可以使用不同的关键词。例如,针对新闻文本,可以使用用于指示地点的关键词确定所述归属类别。
具体例如,某一新闻文本中用于指示地点的关键词的内容为“北京”,则从所有匹配度大于或等于设定阈值的类别中,确定地点特征为“北京”的类别作为归属类别。这样可以避免那些与待分类文本的内容匹配度很高,但是实质并非同一事件的新闻文本被聚类到同一类别中的情况,提升聚类准确性。
第二种情况中:若所述候选类别中匹配度大于或等于设定阈值的类别的数量为1,则将该匹配度大于或等于设定阈值的类别确定为所述归属类别。
确定出归属类别后,将待分类文本合并入所述归属类别中。本领域技术人员可以根据需要采用任何适当的方式将待分类文本合并入所述归属类别中,例如,为所述待分类文本设置分类标识,通过分类标识指示待分类文本的归属类别的ID。
针对具有多个类别层级的聚类结果,可以根据属于不同类别层级的类别间的从属关系确定所述归属类别在各个类别层级中从属的类别,进而确定所述待分类文本的分类标识的内容。
本领域技术人员可以根据需要确定所述分类标识中包括的类别ID的数量。例如,本实施例中,所述分类标识中包括所述待分类文本的归属类别的ID、所述归属类别从属的上一层级的类别的ID和所述归属类别从属的最上级的类别的ID。
可选地,在将待分类文本合并入所述归属类别之后,所述方法还包括:步骤S108:根据所述待分类文本的特征数据更新所述索引中所述归属类别所对应的实时索引。
由于本方法中对待分类文本进行实时处理,为了提升聚类的准确性,索引可以包括全量索引和实时索引。
其中,全量索引进行周期性更新,所述全量索引是根据从外部存储空间中存储的聚类结果中定期挑选出来的类别的数据生成,更新时剔除旧的或者不重要的文本聚出的类别,以减少索引检索的计算量,提高计算效率。
实时索引根据每个待分类文本的聚类结果进行实时更新。其根据短时间内合并有新文本的类别(可以是已有类别也可以是新创建类别)生成。在将待分类文本合并入归属类别后,根据待分类文本的特征数据更新所述归属类别的特征数据,使所述索引中的实时索引更新。例如,将所述实时索引中所述归属类别对应的特征数据更新为新的特征数据。
这样通过实时索引弥补了全量索引更新不及时的问题,在检索时既检索全量索引,又检索实时索引,并将两个检索结果合并后确定最终检索结果,保证了检索的全面性和准确性,进而确保了聚类的准确性。通过本实施例中,根据至少一待分类文本的特征数据,通过索引获取与所述待分类文本相匹配的候选类别,并在存在匹配度大于或等于所述设定阈值的类别时,从中确定所述待分类文本的归属类别,将所述待分类文本合并入所述归属类别中,实现文本聚类。在文本聚类过程中,由于根据待分类文本与类别间的匹配度进行聚类,不需要计算待分类文本间的匹配度,因此无需预先确定所有待分类文本,可以针对每个待分类文本进行实时处理。在获取候选类别时,通过索引获取,无需遍历所有类别才能获取候选类别,减少了获取候选类别的计算量,减少了耗时,满足了性能需求。
此外,通过预设的筛选规则确定待分类文本的归属类别可以提升聚类的准确性。在将待分类文本合并到所述归属类别后,根据所述待分类文本的特征数据更新所述索引中所述归属类别所对应的实时索引,可以进一步提升后续聚类的准确性。
本实施例的文本聚类方法可以由任意适当的具有数据处理能力的电子设备执行,包括但不限于:服务器、移动终端(如平板电脑、手机等)和PC机等。
实施例四
参照图4,示出了根据本发明实施例四的一种文本聚类方法的步骤流程图。
本实施例的文本聚类方法基于前述的实施例一至三的步骤S102~S106或者实施例一至三的步骤S102~S108。
其中,所述方法还包括:
步骤S110:若不存在大于或等于设定阈值的类别,则发送合并失败消息令合并失败的文本创建新类别,将所述合并失败文本合并入创建的新类别中。
需要说明的是,所述步骤S110为可选步骤,其可以在步骤S106之前或之后执行,或者也可以与步骤S106并行执行,只要在步骤S104之后执行即可。
其中,设定阈值本领域技术人员可以根据需要具体设定,例如,设定为0.9或0.6等。若聚类结果包括多个类别层级,针对每个类别层级可以设置独立的设定阈值,以提升适应性。
在不存在匹配度大于或等于设定阈值的类别时,则表示所有候选类别与所述待分类文本的相关性均不足,不存在能够合并所述待分类文本的类别,此时,可以通过生成合并失败消息指示合并失败,以便根据合并失败的文本创建新类别,将所述合并失败文本合并入创建的新类别中。
例如,在通过步骤S102~S104尝试将待分类文本合并到已有的某一类别中的过程是通过文本合并请求触发的情况下,若生成合并失败消息,则将所述合并失败消息发送给所述文本合并请求的发送方,由文本合并请求的发送方会响应于所述合并失败消息,生成类别创建请求,所述类别创建请求用于指示根据合并失败的文本创建新类别,以将所述合并失败的文本合并入所述新类别中。当然,在其他实施例中,尝试将待分类文本合并到已有的某一类别中的过程可以通过其他方式触发,并不限于本实施例中例举的情况。
在本实施例中,所述类别创建请求生成过程为:所述文本合并请求的发送方收集一段时间内合并失败消息指示的合并失败的文本,并使用初始聚类算法(如K-means算法)对这些合并失败的文本进行初始聚类获得合并失败文本集,合并失败文本集中包括至少一个合并失败的文本。针对每个合并失败文本集生成对应的类别创建请求。
这样可以根据需要将类别创建请求发送给同一执行主体或不同的执行主体,以根据需要实现并发执行,提升执行效率。在并发执行时,这种方式由于预先对合并失败的文本进行了初始聚类,并根据聚类结果生成了对应的类别创建请求,确保聚类结果中属于不同类的合并失败的文本间的差异较大,从而保证根据不同类别创建请求创建的新类别间的差异较大,使并行创建新类别可行,不会产生冲突。
在一具体实现中,以所述索引为包括多级索引项的索引为例,对根据合并失败消息的响应消息(即类别创建请求)为合并失败的文本创建新类别,并将合并失败的文本合并入新类别的过程进行说明如下:
根据所述合并失败的文本的特征数据,通过索引确定除最末级索引项外,所述索引中剩余的各级索引项中是否存在可以合并所述合并失败的文本的索引项;若存在,则在可合并所述合并失败的文本的索引项对应的类别下创建从属于其的新类别,并将所述合并失败的文本并入创建的最末级的类别中;若不存在,则从最顶级开始依次创建新类别,并将所述合并失败的文本并入创建的最末级的类别中。
可选地,在将所述合并失败文本合并入创建的新的类别中之后,所述方法还包括:
步骤S112:根据所述新类别及其对应的文本的特征数据,更新所述索引。
为了保证后续文本聚类时的准确性,在创建新类别并将合并失败的文本合并入新类别后,根据新类别对应的文本的特征数据更新所述索引。若索引包括全量索引和实时索引,则可以对索引中的实时索引进行更新,从而减少更新的消耗。
更新实时索引的过程可以参考前述的步骤S108中更新实时索引的过程,本步骤不再对更新实时索引的过程进行赘述。
通过本实施例,根据至少一待分类文本的特征数据,通过索引获取与所述待分类文本相匹配的候选类别,并在存在匹配度大于或等于所述设定阈值的类别时,从中确定所述待分类文本的归属类别,将所述待分类文本合并入所述归属类别中,实现文本聚类。在文本聚类过程中,由于根据待分类文本与类别间的匹配度进行聚类,不需要计算待分类文本间的匹配度,因此无需预先确定所有待分类文本,可以针对每个待分类文本进行实时处理。此外,通过索引获取候选类别,无需遍历所有类别,减少了获取候选类别的计算量,降低了聚类所用耗时。
此外,在文本合并失败后,针对合并失败的文本可以创建新类别,并将合并失败的文本合并入创建的新类别中,使得该聚类方法的适应性更好。
本实施例的文本聚类方法可以由任意适当的具有数据处理能力的电子设备执行,包括但不限于:服务器、移动终端(如平板电脑、手机等)和PC机等。
实施例五
参照图5,示出了根据本发明实施例五的一种文本聚类装置的结构框图。
本实施例的文本聚类装置包括:第一获取模块502、确定模块504和合并模块506。
其中,第一获取模块502,用于根据至少一待分类文本的特征数据,通过索引获取与所述待分类文本相匹配的候选类别。
所述待分类文本可以是任何需要进行聚类处理的文本。例如,新闻文本、聊天记录文本、小说文本等等。
所述待分类文本的特征数据包括但不限于以下一种或多种:待分类文本中的关键词、待分类文本的类目、待分类文本的文本向量、和待分类文本的TF/IDF(Term Frequency词频/Inverse Document Frequency逆文本频率)特征等。
其中,所述待分类文本中的关键词包括但不限于:地点、人物、时间等。所述待分类文本中的关键词可以使用基于词典的分词方法(如逆向最大匹配算法RMM、设立切分标志法等)、基于统计的分词方法(如N-gram模型、隐马尔科夫模型等)等分词方法获得,也可以通过训练能够进行分词的机器学习模型获得。
所述待分类文本的类目包括但不限于:科技、体育、城市、人物等。本领域技术人员可以根据需要设置类目的层级数量,以提升类目划分的详细程度,如:体育-篮球,或者,体育-篮球-NBA等。
所述待分类文本的类目可以通过任意适配的方式获取,如通过训练的能够进行类目预测的机器学习模式获得,或者,通过网络抓取的面包屑信息(Breadcrumb Navigation)进行对齐获取,等等。
所述待分类文本的文本向量用于指示所述待分类文本的语义,其可以通过任何适配的方式获取,如通过word-embedding(词嵌入)方式或其他word2vec算法。
所述待分类文本的TF/IDF特征用于指示某个词对某个待分类文本的重要程度。其中,TF即词频用于指示某个词在某一待分类文本中出现的频率,IDF即逆文本频率用于指示某个词在所有文本中出现的频率。所述待分类文本的TF/IDF特征可以采用任何适配的方式获取,本实施例对此不作限定。
所述索引可以根据已有的聚类结果生成,其中的索引项与聚类结果中的类别对应,索引用于根据特征数据进行检索,以获得与特征数据对应的待分类文本相匹配的候选类别。
例如,根据特征数据计算类别与待分类文本间的匹配度,根据匹配度确定候选类别,或者,根据特征数据中的类目确定候选类别等。
匹配度用于指示类别与所述待分类文本之间的相关程度。匹配度可以是相似度、关键词重合率等任何能够表征类别与所述待分类文本之间的相关程度的属性。
由于根据已有类别生成了索引,在获取候选类别时,可以通过索引检索的方式从多个类别中确定出与所述待分类文本相匹配的所述候选类别,而无需遍历所有类别,从而提升获取候选类别的速度,进而提升了聚类的速度,满足时延和每秒查询率(QPS)的要求。
确定模块504,用于所述候选类别中是否存在与所述待分类文本的匹配度大于或等于设定阈值的类别。
在将某一待分类文本分入某个候选类别中实现文本聚类的过程中,若某一候选类别与所述待分类文本的匹配度大于或等于设定阈值,则表明其与所述待分类文本的相关程度较高,可以使合并模块506动作;反之,则表示所有候选类别与所述待分类文本的相关程度均不高,不存在能够合并所述待分类文本的类别,此时,可以指示合并失败。
本领域技术人员可以根据需要设置适当的设定阈值,本实施例对此不作限定。
合并模块506,用于若存在,则从所述匹配度大于或等于所述设定阈值的类别中确定所述待分类文本的归属类别,并将所述待分类文本合并入所述归属类别中。
所述归属类别即所述待分类文本所属的类别。本领域技术人员可以采用任何适当的方式,从匹配度大于或等于所述设定阈值的类别中确定所述归属类别。例如,若匹配度大于或等于所述设定阈值的类别仅有1个,则将其确定为归属类别;若匹配度大于或等于所述设定阈值的类别多于1个,则可以按照适当规则如最匹配规则从多个中选取1个作为归属类别。
确定归属类别后,可以将所述待分类文本合并入所述归属类别中。
通过本实施例,根据至少一待分类文本的特征数据,通过索引获取与所述待分类文本相匹配的候选类别,并在存在匹配度大于或等于所述设定阈值的类别时,从中确定所述待分类文本的归属类别,将所述待分类文本合并入所述归属类别中,实现文本聚类。在文本聚类过程中,由于根据待分类文本与类别间的匹配度进行聚类,不需要计算待分类文本间的匹配度,因此无需预先确定所有待分类文本,可以针对每个待分类文本进行实时处理。此外,通过索引获取候选类别,无需遍历所有类别,减少了获取候选类别的计算量,降低了聚类所用耗时。
实施例六
参照图6,示出了根据本发明实施例六的一种文本聚类装置的结构框图。
本实施例的文本聚类装置包括前述的第一获取模块502、确定模块504和合并模块506。
其中,所述第一获取模块502包括生成模块5021和第二获取模块5022。
所述生成模块5021,用于根据至少一所述待分类文本的特征数据,生成并发送检索请求。
所述检索请求用于指示根据所述待分类文本的特征数据进行检索,以通过所述索引获取与所述待分类文本相匹配的候选类别。根据需要检索的索引结构的不同,本领域技术人员可以生成适当的检索请求,本实施例对此不作限定。
例如,在本实施例中,所述索引为包括多级索引项的索引,各级所述索引项均与相应类别层级中的类别对应。
这种包括多级索引项的索引是根据具有多个类别层级的聚类结果生成的索引。通过具有多个类别层级的聚类结果,可以更好地体现文本间的关联和层次关系,使得聚类结果能够更好地满足后续的使用要求。
以待分类文本是新闻文本为例,聚类结果中的类别层级包括文本层(以L1为标识,文本层是所有重复文本后相似度较高的新闻文本的聚类)、事件层(以L2为标识,事件层是描述同一时间的新闻文本的聚类)和话题层(以L3为标识,话题层是同一时间的不同时间段的新闻文本的聚类),其中事件层中的多个类别可以从属于一个文本层中的类别,话题层中的多个类别可以从属于一个事件层中的类别。相应地,所述索引包括对应的三个索引级,其中,第一级中的索引项与文本层的类别对应,第二级中的索引项与事件层中的类别对应,最末级中的索引项与话题层中的类别对应。
当然,在其他实施例中,针对不同的待分类文本,聚类结果可以采用不同的层级数量和划分层级规则,进而其对应的索引可以采用与聚类结果适配的结构,本实施例对此不作限定。针对不同的聚类结果,可以生成适当结构的索引。
针对这种具有多级索引项的索引,在生成检索请求时,可以根据需要指示对索引中的某一级索引项进行检索,以减少计算量,提升检索效率。
在一具体实现中,检索请求用于请求检索所述索引中的最末级索引项。
由于具有多级索引项的索引通常是对应于具有多个类别层级的聚类结果生成的索引。而最末级索引项对应的通常为最末层级的类别即范围最小的类别,因此,若根据检索请求从最末级索引项中检索出能够合并待分类文本的归属类别,则可以直接将待分类文本合并到该归属类别中,这样可以减少检索的索引项的数量,相较于常规的索引检索时从顶层向底层检索的方式,检索效率更高。
例如,在一具体实现中,所述索引根据存储在外部存储空间中的聚类结果生成,且存储在外部存储空间中。通过将所述索引以及所述索引对应的类别数据(即聚类结果)持久化存储在外部存储设备中,可以解决现有的聚类过程中将聚类结果存储在内存中存在的存储空间受限、无法长时间保存等问题。
第二获取模块5022,用于从响应于所述检索请求的响应消息中,获取与所述待分类文本相匹配的候选类别及对应的匹配度。
所述响应消息可以是根据检索出的候选类别生成的,用于响应所述检索请求的消息。其中包括与所述待分类文本相匹配的所述候选类别、及其与所述待分类文本间的匹配度。
在本实施例中,根据所述检索请求进行检索可以由生成所述检索请求的执行主体之外的执行主体执行,以减少单个执行主体的计算负担,降低对执行主体性能的需求。
此外,生成检索请求和根据所述检索请求进行检索采用不同的执行主体,可以实现并行检索,如多个执行主体同时根据一个检索请求进行检索,从而提升检索的效率,降低检索时的时延。
可选地,所述合并模块506,用于若存在大于或等于设定阈值的类别,则根据预设的筛选规则,从匹配度大于或等于设定阈值的类别中确定出所述待分类文本的归属类别,并将所述待分类文本合并入所述归属类别中。
其中,所述筛选规则可以根据需要设置适配的规则。例如,所述筛选规则为:
第一种情况中:若所述候选类别中匹配度大于或等于设定阈值的类别的数量大于1,则根据待分类文本的特征数据中的全部或部分关键词,从所有匹配度大于或等于设定阈值的类别中确定出所述归属类别。
确定所述归属类别时,根据不同类型的待分类文本,可以使用不同的关键词。例如,针对新闻文本,可以使用用于指示地点的关键词确定所述归属类别。
具体例如,某一新闻文本中用于指示地点的关键词的内容为“北京”,则从所有匹配度大于或等于设定阈值的类别中,确定地点特征为“北京”的类别作为归属类别。这样可以避免那些与待分类文本的内容匹配度很高,但是实质并非同一事件的新闻文本被聚类到同一类别中的情况,提升聚类准确性。
第二种情况中:若所述候选类别中匹配度大于或等于设定阈值的类别的数量为1,则将该匹配度大于或等于设定阈值的类别确定为所述归属类别。
确定出归属类别后,将待分类文本合并入所述归属类别中。本领域技术人员可以根据需要采用任何适当的方式将待分类文本合并入所述归属类别中,例如,为所述待分类文本设置分类标识,通过分类标识指示待分类文本的归属类别的ID。
针对具有多个类别层级的聚类结果,可以根据属于不同类别层级的类别间的从属关系确定所述归属类别在各个类别层级中从属的类别,进而确定所述待分类文本的分类标识的内容。
本领域技术人员可以根据需要确定所述分类标识中包括的类别ID的数量。例如,本实施例中,所述分类标识中包括所述待分类文本的归属类别的ID、所述归属类别从属的上一层级的类别的ID和所述归属类别从属的最上级的类别的ID。
可选地,在将待分类文本合并入所述归属类别之后,所述装置还包括第一更新模块508,用于根据所述待分类文本的特征数据更新所述索引中所述归属类别所对应的实时索引。
由于本装置中对待分类文本进行实时处理,为了提升聚类的准确性,索引可以包括全量索引和实时索引。
其中,全量索引进行周期性更新,所述全量索引是根据从外部存储空间中存储的聚类结果中定期挑选出来的类别的数据生成,更新时剔除旧的或者不重要的文本聚出的类别,以减少索引检索的计算量,提高计算效率。
实时索引根据每个待分类文本的聚类结果进行实时更新。其根据短时间内合并有新文本的类别(可以是已有类别也可以是新创建类别)生成。在将待分类文本合并入归属类别后,根据待分类文本的特征数据更新所述归属类别的特征数据,使所述索引中的实时索引更新。例如,将所述实时索引中所述归属类别对应的特征数据更新为新的特征数据。
这样通过实时索引弥补了全量索引更新不及时的问题,在检索时既检索全量索引,又检索实时索引,并将两个检索结果合并后确定最终检索结果,保证了检索的全面性和准确性,进而确保了聚类的准确性。
可选地,所述装置还包括创建模块510,用于若不存在大于或等于设定阈值的类别,则发送合并失败消息令合并失败的文本创建新类别,将所述合并失败文本合并入创建的新类别中。
其中,设定阈值本领域技术人员可以根据需要具体设定,例如,设定为0.9或0.6等。若聚类结果包括多个类别层级,针对每个类别层级可以设置独立的设定阈值,以提升适应性。
在不存在匹配度大于或等于设定阈值的类别时,则表示所有候选类别与所述待分类文本的相关性均不足,不存在能够合并所述待分类文本的类别,此时,可以通过生成合并失败消息指示合并失败,以便根据合并失败的文本创建新类别,将所述合并失败文本合并入创建的新类别中。
例如,在尝试将待分类文本合并到已有的某一类别中的过程是通过文本合并请求触发的情况下,若生成合并失败消息,则将所述合并失败消息发送给所述文本合并请求的发送方,由文本合并请求的发送方会响应于所述合并失败消息,生成类别创建请求,所述类别创建请求用于指示根据合并失败的文本创建新类别,以将所述合并失败的文本合并入所述新类别中。当然,在其他实施例中,尝试将待分类文本合并到已有的某一类别中的过程可以通过其他方式触发,并不限于本实施例中例举的情况。
在本实施例中,所述类别创建请求生成过程为:所述文本合并请求的发送方收集一段时间内合并失败消息指示的合并失败的文本,并使用初始聚类算法(如K-means算法)对这些合并失败的文本进行初始聚类获得合并失败文本集,合并失败文本集中包括至少一个合并失败的文本。针对每个合并失败文本集生成对应的类别创建请求。
这样可以根据需要将类别创建请求发送给同一执行主体或不同的执行主体,以根据需要实现并发执行,提升执行效率。在并发执行时,这种方式由于预先对合并失败的文本进行了初始聚类,并根据聚类结果生成了对应的类别创建请求,确保聚类结果中属于不同类的合并失败的文本间的差异较大,从而保证根据不同类别创建请求创建的新类别间的差异较大,使并行创建新类别可行,不会产生冲突。
在一具体实现中,以所述索引为包括多级索引项的索引为例,对根据合并失败消息的响应消息(即类别创建请求)为合并失败的文本创建新类别,并将合并失败的文本合并入新类别的过程进行说明如下:
根据所述合并失败的文本的特征数据,通过索引确定除最末级索引项外,所述索引中剩余的各级索引项中是否存在可以合并所述合并失败的文本的索引项;若存在,则在可合并所述合并失败的文本的索引项对应的类别下创建从属于其的新类别,并将所述合并失败的文本并入创建的最末级的类别中;若不存在,则从最顶级开始依次创建新类别,并将所述合并失败的文本并入创建的最末级的类别中。
可选地,在将所述合并失败文本合并入创建的新的类别中之后,所述装置还包括第二更新模块512。
所述第二更新模块512,用于根据所述新类别及其对应的文本的特征数据,更新所述索引。
为了保证后续文本聚类时的准确性,在创建新类别并将合并失败的文本合并入新类别后,根据新类别对应的文本的特征数据更新所述索引。若索引包括全量索引和实时索引,则可以对索引中的实时索引进行更新,从而减少更新的消耗。
更新实时索引的过程可以参考前述的第一更新模块508中更新实时索引的过程,在此不再对更新实时索引的过程进行赘述。
通过本实施例,根据至少一待分类文本的特征数据,通过索引获取与所述待分类文本相匹配的候选类别,并在存在匹配度大于或等于所述设定阈值的类别时,从中确定所述待分类文本的归属类别,将所述待分类文本合并入所述归属类别中,实现文本聚类。在文本聚类过程中,由于根据待分类文本与类别间的匹配度进行聚类,不需要计算待分类文本间的匹配度,因此无需预先确定所有待分类文本,可以针对每个待分类文本进行实时处理。此外,通过索引获取候选类别,无需遍历所有类别,减少了获取候选类别的计算量,降低了聚类所用耗时。
此外,在文本合并失败后,针对合并失败的文本可以创建新类别,并将合并失败的文本合并入创建的新类别中,使得该聚类装置的适应性更好。
实施例七
参照图7,示出了根据本发明实施例七的一种电子设备的结构示意图,本发明具体实施例并不对电子设备的具体实现做限定。
如图7所示,该电子设备可以包括:处理器(processor)702、通信接口(Communications Interface)704、存储器(memory)706、以及通信总线708。
其中:
处理器702、通信接口704、以及存储器706通过通信总线708完成相互间的通信。
通信接口704,用于与其它电子设备如终端设备或服务器进行通信。
处理器702,用于执行程序710,具体可以执行上述下载应用的方法实施例中的相关步骤。
具体地,程序710可以包括程序代码,该程序代码包括计算机操作指令。
处理器702可能是中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。电子设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。
存储器706,用于存放程序710。存储器706可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。
程序710具体可以用于使得处理器702执行以下操作:根据至少一待分类文本的特征数据,通过索引获取与所述待分类文本相匹配的候选类别;确定所述候选类别中是否存在与所述待分类文本的匹配度大于或等于设定阈值的类别;若存在,则从所述匹配度大于或等于所述设定阈值的类别中确定所述待分类文本的归属类别,并将所述待分类文本合并入所述归属类别中。
在一种可选的实施方式中,程序710还用于使得处理器702在根据至少一待分类文本的特征数据,通过索引获取与所述待分类文本相匹配的候选类别时,根据至少一所述待分类文本的特征数据,生成并发送检索请求;从响应于所述检索请求的响应消息中,获取与所述待分类文本相匹配的候选类别及对应的匹配度。
在一种可选的实施方式中,所述索引为包括多级索引项的索引,各级所述索引项均与相应类别层级中的类别对应。
在一种可选的实施方式中,所述检索请求用于请求检索所述索引中的最末级索引项。
在一种可选的实施方式中,程序710还用于使得处理器702在若存在大于或等于设定阈值的类别时,则根据预设的筛选规则,从匹配度大于或等于设定阈值的类别中确定出所述待分类文本的归属类别,并将所述待分类文本合并入所述归属类别中。
在一种可选的实施方式中,程序710还用于使得处理器702根据所述待分类文本的特征数据更新所述索引中所述归属类别所对应的实时索引。
在一种可选的实施方式中,所述索引以及所述索引对应的类别数据持久化存储在外部存储设备中。
在一种可选的实施方式中,程序710还用于使得处理器702在若不存在大于或等于设定阈值的类别时,则发送合并失败消息,令合并失败的文本创建新类别,并将合并失败的文本合并入创建的新类别中。
在一种可选的实施方式中,程序710还用于使得处理器702在将所述合并失败文本合并入创建的新类别中之后,根据所述新类别及其对应的文本的特征数据更新所述索引。
程序710中各步骤的具体实现可以参见上述文本聚类方法实施例中的相应步骤和单元中对应的描述,在此不赘述。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的设备和模块的具体工作过程,可以参考前述方法实施例中的对应过程描述,在此不再赘述。
通过本实施例的电子设备,根据至少一待分类文本的特征数据,通过索引获取与所述待分类文本相匹配的候选类别,并在存在匹配度大于或等于所述设定阈值的类别时,从中确定所述待分类文本的归属类别,将所述待分类文本合并入所述归属类别中,实现文本聚类。在文本聚类过程中,由于根据待分类文本与类别间的匹配度进行聚类,不需要计算待分类文本间的匹配度,因此无需预先确定所有待分类文本,可以针对每个待分类文本进行实时处理。此外,通过索引获取候选类别,无需遍历所有类别,减少了获取候选类别的计算量,降低了聚类所用耗时。
以下,以一个应用场景为示例,对上述聚类方法进行说明。
如图8、9所示,在本应用场景中,为了提升文本聚类效率,以使用前述实施例中的文本聚类方法的文本聚类系统对新闻文本进行聚类为例进行说明。其中,文本聚类系统包括第一执行主体、第二执行主体和第三执行主体。需要说明的是,这些执行主体仅是逻辑划分,其可以为单独的硬件设备,也可以集成在一个硬件设备中,还可以每个执行主体均包括多个硬件设备。
在本应用场景中,聚类结果存储在第三执行主体的外部存储空间内,以实现持久化。聚类结果包括3个类别层级,分别为文本层(图9中以标号L1指示)、事件层(图9中以标号L2指示)和话题层(图9中以标号L3指示)。其中,每个类别层级中的类别均具有类中心特征数据,该类中心特征数据根据该类别中包括的所有文本的特征数据确定。需要说明的是,图9仅是示意性说明聚类结果包括3个类别层级,并不限定不同类别层级中的类别间的从属关系。位于第二层级的类别可以有多个从属于其的位于第三层级的类别。
相应地,根据所述聚类结果生成的索引具有三级索引项,每级中的各索引项与其对应的类别层级中的类别对应,该索引项的值即为其对应的类别的类中心特征数据。
索引包括全量索引和实时索引,两者均包括三级索引项。其中,全量索引根据存储在外部存储空间内的聚类结果中的全部或部分生成,进行周期性更新。实时索引仅根据最新的设定时间段内的聚类结果生成,且进行实时更新。
步骤A:第一执行主体实时地读取爬虫爬取的新闻文本(即待分类文本),并从新闻文本中获取需要的特征数据,并根据获取的特征数据生成并发送文本合并请求。
第一执行主体可以为多个硬件设备,并行(除多硬件设备并行外,每个设备上还可以通过多线程的方式并行)地获取新闻文本的特征数据,并根据特征数据生成文本合并请求,以提升聚类效率,降低每个硬件设备的计算量。
其中,特征数据包括但不限于:关键词、类目、文本向量(如word embedding)和TF/IDF特征等。针对不同的特征数据可以采用相应的方式获取,如关键词可以通过textrank算法或者分词处理获取。
步骤B:第二执行主体接收到文本合并请求,根据文本合并请求中的特征数据,生成并发送检索请求。
若索引包括多级索引项,则根据文本合并请求生成的检索请求,用于指示对索引中的最末级索引项进行检索。
步骤C:第三执行主体接收到检索请求后,根据检索请求的指示进行检索。
检索的具体过程为:
步骤C1:根据所述检索请求中包括的特征数据中的部分,进行一次检索。
在一次检索时,分别检索实时索引和全量索引,对实时索引和全量索引进行检索的过程可以相同也可以不同,本应用场景中检索的过程相同。
在一次检索时,根据特征数据中的关键词、类目等进行一次检索,确定关键词和类目与所述待分类文本的匹配度。根据匹配度对全量索引和实时索引的索引项进行排序,确定匹配度最高的N个索引项(即类别),N为正整数。这种检索方式由于使用的特征数量较少,且关键词和类目的匹配度计算较为简单,使得计算量小,可以充分提升检索速度。
步骤C2:根据所述检索请求中包括的特征数据中的全部,进行二次检索。在二次检索时,同样分别检索实时索引和全量索引。
在二次检索时,分别根据特征数据中的每类特征计算出一个待分类文本与一次检索结果中的各索引项间的匹配度,再将这些匹配度组合为一个向量,输入到用于计算最终匹配度的机器学习模型中,计算出该待分类文本与各索引项间的最终匹配度。根据该最终匹配度对全量索引和实时索引中的索引项进行排序,并将最终匹配度最高的M个索引项对应的类别确定为候选类别,M为正整数。根据确定的候选类别及其对应的匹配度生成响应于检索请求的响应消息,并将响应消息发送给第二执行主体。由于在二次检索时使用了全部特征,确保了检索的准确度,且不会有较大的计算量,确保了检索效率。
步骤D:第二执行主体从获取的响应消息中获取候选类别及对应的匹配度,并根据匹配度和设定阈值,确定候选类别中是否存在匹配度大于或等于设定阈值的类别。
其中,从不同类别层级检索出的候选类别对应的设定阈值不同,以实现层次聚类。若存在匹配度大于或等于设定阈值的类别,则执行步骤E,若不存在,则执行步骤G。
步骤E:第二执行主体确定是否存在多个匹配度大于或等于设定阈值的类别,若不存在多个,则直接将匹配度大于或等于设定阈值的类别确定为待分类文本的归属类别,并将待分类文本合并入归属类别中,并重新计算合并后的该归属类别的类中心特征数据。若存在多个,则根据预设的筛选规则,从中确定出一个归属类别,并将待分类文本合并入归属类别中,并重新计算合并后的该归属类别的类中心特征数据。
步骤F:在合并后,第二执行主体对重新计算的合并后的归属类别的类中心特征数据进行分发操作和日志打点操作。
其中,第一方面,第二执行主体将待分类文本对应的归属类别的ID、在上一类别层级中该归属从属的类别的ID和在最上层的层级中该归属类别从属的类别的ID发送给第一执行主体,使第一执行主体可以将待分类文本(即新闻文本)、特征数据和对应的聚类结果等发送到第三执行主体中进行存储。
第二方面,第二执行主体将重新计算合并后的归属类别及其类中心特征数据发送给特征服务器进行存储。特征服务器主要用于同步各类别的类中心特征数据,在并发过程中快速同步更新数据,以便在发生意外时或者在并发执行文本合并请求出现冲突时,从特征服务器同步最新的类别及其对应的类中心特征数据。另外,特征服务器也用于对第三方提供聚类结果的查看服务。
第三方面,第二执行通过消息队列的方式将重新计算合并后的该归属类别的类中心特征数据发送至第三执行主体。
一方面,使第三执行主体将归属类别的类中心特征数据更新到存储的聚类结果中,实现持久化聚类结果,以及用于容灾备份、和作为新闻索引的刷新数据库使用。
另一方面,以备后续全量索引根据存储的聚类结果进行更新;此外,重新计算的归属类别的类中心特征数据还使实时索引可以根据重新计算的归属类别的类中心特征数据进行更新。
第四方面,第二执行主体将合并过程中的关键过程信息打点记录,便于出现问题之后的回溯与调试。
步骤G:当候选类别中不存储匹配度大于或等于设定阈值的类别时,第二执行主体生成合并失败消息,并将合并失败消息发送给第一执行主体。
步骤H:第一执行主体根据合并失败消息,收集一段时间内的或者一定数量的合并失败的文本,对这一批合并失败的文本使用传统的聚类算法(如K-means算法),初始聚类出合并失败文本集,然后将每个合并失败文本集并行处理,针对其生成类别创建请求,并发送至第二执行主体。不同的合并失败文本集对应的类别创建请求可以发送到不同的硬件设备中,在一个硬件设备中可以通过多线程伪并发方式进行处理。通过预先对合并失败的文本进行聚类,可以缓解类别创建时的并发冲突。
步骤I:第二执行主体根据类别创建请求中合并失败的文本的特征数据,生成并发送检索请求。若索引包括多级索引项,则根据类别创建请求生成的检索请求,用于指示对索引中的处最末级索引项外的索引项进行检索。例如,根据类别创建请求生成的检索请求可以指示对倒数第二级索引项进行检索。
步骤J:第三执行主体根据对应类别创建请求生成的检索请求,对其指示的某级索引项进行检索获得候选类别,并根据候选类别及其匹配度生成响应消息发送给第二执行主体。检索过程与步骤C中的检索过程类似,故不再赘述。
步骤K:第二执行主体根据候选类别的类别层级确定对应的设定阈值,并根据候选类别的匹配度和确定设定阈值确定是否存在能够合并该合并失败的文本的类别。若存在,则执行步骤L;若不存在,则执行步骤M。
步骤L:若存在,则在该类别下创建从属于其的新类别,如果该类别下存在多个类别层级,则每个类别层级均对应创建从属的新类别,并将最末级的新类别确定为合并失败的文本的归属类别,将其合并到该归属类别中,并计算创建的各新类别的类中心特征数据。在创建完成新类别后,可以执行与前述的步骤E相同的步骤。
步骤M:若不存在,则可以根据类别创建请求生成新的检索请求,指示检索更上一级的索引项,并重复步骤J、K,直至遍历了索引中的所有级。若所有级中均不包括能够合并该合并失败的文本的类别,则从最上级开始依次创建新类别,并将最末级的新类别确定为合并失败的文本的归属类别,将其合并到该归属类别中,并计算创建的各新类别的类中心特征数据。在创建完成新类别后,可以执行与前述的步骤E相同的步骤。
本应用场景中,能流式的处理待分类文本,解决了传统的层次聚类需要迭代的问题。
文本聚类系统将single-pass方法中的阈值判断过程拆分成文本合并请求和类别创建请求两步,使得进行文本合并时可以进行多机器多线程部署(即完全并发);在进行类别创建时可以进行单机器多线程部署(即部分并发),从而提升聚类效率。
将遍历所有类的过程改为索引排序的过程,极大的提高了计算性能减少了时延。在检索时,索引结果的排序可根据需要进行多轮的计算,同时使用特征数据计算类别与待分类文本间的匹配度时使用的机器学习模型可以做多种融合,使得计算的结果更加准确。在检索出多个匹配度大于或等于设定阈值的候选类别时,根据预设的筛选规则进行筛选,确定归属类别,确定了聚类的准确性。
此外,通过将聚类结果、文本数据等存储到外部存储空间(如数据库)中,改进了single-pass方法聚类结果存储在内存中存储受限的问题。
最后,解决了传统的single-pass算法不进行层次聚类的问题,将层次聚类定义为多次single-pass的过程,使得聚类结果之间有一定的层次结构,实现了聚类结果的层次化关联。
需要指出,根据实施的需要,可将本发明实施例中描述的各个部件/步骤拆分为更多部件/步骤,也可将两个或多个部件/步骤或者部件/步骤的部分操作组合成新的部件/步骤,以实现本发明实施例的目的。
上述根据本发明实施例的方法可在硬件、固件中实现,或者被实现为可存储在记录介质(诸如CD ROM、RAM、软盘、硬盘或磁光盘)中的软件或计算机代码,或者被实现通过网络下载的原始存储在远程记录介质或非暂时机器可读介质中并将被存储在本地记录介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件(诸如ASIC或FPGA)的记录介质上的这样的软件处理。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件(例如,RAM、ROM、闪存等),当所述软件或计算机代码被计算机、处理器或硬件访问且执行时,实现在此描述的文本聚类方法。此外,当通用计算机访问用于实现在此示出的文本聚类方法的代码时,代码的执行将通用计算机转换为用于执行在此示出的文本聚类方法的专用计算机。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及方法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明实施例的范围。
以上实施方式仅用于说明本发明实施例,而并非对本发明实施例的限制,有关技术领域的普通技术人员,在不脱离本发明实施例的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明实施例的范畴,本发明实施例的专利保护范围应由权利要求限定。
Claims (16)
1.一种文本聚类方法,其特征在于,包括:
根据至少一待分类文本的特征数据,通过索引获取与所述待分类文本相匹配的候选类别;
确定所述候选类别中是否存在与所述待分类文本的匹配度大于或等于设定阈值的类别;
若存在,则从所述匹配度大于或等于所述设定阈值的类别中确定所述待分类文本的归属类别,并将所述待分类文本合并入所述归属类别中;
所述方法还包括:
若不存在大于或等于设定阈值的类别,则发送合并失败消息,以采用初始聚类算法对预设时间段内合并失败消息指示的合并失败的文本进行初始聚类,得到合并失败文本集;并针对各合并失败文本集生成对应的类别创建请求,以并行针对各合并失败文本集执行新类别创建及文本合并入新类别操作;
所述索引为包括多级索引项的索引,各级所述索引项均与相应类别层级中的类别对应;针对合并失败文本集执行新类别创建及文本合并入新类别操作的过程,包括:
根据合并失败的文本的特征数据,通过索引确定除最末级索引项外,所述索引中剩余的各级索引项中是否存在可合并所述合并失败的文本的索引项;若存在,则在可合并所述合并失败的文本的索引项对应的类别下创建从属于所述合并失败的文本的新类别,并将所述合并失败的文本并入创建的最末级的类别中;若不存在,则从最顶级开始依次创建新类别,并将所述合并失败的文本并入创建的最末级的类别中。
2.根据权利要求1所述的方法,其特征在于,所述根据至少一待分类文本的特征数据,通过索引获取与所述待分类文本相匹配的候选类别,包括:
根据至少一所述待分类文本的特征数据,生成并发送检索请求;
从响应于所述检索请求的响应消息中,获取与所述待分类文本相匹配的候选类别及对应的匹配度。
3.根据权利要求2所述的方法,其特征在于,所述检索请求用于请求检索所述索引中的最末级索引项。
4.根据权利要求1所述的方法,其特征在于,所述若存在,则从所述匹配度大于或等于设定阈值的类别中确定所述待分类文本的归属类别,并将所述待分类文本合并入所述归属类别中,具体为:
若存在大于或等于设定阈值的类别,则根据预设的筛选规则,从匹配度大于或等于设定阈值的类别中确定出所述待分类文本的归属类别,并将所述待分类文本合并入所述归属类别中。
5.根据权利要求1或4所述的方法,其特征在于,所述方法还包括:
根据所述待分类文本的特征数据更新所述索引中所述归属类别所对应的实时索引。
6.根据权利要求5所述的方法,其特征在于,所述索引以及所述索引对应的类别数据持久化存储在外部存储设备中。
7.根据权利要求1所述的方法,其特征在于,在将所述合并失败文本合并入创建的新类别中之后,所述方法还包括:
根据所述新类别及其对应的文本的特征数据更新所述索引。
8.一种文本聚类装置,其特征在于,包括:
第一获取模块,用于根据至少一待分类文本的特征数据,通过索引获取与所述待分类文本相匹配的候选类别;
确定模块,用于确定所述候选类别中是否存在与所述待分类文本的匹配度大于或等于设定阈值的类别;
合并模块,用于若存在,则从所述匹配度大于或等于所述设定阈值的类别中确定所述待分类文本的归属类别,并将所述待分类文本合并入所述归属类别中;
创建模块,用于若不存在大于或等于设定阈值的类别,则发送合并失败消息,以采用初始聚类算法对预设时间段内合并失败消息指示的合并失败的文本进行初始聚类,得到合并失败文本集;并针对各合并失败文本集生成对应的类别创建请求,以并行针对各合并失败文本集执行新类别创建及文本合并入新类别操作;
其中,所述索引为包括多级索引项的索引,各级所述索引项均与相应类别层级中的类别对应;所述创建模块,在针对合并失败文本集执行新类别创建及文本合并入新类别操作时,具体用于:
根据合并失败的文本的特征数据,通过索引确定除最末级索引项外,所述索引中剩余的各级索引项中是否存在可合并所述合并失败的文本的索引项;若存在,则在可合并所述合并失败的文本的索引项对应的类别下创建从属于所述合并失败的文本的新类别,并将所述合并失败的文本并入创建的最末级的类别中;若不存在,则从最顶级开始依次创建新类别,并将所述合并失败的文本并入创建的最末级的类别中。
9.根据权利要求8所述的装置,其特征在于,所述第一获取模块包括:
生成模块,用于根据至少一所述待分类文本的特征数据,生成并发送检索请求;
第二获取模块,用于从响应于所述检索请求的响应消息中,获取与所述待分类文本相匹配的候选类别及对应的匹配度。
10.根据权利要求9所述的装置,其特征在于,所述检索请求用于请求检索所述索引中的最末级索引项。
11.根据权利要求8所述的装置,其特征在于,所述合并模块用于若存在大于或等于设定阈值的类别,则根据预设的筛选规则,从匹配度大于或等于设定阈值的类别中确定出所述待分类文本的归属类别,并将所述待分类文本合并入所述归属类别中。
12.根据权利要求8或11所述的装置,其特征在于,所述装置还包括:
第一更新模块,用于根据所述待分类文本的特征数据更新所述索引中所述归属类别所对应的实时索引。
13.根据权利要求12所述的装置,其特征在于,所述索引以及所述索引对应的类别数据持久化存储在外部存储设备中。
14.根据权利要求8所述的装置,其特征在于,所述装置还包括:
第二更新模块,用于在将所述合并失败文本合并入创建的新类别中之后,根据所述新类别及其对应的文本的特征数据更新所述索引。
15.一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如权利要求1-7中任一项所述的文本聚类方法对应的操作。
16.一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现如权利要求1-7中任一所述的文本聚类方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910108649.8A CN111522941B (zh) | 2019-02-03 | 2019-02-03 | 文本聚类方法、装置、电子设备及计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910108649.8A CN111522941B (zh) | 2019-02-03 | 2019-02-03 | 文本聚类方法、装置、电子设备及计算机存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111522941A CN111522941A (zh) | 2020-08-11 |
CN111522941B true CN111522941B (zh) | 2024-07-12 |
Family
ID=71900019
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910108649.8A Active CN111522941B (zh) | 2019-02-03 | 2019-02-03 | 文本聚类方法、装置、电子设备及计算机存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111522941B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115204318B (zh) * | 2022-09-15 | 2022-12-02 | 天津汇智星源信息技术有限公司 | 事件自动层级分类方法及电子设备 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109241274A (zh) * | 2017-07-04 | 2019-01-18 | 腾讯科技(深圳)有限公司 | 文本聚类方法及装置 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002259388A (ja) * | 2001-03-05 | 2002-09-13 | Fujitsu Ltd | 画像検索システム、方法及び画像検索プログラム |
US7756845B2 (en) * | 2006-12-28 | 2010-07-13 | Yahoo! Inc. | System and method for learning a weighted index to categorize objects |
CN101266603B (zh) * | 2007-03-12 | 2010-09-08 | 北京搜狗科技发展有限公司 | 一种网页信息分类方法、系统及应用该分类的服务系统 |
CN101308496A (zh) * | 2008-07-04 | 2008-11-19 | 沈阳格微软件有限责任公司 | 大规模文本数据的外部聚类方法及系统 |
CN102402508A (zh) * | 2010-09-07 | 2012-04-04 | 华东师范大学 | 一种近似图像检索装置及检索方法 |
CN103838886A (zh) * | 2014-03-31 | 2014-06-04 | 辽宁四维科技发展有限公司 | 基于代表词知识库的文本内容分类方法 |
CN108304882B (zh) * | 2018-02-07 | 2022-03-04 | 腾讯科技(深圳)有限公司 | 一种图像分类方法、装置及服务器、用户终端、存储介质 |
-
2019
- 2019-02-03 CN CN201910108649.8A patent/CN111522941B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109241274A (zh) * | 2017-07-04 | 2019-01-18 | 腾讯科技(深圳)有限公司 | 文本聚类方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111522941A (zh) | 2020-08-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112199375B (zh) | 跨模态的数据处理方法、装置、存储介质以及电子装置 | |
JP6544756B2 (ja) | 画像の高次元特徴の類似性を比較するための方法及びデバイス | |
CN106453437B (zh) | 一种设备识别码获取方法及装置 | |
US9110978B2 (en) | Method for matching queries with answer items in a knowledge base | |
EP3590287B1 (en) | Generating wireless network access point models using clustering techniques | |
CN112800287B (zh) | 基于图数据库的全文索引方法和系统 | |
CN111506771B (zh) | 一种视频检索方法、装置、设备及存储介质 | |
CN109710792B (zh) | 一种基于索引的快速人脸检索系统应用 | |
CN112115232A (zh) | 一种数据纠错方法、装置及服务器 | |
CN111666443A (zh) | 业务处理方法、装置、电子设备及计算机可读存储介质 | |
CN111428140B (zh) | 高并发数据检索方法、装置、设备及存储介质 | |
CN111522941B (zh) | 文本聚类方法、装置、电子设备及计算机存储介质 | |
US8667008B2 (en) | Search request control apparatus and search request control method | |
CN113918807A (zh) | 数据推荐方法、装置、计算设备及计算机可读存储介质 | |
CN110209895B (zh) | 向量检索方法、装置和设备 | |
US20230169096A1 (en) | Sample Data Annotation System and Method, and Related Device | |
CN116309002B (zh) | 图数据存储、访问、处理方法、训练方法、设备及介质 | |
CN107506473B (zh) | 一种基于云计算的大数据检索方法 | |
CN103891244B (zh) | 一种进行数据存储和检索的方法及装置 | |
CN111261165A (zh) | 车站名称识别方法、装置、设备及存储介质 | |
CN105786922B (zh) | 一种缺失电子地图数据的确定方法和设备 | |
CN116304253B (zh) | 数据存储方法、数据检索方法和识别相似视频的方法 | |
CN117729176B (zh) | 基于网络地址和响应体的应用程序接口聚合方法及装置 | |
CN104298684B (zh) | 一种查询方法、装置及服务器 | |
CN115146692A (zh) | 数据聚类方法、装置、电子设备及可读存储介质 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |