文本的处理方法、装置、设备及存储介质与流程

文档序号:18464983发布日期:2019-08-17 02:22阅读:154来源:国知局
文本的处理方法、装置、设备及存储介质与流程

本申请涉及互联网领域,特别涉及一种文本的处理方法、装置、设备及存储介质。



背景技术:

在存在海量短文本的场景下,上述海量短文本中存在大量的相似文本;由于业务需求,需要对上述大量的相似文本进行过滤处理,输出去重后的文本集合。

对于海量文本的去重,以simhash算法最具有代表性。simhash算法是将文本映射为一个01串,相似文本得到的01串是相似的;比较两个文本的01串之间在多少个位置上字符不同,上述字符不同的位置数就是散列(hashing)距离;当hashing距离小于或者等于距离阈值时,表示两个文本之间的相似度高,是相似文本,需要做去重处理;当hashing距离大于距离阈值时,表示两个文本之间的相似度低,是不同的两个文本,不需要做去重处理。

通常,针对长文本进行去重处理时,hashing距离的距离阈值设置为3;该距离阈值能够准确的度量长文本之间的相似性,且能够极大的降低算法执行的复杂度和时间,取得很好的去重效果。但是,对于短文本,两个相似文本之间的hashing距离的通常是大于3的,而hashing距离的距离阈值越大,则算法执行的复杂度越大,相应的,执行的时间也越长;所以,simhash算法并不能够在满足对短文本的快速去重处理的同时,保证去重的较高准确度。



技术实现要素:

本申请实施例提供了一种文本的处理方法、装置、设备及存储介质,可以解决短文本进行去重处理时,无法在满足对短文本的快速去重处理的同时,保证去重的较高准确度的问题。所述技术方案如下:

根据本申请的一个方面,提供了一种文本的处理方法,该方法包括:

接收终端发送的至少两个文本;至少两个文本中包括第一文本和第二文本;

根据第一文本生成第一文本节点,根据第二文本生成第二文本节点;第一文本节点中包括第一文本的第一分词集合,第二文本节点中包括第二文本的第二分词集合;

确定第一分词集合和第二分词集合的第一相似度;

当第一相似度大于相似度阈值时,将第一文本节点和第二文本节点建立连接关系,生成第一树状结构图;

对第一树状结构图中文本节点对应的文本进行去重处理。

根据本申请的另一方面,提供了一种文本的处理装置,该装置包括:

接收模块,用于接收终端发送的至少两个文本;至少两个文本中包括第一文本和第二文本;

生成模块,用于根据第一文本生成第一文本节点,根据第二文本生成第二文本节点;第一文本节点中包括第一文本的第一分词集合,第二文本节点中包括第二文本的第二分词集合;

确定模块,用于确定第一分词集合和第二分词集合的第一相似度;

连接模块,用于当第一相似度大于相似度阈值时,将第一文本节点和第二文本节点建立连接关系,生成第一树状结构图;

去重模块,用于对第一树状结构图中文本节点对应的文本进行去重处理。

根据本申请的另一方面,提供了一种终端,该终端包括:

存储器;

与存储器相连的处理器;

其中,处理器被配置为加载并执行可执行指令以实现如上述第一方面及其可选实施例所述的文本的处理方法。

根据本申请的另一方面,提供了一种计算机可读存储介质,上述计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,上述至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现如上述第一方面及其可选实施例所述的文本的处理方法。

本申请实施例提供的技术方案带来的有益效果至少包括:

服务器通过根据终端发送的第一文本和第二文本分别生成第一文本节点和第二文本节点,其中,第一文本节点中包括第一分词集合,第二文本节点中包括第二分词集合;确定第一分词集合与第二分词集合的第一相似度;当第一相似度大于相似度阈值时,将相似的第一文本节点和第二文本节点建立连接关系,生成第一树状结构图;从第一树状结构图中确定出第一根节点,将第一根节点对应的文本确定为去重后的文本。该方法通过将相似的文本之间建立连接关系,形成树状结构图;由于树状结构图中的文本节点均是相似文本的文本节点,所以从上述一个树状结构图中获取其中一个文本节点,摒弃其余的文本节点,则得到去重后的文本节点,进而得到去重后的文本。在树状结构图中,可以通过遍历的技术手段快速的找到树状结构图中的根节点,实现对大量文本的快速去重;同时,通过相似度阈值的设置,准确的确定出相似文本,保证了去重的准确性。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本申请一个示例性实施例提供的计算机系统的结构示意图;

图2是本申请一个示例性实施例提供的文本的处理方法的流程图;

图3是本申请另一个示例性实施例提供的文本的处理方法的流程图;

图4是本申请另一个示例性实施例提供的文本的处理方法的流程图;

图5是本申请一个示例性实施例提供的文本节点的示意图;

图6是本申请一个示例性实施例提供的倒排索引的结构示意图;

图7是本申请另一个示例性实施例提供的倒排索引的结构示意图;

图8是本申请另一个示例性实施例提供的倒排索引的结构示意图;

图9是本申请一个示例性实施例提供的文本节点的树状结构图的示意图;

图10是本申请另一个示例性实施例提供的文本节点的树状结构图的示意图;

图11是本申请另一个示例性实施例提供的文本节点的树状结构图的示意图;

图12是本申请一个示例性实施例提供的文本节点的树状结构子图的示意图;

图13是本申请一个示例性实施例提供的文本的处理装置的框图;

图14是本申请一个示例性实施例提供的电子设备的结构示意图;

图15是本申请一个示例性实施例提供的服务器的结构示意图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。

对本申请涉及的若干个名词进行简介:

哈希相似度(simhash)算法:是一种针对数量为亿万级别的文本的去重算法,该算法根据哈希(hash)函数将文本映射为一个01串,通过两个文本之间的01串计算上述两个文本之间散列(hashing)距离,该hashing距离用于表征两个文本之间的相似度。其中,相似文本得到的01串是相似的,通过hashing距离可以确定两个文本之间是否相似,进而确定是否对两个文本做去重处理。

在simhash算法中,对两个文本的01串的比较,是比较两个文本的01串之间在多少个位置上字符不同;上述字符不同的位置数量就是散列(hashing)距离;当hashing距离小于或者等于距离阈值时,表示两个文本之间的相似度高,是相似文本,需要做去重处理;当hashing距离大于距离阈值时,表示两个文本之间的相似度低,是不同的两个文本,不需要做去重处理。

通常,将上述hashing距离设置为3。比如,对于一个64位的hash值,将其从高位至低位划分为4个连续的16位,那么最多有3个16位中包括1个字符不同的位置,两个相似文本之间总是有1个16位,其每个位置上字符都是相同的,因此,当hashing距离小于或者等于3时,两个文本之间的相似度高,可以确定两个文本相似,并对上述两个文本进行去重处理。而当hashing距离大于3时,则4个16位中每一个16位能够包括至少1个字符不同的位置,两个文本之间的相似度低,可以确定两个文本不相似,不需要做去重处理。

因此,可以将文本的64位hash值从高位至低位划分为4个连续的16位01串片段,将上述16位的01串片段分别作为索引的键值,并将对应位置上具有相同的16位01串的文本对应添加到相应的键值下,形成索引;比如,将文本1的高16位的01串作为键值1,将在高16位上具有相同01串的其它文本添加到键值1下。形成索引之后,通过simhash算法并行完成对上述索引中每个键值下的所有文本进行去重处理。

杰卡德(jaccard)相似度:可以用于表征两个文本之间的相似度。示意性的,以文本a和文本b定义jaccard相似度,文本a进行分词之后的集合得到分词集合a,文本b进行分词之后的集合得到分词集合b,则jaccard相似度的计算公式为:

其中,sim(a,b)为jaccard相似度,a∩b表示a与b的交集中分词的数量,a∪b表示a与b的并集中分词的数量。

jaccard相似度介于0-1之间,当jaccard相似度为0时,表示两个文本是完全不一样的文本;当jaccard相似度为1时,表示两个文本是完全相同的文本。在实际文本去重的过程中,通常设置一个相似度阈值作为文本去重的基准,当两个文本的jaccard相似度大于该相似度阈值时,两个文本被判定为相似文本,则对两个文本进行去重处理;当两个文本的jaccard相似度小于或者等于该相似度阈值时,两个文本被判定为不相似文本,则对两个文本不做去重处理。

并查集(union-find)算:是一种不相交数据结构,该算法将两个不相交的子集合并成为一个集合,并能够在这个集合中确定出一个元素所属的子集。在本申请中,union-find算法可以用于从树状结构图中确定出所有不相交的树状结构子图,从而得到每个树状结构子图中去重后的文本节点对应的文本,即去重后的文本。

在本申请中,n个树状结构图被连接在一起,形成新的树状结构图,上述n个树状结构图成为新的树状结构图的子图。其中,在上述新的树状结构图中,每一子图的根节点作为子节点与新的树状结构图的根节点连接。

neo4j:是一种图数据库,用于存储图数据结构的节点和连接关系;还是一种高性能的引擎,支持union-find算法的实现。在本申请中,neo4j用于存储文本的文本节点构成的树状数据结构图,并通过union-find算法实现去重后的文本节点的输出。

lda主题模型:一种无监督学习模型,是对文本划分主题进行训练得到的模型,能够在输入文本后将相同主题的文本进行归类。该模型的主题数量的设置没有固定值,需要在模型训练时进行预先设置,且在模型训练结束之后,需要手动调整训练参数,以达到预期的聚类效果。

在对文本去重的过程中,上述simhash算法中hashing距离的距离阈值设置为3时,针对长文本去重能够准确的度量长文本之间的相似性,且能够极大的降低算法执行的复杂度和时间,取得很好的去重效果。但是,对于短文本,两个相似文本之间的hashing距离的通常是大于3的,而hashing距离的距离阈值越大,则算法执行的复杂度越大,相应的,执行的时间也越长;所以,simhash算法并不能够在满足对短文本的快速去重处理的同时,保证去重的较高准确度。因此,本申请提供了一种文本的处理方法,用于解决上述问题。

请参考图1,示出了一个示例性实施例提供的计算机系统的机构框图,该计算机系统包括:终端120、文本处理服务器140、分词服务器160和数据库服务器180;

终端120中安装有应用程序;该应用程序可以用于文本信息的发布。可选地,该应用程序可以包括在线网络游戏、通讯程序、视频播放程序、生活服务程序中的至少一种。当用户通过应用程序发布文本信息时,终端可以通过有线或者无线网络将上述文本信息发送至文本处理服务器140中。

文本处理服务器140与终端120通过有线或者无线网络连接;文本处理服务器140还通过有线或者无线网络分别与分词服务器160、数据库服务器180连接。

该文本处理服务器140接收终端120发送的文本信息,提取文本信息中的文本,并通过分词服务器160对文本进行分词处理,得到每一个文本的分词集合,对每一个文本生成对应的文本节点,其中,每个文本节点中包括对应文本的分词集合。文本处理服务器160还根据文本的分词集合确定两两文本之间的相似度,并根据相似和不相似的关系在两两文本之间建立不同的连接关系,形成树状结构图,将上述树状结构图存储至数据库服务器180中。

文本处理服务器140还通过图算法从数据库服务器180中获取上述树状结构图中去重后的文本节点对应的文本,并将文本存储至数据库服务器180中。可选地,上述图算法可以是union-find算法。

可选地,数据库服务器180中包括图数据库和文本数据库。文本处理服务器140将上述树状结构图存储至图数据库中,将上述文本存储至文本数据库中。可选地,图数据库支持union-find算法的实现。可选地,图数据库可以是neo4j。

在一些实施例中,文本处理服务器140还对上述去重后的文本进行二次去重。可选地,文本处理服务器140通过simhash算法对上述去重后的文本进行二次去重,将二次去重后的文本存储至数据库服务器180的文本数据库中。

请参考图2,示出了一个示例性实施例提供的文本的处理方法,以该方法应用于图1所示的计算机系统中为例,该方法包括:

步骤201,终端向服务器发送文本信息。

步骤202,服务器接收终端发送的文本信息。

上述文本信息中包括至少两个文本,服务器接收终端发送的至少两个文本。其中,上述至少两个文本中包括第一文本和第二文本。

步骤203,服务器根据第一文本生成第一文本节点,根据第二文本生成第二文本节点。

服务器对第一文本进行分词的处理;得到第一文本的第一分词集合;生成包括第一分词集合的第一文本的第一文本节点。与上述过程相同,服务器生成包括第二分词集合的第二文本的第二文本节点。

步骤204,服务器确定第一分词集合和第二分词集合的第一相似度。

可选地,通过jaccard相似度来表征第一分词集合和第二分词集合的第一相似度;示意性步骤如下:

服务器统计第一分词集合和第二分词集合的交集中的分词数量,为第一分词数量;

服务器统计第一分词集合和第二分词集合的并集中的分词数量,为第二分词数量,

服务器将第一分词数量与第二分词数量的比值确定为jaccard相似度。

步骤205,当第一相似度大于相似度阈值时,服务器将第一文本节点和第二文本节点建立连接关系,生成第一树状结构图。

相似度阈值是用于确定两个文本是否相似的阈值,当相似度大于该相似度阈值时,则确定两个文本相似;当相似度小于或者等于相似度阈值,则确定两个文本不相似。

当服务器判断得到第一相似度大于相似度阈值时,确定第一文本和第二文本相似,在第一文本节点和第二文本节点之间建立连接关系,生成第一树状结构图。该第一树状结构图表示出了第一文本节点和第二文本节点之间的连接关系。

步骤206,服务器对第一树状结构图中文本节点对应的文本进行去重处理。

第一树状结构中包括第一根节点;遍历第一树状结构图中的文本节点;找到第一根节点,将第一树状结构图中的第一根节点对应的文本确定为去重后的文本。

示意性的,遍历第一树状结构图中的文本节点;将第一树状结构图中的第二文本节点确定为第一根节点;将第一根节点对应的文本确定为去重后的文本。

综上所述,本实施例提供的文本的处理方法,服务器通过根据终端发送的第一文本和第二文本分别生成第一文本节点和第二文本节点,其中,第一文本节点中包括第一分词集合,第二文本节点中包括第二分词集合;确定第一分词集合与第二分词集合的第一相似度;当第一相似度大于相似度阈值时,将相似的第一文本节点和第二文本节点建立连接关系,生成第一树状结构图;从第一树状结构图中确定出第一根节点,将第一根节点对应的文本确定为去重后的文本。该方法通过将相似的文本之间建立连接关系,形成树状结构图;由于树状结构图中的文本节点均是相似文本的文本节点,所以从上述一个树状结构图中获取其中一个文本节点,摒弃其余的文本节点,则得到去重后的文本节点,进而得到去重后的文本。在树状结构图中,可以通过遍历的技术手段快速的找到树状结构图中的根节点,实现对大量文本的快速去重;同时,通过相似度阈值的设置,准确的确定出相似文本,保证了去重的准确性。

基于图2,在确定两两文本之间的相似度之前,可以对至少两个文本进行划分,将潜在相似的文本聚合在一起,减少文本之间的比较规模,示意性的步骤如下:

服务器生成第一文本节点和第二文本节点的倒排索引;该倒排索引中包括键值,该键值是根据文本的分词生成的。服务器确定第一文本节点和第二文本节点属于同一键值下。

示意性的,第一文本节点还包括第一节点id,第二文本节点还包括第二节点id;对第一文本节点和第二文本节点倒排索引的过程如下:

服务器根据第一文本节点的第一分词集合建立键值,其中,第一分词集合中包括j个分词,以一个分词作为一个键值,对应建立j个键值;将第一文本节点的第一节点id存储至每一个键值下。

服务器将第二文本节点的第二分词集合中的分词分别与j个键值对应的分词匹配;当第p个分词与第q个键值对应的分词匹配时,将第二文本节点的第二节点id存储至第q个键值下;当第p个分词与j个键值对应的分词均不匹配时,以第p个分词为一个新的键值,并将第二文本节点的第二节点id存储至新的键值下,其中,j、q、p为正整数。

在上述倒排索引生之后,服务器确定第一文本节点和第二文本节点在同一键值下,则计算第一分词集合和第二分词集合的相似度;不在同一键值下的文本,则是完全不相同的两个文本,不需要进行比较去重。

在文本的处理方法中,采用倒排索引的手段能够有效的聚合具有同一分词的文本,排除完全不同的文本,大大的减少了文本之间两两对比的次数,且能够将有可能相似的文本聚合在一起,提高筛选精度。

需要说明的是,基于图2,上述至少两个文本节点中,除第一文本和第二文本之外,还包括第三文本,请参考图3,结合上述倒排索引的方法,在第三文本与第一文本、第二文本均不相似的情况下,文本的处理方法包括以下步骤:

步骤301,终端向服务器发送文本信息。

步骤302,服务器接收终端发送的文本信息。

步骤303,服务器根据第一文本生成第一文本节点,根据第二文本生成第二文本节点,根据第三文本节点生成第三文本节点。

服务器生成第一文本的第一节点id,第一节点id是第一文本节点的唯一节点标识;将第一文本的文本内容进行分词,得到第一分词集合;生成包括第一节点id和第一分词集合的第一文本节点。

可选地,第一节点id可以是服务器随机生成的,也可以是根据预先定义的生成规则生成的,本申请中对此不加以限定。

过程同上,服务器根据第二文本生成第二文本节点;根据第三文本生成第三文本节点;其中,第二文本节点中包括第二分词集合和第二节点id,第三文本节点中包括第三分词集合和第三节点id。

步骤304,服务器生成第一文本节点、第二文本节点和第三文本节点的倒排索引。

参照上述对第一文本节点和第二文本节点倒排索引的过程,将第三文本节点加入至索引中,也就是将第三节点id存储至对应的键值下。

步骤305,服务器确定第一文本节点、第二文本节点和第三文本节点属于同一键值下。

服务器确定一个键值下包括第一节点id、第二节点id和第三节点id,则表示第一文本节点、第二文本节点和第三文本节点是属于同一键值下文本节点。

步骤306,服务器根据同一键值下的第一文本节点、第二文本节点和第三文本节点生成树状结构图。

服务器获取同一键值下的第一节点id、第二节点id和第三节点id;根据第一节点id获取第一分词集合,根据第二节点id获取第二分词集合,根据第三节点id获取第三分词集合。

服务器确定第一分词集合和第二分词集合的相似度为第一相似度;当第一相似度大于相似度阈值时,将第一文本节点和第二文本节点建立连接关系,生成第一树状结构图。

服务器分别确定同一键值下的第三分词集合与第一分词集合、第二分词集合的第二相似度;当第二相似度小于或者等于相似度阈值时,根据第三文本节点生成第二树状结构图。其中,第二树状结构图中的文本节点与第一树状结构图中的文本节点无交集。

服务器通过union-find算法将第一树状结构图和第二树状结构图合并,生成新的树状结构图;其中,第一树状结构图和第二树状结构图分别为新的树状结构图中的子图。

示意性的,将第一文本节点和第二文本节点建立连接,生成第一树状结构图,可以通过union-find算法实现,示意性的步骤如下,

服务器通过并查集union-find算法将第一文本节点连接至第二文本节点上,生成第一树状结构图,也就是说,服务器采用第一连接标识标记第一文本节点和第二文本节点的连接关系,生成第一树状结构图;其中,第一连接标识表示第一文本节点与第二文本节点相似。

服务器默认第一文本节点和第二文本节点的深度的初始值为i,在“采用第一连接标识标记第一文本节点和第二文本节点的连接关系,生成第一树状结构图”的过程中,首先,将第二文本节点确定为第一文本节点的父节点,则第二文本节点的深度仍然为i,第一文本节点的深度变为i+1;其次,将第一文本节点与父节点的连接关系采用第一连接标识记录在第一文本节点中;再次,上述第一文本节点和第二文本节点连接生成了第一树状结构图。

在第一树状结构图中,第二文本节点是第一文本节点的父节点,在第一文本节点与第二文本节点连接的过程中,第一文本节点中采用第一连接标识标记与父节点的连接关系,第一连接标识表示第一文本节点与父节点相似,即第一文本节点与第二文本节点相似;第一文本节点中还记录父节点的节点标识,用于确定第一文本节点与父节点之间存在连接。

在树状结构图中,当一个文本节点的父节点是其本身时,该文本节点是该树状结构图中的根节点。因此,服务器将第三文本节点确定为第二根节点,生成第二树状结构图。

再有,在union-find算法中两个文本节点之间还存在第二连接标识,第二连接标识表示子节点与父节点不相似。

服务器确定出第一树状结构图的第一根节点和第二树状结构图的第二根节点之后,采用第二连接标识标记第一根节点和第二根节点的连接关系,将第一树状结构图和第二树状结构图合并,生成新的树状结构图;

可选地,将第一树状结构图中的第一根节点确定为第二树状结构图中的第二根节点的父节点,通过连接第一根节点和第二根节点将第一树状结构图与第二树状结构图合并,生成新的树状结构图。服务器还将第一根节点确定为新的树状结构图的根节点,也就是将第二文本节点确定为新的树状结构图的根节点。

其中,第二根节点是第三文本节点,第三文本节点是第二文本节点的子节点,在第三文本节点中采用第二连接标识标记与父节点的连接关系,第二连接标识表示第三文本节点与父节点不相似,即第三文本节点与第二文本节点不相似;第三文本节点中还记录父节点的节点标识,用于确定第三文本节点与父节点之间存在连接。

服务器在生成新的树状结构图之后,同时生成新的深度关系,其中,第一文本节点的深度为仍i+1,第二文本节点的深度仍为i,第三文本节点的深度从i变为i+1,i为整数。

步骤307,服务器对上述树状结构图对应的文本进行去重处理。

服务器对第一树状结构图和第二树状结构图对应的文本进行处理,也就是遍历新的树状结构图中的每个文本节点,根据连接标识和节点标识确定出新的树状结构图中包含的树状结构子图,将每个树状结构子图中的根节点即为去重后的文本对应的文本节点。

可选地,文本节点中包括文本的文本内容、业务属性、发布时间、上下文信息等等信息,根据上述信息获得去重后的文本节点对应的文本。

示意性的,第一树状结构图和第二树状结构图是新的树状结构图的子图,通过union-find算法从新的树状结构图中确定出第一树状结构图和第二树状结构图,并通过对文本节点的遍历获得两个子图中的第一根节点和第二根节点,将第一根节点和第二根节点对应的文本确定为去重后的文本。

综上所述,本实施例提供的文本的处理方法,服务器通过根据终端发送的第一文本、第二文本和第三文本分别生成第一文本节点、第二文本节点和第三文本节点,其中,第一文本节点中包括第一分词集合,第二文本节点中包括第二分词集合,第三文本节点中包括第三分词集合;根据第一分词集合、第二分词集合以及第三分词集合的两两之间的相似度,生成新的树状结构图,新的树状结构图中包括两个子图,分别是第一树状结构图和第二树状结构图;遍历新的树状结构图中每个文本节点,获得去重后的文本。该方法通过将相似的文本之间建立连接关系,形成树状结构图;由于树状结构图中的文本节点均是相似文本的文本节点,所以从上述一个树状结构图中获取其中一个文本节点,摒弃其余的文本节点,则得到去重后的文本节点,进而得到去重后的文本。在上述树状结构图中,通过union-find算法遍历树状结构图中的文本节点,能够快速查找得到每一个子图的根节点,实现对大量文本的快速去重;同时,通过相似度阈值的设置,准确的确定出相似文本,保证了去重的准确性。

另外,每个子图中都是相似文本的聚合,所以,该方法还有效的实现了相似文本的聚合。相比于lda主题模型,该方法不需要手动设置主题,以及手动调整训练参数,即能够将相似的文本进行聚合。

还有,union-find算法将不相似的树状结构图结合在一起,对文本节点进行遍历,提高了对大量文本去重的速度的同时,降低了对多个树状结构图进行遍历的繁复程度。

示意性的,对图3示出的实施例进行解释说明,以三个文本为例,分别为:

文本1:主播你下次带我一起玩。

文本2:主播咱们一起玩可以吗?

文本3:咱们下次一起开黑。

如图4,分为以下六个步骤:

一、分词。

服务器将三个文本进行分词,将句子切割成词语的组合,并去除停用词、语气词、标点符号等等,保留句子的主要信息,形成分词集合。三个文本分词之后得到的分词集合分别为:

文本1:[“主播”、“下次”、“一起”、“玩”];

文本2:[“主播”、“咱们”、“一起”、“玩”];

文本3:[“咱们”、“下次”、“一起”、“开黑”]。

二、创建节点。

服务器将文本映射为文本节点。服务器生成文本的节点id;可选地,服务器还获取文本的业务属性;服务器根据文本节点的分词集合、节点id以及业务属性生成文本节点。

可选地,文本节点中还包括文本的文本内容、业务属性、发布时间、上下文信息等等信息。

如图5所示,是文本1、文本2和文本3对应的文本节点1、文本节点2和文本节点3;

其中,文本节点1中包括文本1的节点id“1”、分词“[“主播”、“下次”、“一起”、“玩”]”以及业务“业务1”;

文本节点2中包括文本2的节点id“2”、分词“[“主播”、“咱们”、“一起”、“玩”]”以及业务“业务2”;

文本节点3中包括文本3的节点id“3”、分词“[“咱们”、“下次”、“一起”、“开黑”]”以及业务“业务3”。

三、加入倒排索引。

服务器对文本节点1、文本节点2和文本节点3建立倒排索引,将文本id加入索引中。

服务器对文本1创建倒排索引,首先,将文本节点1中的词语作为键值,每个键值对应建立一个链表结构,该链表结构包括链表节点,链表节点用于存储节点id;其次,将节点id“1”存储在链表节点中。

如图6所示,键值“主播”、“下次”、“一起”以及“玩”下的链表节点中分别存储有节点id“1”。

服务器对文本2创建倒排索引,首先,确定键值“主播”、“一起”以及“玩”已经被创建,则“咱们”作为新的键值;其次,将节点id“2”存储在对应的链表节点中。

可选地,服务器在将节点id“2”存储在对应的链表节点中时,可以将节点id“2”存储在新的链表节点中,或者,将节点id“2”与节点id“1”共同存储在链表节点中。

可选地,在确定键值“主播”下的链表节点中存储有节点id“1”,服务器确定文本节点1的分词集合与文本节点2的分词集合之间的相似度,计算得到jaccard相似度为0.6;假设相似度阈值为0.5,则服务器判定文本节点1的分词集合与文本节点2的分词集合相似,将节点id“2”与节点id“1”共同存储在链表节点中。

如图7所示,此时,键值“主播”下的链表节点中存储有节点id“1”和节点id“2”;键值“下次”下的链表节点中存储有节点id“1”;键值“一起”下的链表节点中存储有节点id“1”和节点id“2”;键值“玩”下的链表节点中存储有节点id“1”和节点id“2”;键值“咱们”下的链表节点中存储有节点id“1”和节点id“2”。

服务器对文本3创建倒排索引,首先,确定键值“咱们”、“下次”、“一起”已经被创建,则“开黑”作为新的键值;其次,将节点id“3”存储在对应的链表节点中。

可选地,在确定键值“一起”下的链表节点中存储有节点id“1”和节点id“2”时,服务器遍历节点id“1”和节点id“2”对应的文本节点1和文本节点2,确定文本节点3与文本节点1的分词集合的相似度,以及确定文本节点3与文本节点2的分词集合之间的相似度,计算得到jaccard相似度均为0.33(取小数点后两位);假设相似度阈值为0.5,则服务器判定文本节点3的分词集合与文本节点1的分词集合、文本节点2的分词集合均不相似,将节点id“3”存储在新的链表节点中。

如图8所示,此时,键值“主播”下的链表节点中存储有节点id“1”、节点id“2”;键值“下次”下的链表节点中存储有节点id“1”和节点id“3”;键值“一起”下的链表节点中存储有节点id“1”、节点id“2”和节点id“3”;键值“玩”下的链表节点中存储有节点id“1”和节点id“2”;键值“咱们”下的链表节点中存储有节点id“2”和节点id“3”;键值“开黑”下的链表节点中存储有节点id“3”。

四、建立节点连接。

服务器判定文本节点1的分词集合与文本节点2的分词集合相似之后,在文本节点1和文本节点2之间建立连接,生成第一树状结构图,如图9所示;在服务器判定文本节点3的分词集合与文本节点1的分词集合不相似,以及确定文本节点3与文本节点2的分词集合之间不相似之后,将文本节点3确定为第二树状结构图,与文本节点1和文本节点2均不连接,如图10所示。

五、文本聚类。

服务器根据union-find算法将没有交集的上述第一树状结构图和上述第二树状结构图合并为一个新的树状结构图,进行文本节点的聚合,如图11所示,是新的树状结构图的示意图,其中,服务器在构建新的树状结构图将文本节点2确定为根节点,文本节点2还是新的树状结构图的子图“第一树状结构图”的根节点;文本节点3是新的树状结构图的子图“第二树状结构图”的根节点。

另外,图中,文本节点1与文本节点2的连接关系用实线表示,文本节点2与文本节点3的连接关系用虚线表示,以表示两者的连接关系不同。

六、输出结果。

服务器通过union-find算法遍历新的树状结构图中的文本节点,能够确定出两个不相交的子图,如图12所示,之后获得文本节点2和文本节点3对应的文本1和文本2,即为去重后的文本。

需要说明的是,服务器可以根据需要将去重后的文本输出存储至数据库中。

综上所述,本实施例提供的文本的处理方法,服务器对文本进行分词、创建节点、加入倒排索引、建立节点连接、文本聚类以及输出结果六个步骤完成了文本的去重。该方法通过将相似的文本之间建立连接关系,形成树状结构图;由于树状结构图中的文本节点均是相似文本的文本节点,所以从上述一个树状结构图中获取其中一个文本节点,摒弃其余的文本节点,则得到去重后的文本节点,进而得到去重后的文本。在上述树状结构图中,通过union-find算法遍历树状结构图中的文本节点,能够快速查找得到每一个子图的根节点,实现对大量文本的快速去重;同时,通过相似度阈值的设置,准确的确定出相似文本,保证了去重的准确性。

另外,每个子图中都是相似文本的聚合,所以,该方法还有效的实现了相似文本的聚合。相比于lda主题模型,该方法不需要手动设置主题,以及手动调整训练参数,即能够将相似的文本进行聚合。

还需要说明的是,上述步骤三和四的过程的算法伪代码可以如下所示:

初始状态:

文本集合t={t_1,t_2,…,t_n}

去重集合r={}

相似度阈值sim_th

输出结果:

去重结果r

算法过程:

请参考图13,是本申请示出的一个示例性实施例提供的文本的处理装置,该装置可以通过软件、硬件或者二者的结合实现服务器的一部分或者全部,该装置安装有应用程序,该装置包括:

接收模块401,用于接收终端发送的至少两个文本;至少两个文本中包括第一文本和第二文本;

第一生成模块402,用于根据第一文本生成第一文本节点,根据第二文本生成第二文本节点;第一文本节点中包括第一文本的第一分词集合,第二文本节点中包括第二文本的第二分词集合;

第一确定模块403,用于确定第一分词集合和第二分词集合的第一相似度;

连接模块404,用于当第一相似度大于相似度阈值时,将第一文本节点和第二文本节点建立连接关系,生成第一树状结构图;

去重模块405,用于对第一树状结构图中文本节点对应的文本进行去重处理。

在一些实施例中,连接模块404,用于采用第一连接标识标记第一文本节点和第二文本节点的连接关系,生成第一树状结构图;第一连接标识表示第一文本节点与第二文本节点相似。

在一些实施例中,第一文本节点和第二文本节点的深度为初始值i;

连接模块404,用于将第二文本节点确定为第一文本节点的父节点;将第一文本节点与父节点的连接关系采用第一连接标识记录在第一文本节点中;生成第一树状结构图;其中,第二文本节点的深度为i,第一文本节点的深度变为i+1,i为整数。

在一些实施例中,去重模块405,用于遍历第一树状结构图中的文本节点;将第一树状结构图中的第二文本节点确定为第一根节点;将第一根节点对应的文本确定为去重后的文本。

在一些实施例中,该装置还包括:

第二生成模块406,用于生成第一文本节点和第二文本节点的倒排索引,倒排索引中包括键值,键值是根据文本的分词生成的;

第二确定模块407,用于确定第一文本节点和第二文本节点属于同一键值下。

在一些实施例中,至少两个文本还包括第三文本;

该装置还包括:

第一生成模块402,用于根据第三文本生成第三文本节点,第三文本节点包括第三分词集合;

第二确定模块407,用于根据第三分词集合确定第三文本节点与第一文本节点和第二文本节点属于同一键值下;

第一确定模块403,用于分别确定同一键值下的第三分词集合与第一分词集合、第二分词集合的第二相似度;

连接模块404,用于当第二相似度小于或者等于相似度阈值时,根据第三文本节点生成第二树状结构图;第二树状结构图中的文本节点与第一树状结构图中的文本节点无交集;

去重模块405,用于对第一树状结构图和第二树状结构图对应的文本进行去重处理。

在一些实施例中,去重模块405,用于确定出第一树状结构图的第一根节点和第二树状结构图的第二根节点;采用第二连接标识标记第一根节点和第二根节点的连接关系,将第一树状结构图和第二树状结构图合并,生成新的树状结构图;第二连接标识表示第一根节点与第二根节点不相似;第一树状结构图和第二树状结构图分别为新的树状结构图中的子图;遍历新的树状结构图,得到每个子图中去重后的文本节点对应的文本。

在一些实施例中,第一生成模块402,用于生成第一文本的第一节点id;将第一文本的文本内容进行分词,得到第一分词集合;生成包括第一节点id和第一分词集合的第一文本节点。

在一些实施例中,第一文本节点包括第一节点id,第二文本节点包括第二节点id;

该装置还包括:

获取模块408,用于根据第一节点id获取第一分词集合;根据第二节点id获取第二分词集合。

综上所述,本实施例提供的文本的处理装置,通过根据终端发送的第一文本、第二文本和第三文本分别生成第一文本节点、第二文本节点和第三文本节点,其中,第一文本节点中包括第一分词集合,第二文本节点中包括第二分词集合,第三文本节点中包括第三分词集合;根据第一分词集合、第二分词集合以及第三分词集合的两两之间的相似度,生成新的树状结构图,新的树状结构图中包括两个子图,分别是第一树状结构图和第二树状结构图;遍历新的树状结构图中每个文本节点,获得去重后的文本。该装置通过将相似的文本之间建立连接关系,形成树状结构图;由于树状结构图中的文本节点均是相似文本的文本节点,所以从上述一个树状结构图中获取其中一个文本节点,摒弃其余的文本节点,则得到去重后的文本节点,进而得到去重后的文本。在上述树状结构图中,通过遍历的手段能够快速查找得到每一个子图的根节点,实现对大量文本的快速去重;同时,通过相似度阈值的设置,准确的确定出相似文本,保证了去重的准确性。

请参考图14,其示出了本申请一个示例性实施例提供的终端500的结构框图。该终端500可以是:智能手机、平板电脑、mp3播放器(movingpictureexpertsgroupaudiolayeriii,动态影像专家压缩标准音频层面3)、mp4(movingpictureexpertsgroupaudiolayeriv,动态影像专家压缩标准音频层面4)播放器、笔记本电脑或台式电脑。终端500还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。

通常,终端500包括有:处理器501和存储器502。

处理器501可以包括一个或多个处理核心,比如4核心处理器、5核心处理器等。处理器501可以采用dsp(digitalsignalprocessing,数字信号处理)、fpga(field-programmablegatearray,现场可编程门阵列)、pla(programmablelogicarray,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器501也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称cpu(centralprocessingunit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器501可以在集成有gpu(graphicsprocessingunit,图像处理器),gpu用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器501还可以包括ai(artificialintelligence,人工智能)处理器,该ai处理器用于处理有关机器学习的计算操作。

存储器502可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器502还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器502中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器501所执行以实现本申请中方法实施例提供的文本的处理方法。

在一些实施例中,终端500还可选包括有:外围设备接口503和至少一个外围设备。处理器501、存储器502和外围设备接口503之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口503相连。具体地,外围设备包括:射频电路504、显示屏505、音频电路506、定位组件507和电源508中的至少一种。

外围设备接口503可被用于将i/o(input/output,输入/输出)相关的至少一个外围设备连接到处理器501和存储器502。在一些实施例中,处理器501、存储器502和外围设备接口503被集成在同一芯片或电路板上;在一些其他实施例中,处理器501、存储器502和外围设备接口503中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。

射频电路504用于接收和发射rf(radiofrequency,射频)信号,也称电磁信号。射频电路504通过电磁信号与通信网络以及其他通信设备进行通信。射频电路504将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路504包括:天线系统、rf收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路504可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:城域网、各代移动通信网络(2g、3g、4g及5g)、无线局域网和/或wifi(wirelessfidelity,无线保真)网络。在一些实施例中,射频电路504还可以包括nfc(nearfieldcommunication,近距离无线通信)有关的电路,本申请对此不加以限定。

显示屏505用于显示ui(userinterface,用户界面)。该ui可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏505是触摸显示屏时,显示屏505还具有采集在显示屏505的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器501进行处理。此时,显示屏505还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏505可以为一个,设置终端500的前面板;在另一些实施例中,显示屏505可以为至少两个,分别设置在终端500的不同表面或呈折叠设计;在再一些实施例中,显示屏505可以是柔性显示屏,设置在终端500的弯曲表面上或折叠面上。甚至,显示屏505还可以设置成非矩形的不规则图形,也即异形屏。显示屏505可以采用lcd(liquidcrystaldisplay,液晶显示屏)、oled(organiclight-emittingdiode,有机发光二极管)等材质制备。

音频电路506可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器501进行处理,或者输入至射频电路504以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端500的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器501或射频电路504的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路506还可以包括耳机插孔。

定位组件507用于定位终端500的当前地理位置,以实现导航或lbs(locationbasedservice,基于位置的服务)。定位组件507可以是基于美国的gps(globalpositioningsystem,全球定位系统)、中国的北斗系统、俄罗斯的格雷纳斯系统或欧盟的伽利略系统的定位组件。

电源508用于为终端500中的各个组件进行供电。电源508可以是交流电、直流电、一次性电池或可充电电池。当电源508包括可充电电池时,该可充电电池可以支持有线充电或无线充电。该可充电电池还可以用于支持快充技术。

本领域技术人员可以理解,图14中示出的结构并不构成对终端500的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。

图15示出了本申请一个实施例提供的服务器的结构示意图。该服务器用于实施上述实施例中提供的文本的处理方法。具体来讲:

所述服务器600包括中央处理单元(cpu)601、包括随机存取存储器(ram)602和只读存储器(rom)603的系统存储器604,以及连接系统存储器604和中央处理单元601的系统总线605。所述服务器600还包括帮助计算机内的各个器件之间传输信息的基本输入/输出系统(i/o系统)606,和用于存储操作系统613、应用程序614和其他程序模块615的大容量存储设备607。

所述基本输入/输出系统606包括有用于显示信息的显示器608和用于用户输入信息的诸如鼠标、键盘之类的输入设备609。其中所述显示器608和输入设备609都通过连接到系统总线605的输入输出控制器610连接到中央处理单元601。所述基本输入/输出系统606还可以包括输入输出控制器610以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器610还提供输出到显示屏、打印机或其他类型的输出设备。

所述大容量存储设备607通过连接到系统总线605的大容量存储控制器(未示出)连接到中央处理单元601。所述大容量存储设备607及其相关联的计算机可读介质为服务器600提供非易失性存储。也就是说,所述大容量存储设备607可以包括诸如硬盘或者cd-rom驱动器之类的计算机可读介质(未示出)。

不失一般性,所述计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括ram、rom、eprom、eeprom、闪存或其他固态存储其技术,cd-rom、dvd或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知所述计算机存储介质不局限于上述几种。上述的系统存储器604和大容量存储设备607可以统称为存储器。

根据本申请的各种实施例,所述服务器600还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即服务器600可以通过连接在所述系统总线605上的网络接口单元611连接到网络612,或者说,也可以使用网络接口单元611来连接到其他类型的网络或远程计算机系统(未示出)。

上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

以上所述仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1