标签抽取方法、装置、设备及存储介质
技术领域
本申请涉及计算机
技术领域
,尤其涉及一种标签抽取方法、装置、设备及存储介质。背景技术
标签是一种用来描述业务实体特征的数据形式。通过标签可以有效扩充业务实体的分析角度,且通过对不同标签的简单操作,便可进行数据筛选和分析。
在大数据时代,通过将用户需求、用户观点等进行标签化,可以实现精准化数据运营。
发明内容
本申请实施例的目的在于提供一种标签抽取方法、装置、设备及存储介质,以实现抽取更为准确的标签。具体技术方案如下:
本申请提供一种标签抽取方法,所述方法包括:
针对每一待抽取的目标文本,对所述目标文本进行预处理,得到多个词语,以及对多个所述词语进行组合,得到多个词语组合;
针对每一所述目标文本,基于所述目标文本对应的多个所述词语、多个所述词语组合确定所述目标文本的文本向量;
基于各所述目标文本的文本向量,对多个所述目标文本进行聚类,得到多个类簇;
针对每一所述类簇,从所述类簇包含的至少一个所述目标文本中抽取目标标签。
本申请提供另一种标签抽取方法,所述方法应用于用户标签抽取场景,包括:
获取所述用户与预设对象之间的对话文本;
将所述对话文本中,由所述用户发送给所述预设对象的对话文本确定为待抽取的目标文本;
针对每一待抽取的目标文本,对所述目标文本进行预处理,得到多个词语,以及对多个所述词语进行组合,得到多个词语组合;
针对每一所述目标文本,基于所述目标文本对应的多个所述词语、多个所述词语组合确定所述目标文本的文本向量;
基于各所述目标文本的文本向量,对多个所述目标文本进行聚类,得到多个类簇;
针对每一所述类簇,从所述类簇包含的至少一个所述目标文本中抽取所述用户的目标标签。
本申请提供一种标签抽取装置,所述装置包括:
分词模块,用于针对每一待抽取的目标文本,对所述目标文本进行预处理,得到多个词语;
组合模块,用于对多个所述词语进行组合,得到多个词语组合;
向量化模块,用于针对每一所述目标文本,基于所述目标文本对应的多个所述词语、多个所述词语组合确定所述目标文本的文本向量;
聚类模块,用于基于各所述目标文本的所述文本向量,对多个所述目标文本进行聚类,得到多个类簇;
标签抽取模块,用于针对每一所述类簇,从所述类簇包含的至少一个所述目标文本中抽取目标标签。
本申请提供另一种标签抽取装置,所述装置应用于用户标签抽取场景,包括:
获取模块,用于获取所述用户与预设对象之间的对话文本;
目标确定模块,用于将所述对话文本中,由所述用户发送给所述预设对象的对话文本确定为待抽取的目标文本;
分词模块,用于针对每一待抽取的目标文本,对所述目标文本进行预处理,得到多个词语;
组合模块,用于按照设定的词语组合方式对多个所述词语进行组合,得到多个词语组合;
向量化模块,用于针对每一所述目标文本,基于所述目标文本对应的多个所述词语、多个所述词语组合确定所述目标文本的文本向量;
聚类模块,用于基于各所述目标文本的文本向量,对多个所述目标文本进行聚类,得到多个类簇;
标签抽取模块,用于针对每一所述类簇,从所述类簇包含的至少一个所述目标文本中抽取所述用户的目标标签。
本申请提供了一种设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述各种可选实现方式中提供的方法。
本申请提供一种存储介质,所述存储介质中存储有计算机指令,当其在计算机上运行时,使得计算机执行上述各种可选实现方式中提供的方法。
本申请提供一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。电子设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该电子设备执行上述各种可选实现方式中提供的方法。
本申请实施例提供的技术方案,通过针对每一待抽取的目标文本,对目标文本进行预处理,得到多个词语,以及对多个词语进行组合,得到多个词语组合,针对每一目标文本,基于目标文本对应的多个词语、多个词语组合确定目标文本的文本向量,基于各目标文本的文本向量,对多个目标文本进行聚类,得到多个类簇,针对每一类簇,从类簇包含的至少一个目标文本中抽取目标标签,由于在得到多个词语之后,再对多个词语进行组合,所得到的多个词语组合能够更为完整地表征出目标文本的语义,因此,基于多个词语以及词语组合确定目标文本对应的文本向量,进而根据文本向量对多个目标文本进行聚类,可以实现更为精准地将语义相近的目标文本划分到同一类簇中,最终,从每一类簇中抽取出的目标标签也就更为准确。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种标签抽取方法的整体流程图;
图2为本申请实施例提供的一种标签抽取方法的实施例流程图;
图3为本申请实施例提供的一种确定目标文本的文本向量的实施例流程图;
图4为本申请实施例提供的另一种标签抽取方法的实施例流程图;
图5为不同用户需求标签占比的示例图;
图6为需要重点关注的热门问题的示例图;
图7为本申请实施例提供的一种标签抽取装置的实施例框图;
图8为本申请实施例提供的另一种标签抽取装置的实施例框图;
图9为本申请实施例提供的一种设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
参见图1,为本申请实施例提供的一种标签抽取方法的整体流程图。如图1所示,本申请实施例提供的标签抽取方法主要包含五个过程:文本预处理、构建多元词组表征文本、文本向量化、文本聚类、标签抽取。进一步的,在抽取得到标签后,还可构建标签对应的词包,并对词包进行扩展。下面将结合附图以具体实施例对图1所示例的整体流程做进一步的解释说明,实施例并不构成对本申请实施例的限定。
参见图2,为本申请实施例提供的一种标签抽取方法的实施例流程图。如图1所示,该方法可包括以下步骤:
步骤201、针对每一待抽取的目标文本,对目标文本进行预处理,得到多个词语,以及对多个词语进行组合,得到多个词语组合。
上述预处理过程可包括清洗、分词、去停用词等。
具体的,作为一个实施例,在获取到待抽取的目标文本后,可首先对待抽取的目标文本进行清洗,以清洗掉目标文本中的脏数据(例如错误、不完整、格式有误、多余的数据等),然后,基于符合当下场景的专业名词库,利用一元语法模型Uni-Gram对清洗后的目标文本进行分词处理,得到多个初始词语,最后,删除多个初始词语中的停用词,得到多个词语。
作为另一个实施例,在对目标文本进行清洗之后,对清洗后的目标文本进行分词之前,还可基于预设的话术库,删除目标文本中,存在于预设话术库中的话术(以下称目标话术),然后,再基于符合当下场景的专业名词库,利用一元语法模型Uni-Gram对已删除目标话术的目标文本进行分词处理。通过该种处理,可以去除目标文本中,不属于脏数据,但可能对后续的标签抽取结果产生影响的文本内容,从而提高最终标签抽取结果的准确性。至于上述话术库的具体实现,在下文中结合具体的应用场景进行示例性说明,这里先不做详述。
本申请实施例中,为了丰富目标文本的语义表征,在得到多个词语之后,进一步地按照设定的词语组合方式对上述得到的多个词语进行组合,得到多个词语组合,也即构建多元词组。
具体地,可按照多个词语在目标文本中的排列顺序,依次针对每一词语,将该词语与位于该词语之后的N个词语进行组合,得到多个词语组合,这里,N为小于M的正整数,M为删除停用词之后,所得到的词语的总数目与1之间的差值。
举例来说,假设对目标文本进行分词处理,得到A、B、C、D四个词语,也即,M为3,那么,N可取值1或者2,按照上述描述,当N取值为1时,可得到以下词语组合:AB、BC、CD,当N取值为2时,可得到以下词语组合ABC、BCD。
此外,本申请实施例中,为了避免增加上述词语组合后,导致后续在对目标文本进行向量化过程中字典词表过大,同时导致VSM(Vector Space Model,向量空间模型)语义空间过于稀疏,本申请实施例提出,在执行步骤102之前,先对上述步骤101得到的多个词语组合进行筛选过滤,在步骤102中,则基于目标文本对应的多个词语以及筛选过滤后的多个词语组合,确定目标文本对应的文本向量。
作为一个实施例,可通过以下方式实现对上述步骤101得到的多个词语组合进行筛选过滤:确定每一词语组合在其所属维度的所有词语组合中的出现次数,删除出现次数小于设定次数阈值的词语组合。这里,采用相同的N值组合得到的多个词语组合属于相同维度,采用不同的N值组合得到的多个词语组合属于不同维度,也可以说,包含相同数目的词语的多个词语组合属于相同维度,包含不同数目的词语的多个词语组合属于不同维度。例如,上述词语组合AB、BC、CD属于同一维度,词语组合ABC、BCD属于同一维度。
可选的,不同维度对应的设定次数阈值可以不同,例如,对于包含2个词语的词语组合所属维度,上述设定次数阈值为10,对于包含3个词语的词语组合所属维度,上述设定次数阈值为3。
步骤202、针对每一目标文本,基于目标文本对应的多个词语、多个词语组合确定目标文本的文本向量。
本申请实施例中,可通过图3所示流程实现确定目标文本的文本向量。如图3所示,包括以下步骤:
步骤301、确定目标文本对应的多个词语、多个词语组合各自的词频值和逆文本频率值。
TF-IDF是一种统计方法,用以评估词语的重要程度,其中,TF指词频(TermFrequency),IDF指逆文本频率指数(Inverse Document Frequency)。词语的重要程度随着它在文本中出现次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降,也即,TF-IDF的主要思想是:如果某个词在一个文本中出现的频率高,并且在其他文本中很少出现,则认为该词具有很好的类别区分能力,适合用来分类。
其中,某一词语的IDF值,可以由总文本数目除以包含该词语的文本数目,再将得到的商取以10为底的对数得到。将某一词语的TF值和IDF值相乘,即可得到该词语的TF-IDF值,进而确定目标文本对应的各个词语、词语组合对应的TF-IDF值。
步骤302、将目标文本对应的多个词语、多个词语组合分别输入至已训练的权重预测模型,得到各词语、各词语组合各自对应的权重值。
这里,权重值表征词语/词语组合的重要程度。
本申请实施例中,可预先通过对大量样本数据进行训练,得到权重预测模型。这里,样本数据包括:词语/词语组合和权重值的对应关系,权重值为基于专家经验设置的预设值。训练好的权重预测模型则以词语或词语组合为输入,以输入的词语或词语组合对应的权重值为输出,也即,训练好的权重预测模型可用于预测能够表征词语或词语组合重要程度的权重值。基于此,在本步骤302中,可将目标文本对应的多个词语、多个词语组合分别输入至已训练的权重预测模型,得到各词语、各词语组合各自对应的权重值。
步骤303、将词语、词语组合分别对应的词频值、逆文本频率值、权重值进行设定运算,得到每一词语、词语组合对应的运算结果。
作为一个实施例,上述设定运算为相乘运算,也即,将词语、词语组合对应的词频值、逆文本频率值(也即TF-IDF值)、权重值进行相乘,得到每一词语、词语组合对应的运算结果。
步骤304、基于目标文本对应的各词语、词语组合对应的运算结果确定目标文本的文本向量。
本申请实施例中,将上述进行设定运算得到的运算结果确定为最终的TF-IDF值,基于最终的TF-IDF值对目标文本进行向量化,得到目标文本的文本向量。具体的,将目标文本对应的各词语、词语组合分别量化成一个由TF-IDF值表示的小数,然后,按照各词语、词语组合在目标文本中的排列顺序,将对各词语、词语组合所量化得到的小数进行排列组合,得到目标文本的文本向量。由此可见,基于TF-IDF值对目标文本进行向量化,可以实现文本向量中保留每个词语、词语组合在目标文本中的权重信息,这就相当于保留了目标文本的信息。
进一步的,由上述描述可知,在对目标文本进行向量化时,由词语/词语组合对应的权重值和TF-IDF值共同决定词语/词语组合的重要程度,这能够有效降低高频无效词的影响,提升重要词语的影响。这里,高频无效词例如可以是:连词、语气词、指示代词等;重要词语可以是与业务场景相关的名词、动词等。
步骤203、基于各目标文本的文本向量,对多个目标文本进行聚类,得到多个类簇。
首先说明的是,在利用聚类算法对聚类对象(本申请实施例中指目标文本)进行聚类之后,有可能存在一些聚类对象未被划分到任一已得到的类簇中,这时,可将这些未被划分到任一已得到的类簇中的聚类对象划分为一类,称为杂项簇。由此可见,在聚类得到的多个类簇中,可能存在杂项簇。
进一步的,采用单一轮次的聚类方式,往往会出现一个类簇中数据量远大于杂项簇中数据量的现象,在该种现象下,一方面由于该类簇中数据量较大,因此难以总结出类簇主题,另一方面,如果杂项簇中数据量占总数据量的占比较大,则会有大量数据无法归纳出有效标签,同时出现归纳出的标签覆盖率较低的问题。
基于此,本申请实施例提出采用多轮聚类方式,对多个目标文本进行聚类。其中,在每一轮聚类中,可采用相同的聚类算法,也可采用不同的聚类算法,本申请实施例对此不做限制。这里,设定的聚类算法例如可以是:K-Means算法、DBSCAN(Density-Based SpatialClustering of Applications with Noise,基于密度的聚类算法)等。
具体地,作为一个实施例,在首轮聚类过程中,基于各目标文本对应的文本向量,并按照设定的聚类算法,对多个目标文本进行聚类,得到多个类簇,然后,确定当前的多个类簇中的杂项簇,也即由未被划分到利用聚类算法进行聚类所得到的任一类簇中的多个目标文本组成的类簇,确定杂项簇中目标文本的数量是否满足设定条件,这里,设定条件可以是:杂项簇中目标文本的数量不超过设定的数量阈值,或者杂项簇中目标文本的数量占目标文本总数量的比例不超过设定比例阈值(例如25%)。
进一步地,若确定杂项簇中目标文本的数量不满足上述设定条件,则意味着杂项簇中数据量占总数据量的占比较大,此时,为减小杂项簇中数据量占总数据量的占比,继续对当前的杂项簇进行聚类,也即,基于当前的杂项簇中目标文本对应的文本向量,并按照设定的聚类算法,对当前的杂项簇中的目标文本进行聚类,得到多个类簇。之后,返回执行确定杂项簇的步骤,直至确定杂项簇中目标文本的数量满足上述设定条件。
举例来说,假设在首轮聚类过程中,对多个目标文本进行聚类,得到甲、乙、丙、丁四个类簇,并假设其中丁为杂项簇,那么按照上述描述,若杂项簇中,目标文本的数量不满足设定条件,则继续对杂项簇中的目标文本进行聚类,假设得到戊、己、庚三个类簇,并假设其中的庚为杂项簇,若杂项簇庚中,目标文本的数量满足设定条件,那么按照上述描述将停止聚类,此时,最终得到的类簇为:甲、乙、丙、戊、己、庚共6个类簇。
通过上述实施例,能够尽可能地减少杂项簇中数据量占总数据量的占比,从而能够避免存在大量数据无法归纳出有效标签情况的发生,提高归纳出的标签覆盖率。
作为另一个实施例,可预先设置聚类轮数,在首轮聚类过程中,基于各目标文本对应的文本向量,并按照设定的聚类算法,对多个目标文本进行聚类,得到多个类簇,在之后的每一轮聚类过程中,则针对当前的每一类簇,基于该类簇中各目标文本对应的文本向量,并按照设定的聚类算法,对该类簇中的多个目标文本再次进行聚类,得到多个类簇,直至聚类轮数达到上述预先设置的聚类轮数。
通过上述实施例,采用多轮聚类方式对多个目标文本进行聚类,且使用迭代式多轮次聚类的方式能够将最终的聚类杂项占比压缩至比例阈值以下(例如25%以下),相较于采用单一轮次的聚类方式对多个目标文本进行聚类而言,可以得到更多的类簇,这一方面能够实现对目标文本进行更为细致地聚类划分,进而能够使得后续基于每一类簇抽取出的标签更为细化、完善,另一方面还能够实现从多个目标文本中逐步剥离出相对小众、数量较少,但也能够表征对象特征的类簇。这里,对象可以指用户。
步骤204、针对每一类簇,从类簇包含的至少一个目标文本中抽取目标标签。
作为一个实施例,可从类簇包含的至少一个目标文本中确定一个核心关键词,将该核心关键词作为该类簇对应的目标标签。
作为一个可选的实现方式,可针对每一类簇,确定该类簇的类簇中心,从类簇中心的文本向量对应的目标文本中确定关键词(也可称主题词)。由于类簇中心对于类簇而言更具代表意义,因此,从类簇中心的文本向量对应的目标文本中确定的关键词,相较于从类簇对应的所有目标文本中确定的关键词而言,也更具代表意义,因此,可将从类簇中心的文本向量对应的目标文本中确定的关键词作为核心关键词。
作为另一个可选的实现方式,可通过TF-IDF方法、主题模型、RAKE算法等,从类簇包含的目标文本中确定多个关键词,然后,从该多个关键词中确定一个核心关键词。例如,将对应的TF-IDF值最高的关键词作为核心关键词,再例如,将对应的RAKE得分最高的关键词作为核心关键词。
需要说明的是,在应用上述提及的方法,从目标文本中确定关键词之前,均涉及对目标文本进行分词处理,将得到的多个分词作为候选关键词,再从候选关键词中选择最终的关键词。在此基础上,本申请实施例提出,在对目标文本进行分词处理之后,按照上述步骤201中描述的词语组合方式对分词得到的多个词语进行组合,得到多个词语组合,然后将分词得到的多个词语,以及经过词语组合得到的多个词语组合作为候选关键词。通过该种处理,最终得到的核心关键词可能是一个词语或者一个词语组合,可以理解的是,词语组合相较于词语而言,能够更完整地表达出语义,从而,最终抽取的目标标签具有明显、完整的语义。
此外,在通过TF-IDF方法确定关键词时,可首先对目标文本进行词性标注,依存句法分析等操作,其中,词性标注是指为目标文本中的每一词语标注一个正确的词性,也即确定每一词语是名词、动词、形容词或其他词性,依存句法分析是指对目标文本进行分析以得到目标文本的句法结构,也即确定目标文本是主谓宾、主谓动补、从属关系或其他句法结构,然后,利用专家规则,并基于词性标注结果、依存句法分析结果从目标文本包含的所有词语中选择出比较重要的词语,最后,针对用户选择出的比较重要的词语,应用TF-IDF方法确定关键词。例如,专家规则表征代词、连词、语气词等词语为无效词,则可将目标文本中除无效词以外的其他词语选择为比较重要的词语。再例如,专家规则表征与业务场景相关的重要词语一般是名词或动词,则可将目标文本中的名词或动词选择为比较重要的词语。
此外,本申请实施例还提出:针对每一类簇,将从该类簇包含的目标文本中确定出的关键词(除核心关键词)归入该类簇对应的目标标签的词包中。进一步地,为了提高词包在全量数据集上面的覆盖率,本申请实施例还提出对通过上述方式构建的词包进行扩展:从预设的词库中查找与关键词相匹配的词语,将查找到的,与关键词相匹配的词语归入该关键词所属的词包中。这里,相匹配可以指:两者各自对应的词向量之间的相似度大于或等于设定的相似度阈值,其中,相似度可通过余弦距离、欧式距离等表征。
在实践中,可通过词包对待打标的文本进行打标。例如,若文本中包含词包中的Q个词,则将该词包对应的标签分配给该文本,这里,Q为大于0的自然数,具体值可由用户根据实际需求进行设置。可以理解的是,Q值越大,最终的打标结果越为准确。
在一示例性应用场景中,可将用户输入的历史文本作为待打标文本,对用户输入的历史文本进行打标,相当于根据用户输入的历史文本,标注用户需求,进而则可以根据打标结果分析出不同用户需求的占比,或者分析出热点需求。
本申请实施例提供的技术方案,通过针对每一待抽取的目标文本,对目标文本进行预处理,得到多个词语,以及按照设定的词语组合方式对多个词语进行组合,得到多个词语组合,针对每一目标文本,基于目标文本对应的多个词语、多个词语组合确定目标文本的文本向量,基于各目标文本的文本向量,对多个目标文本进行聚类,得到多个类簇,针对每一类簇,从类簇包含的至少一个目标文本中抽取目标标签,由于在得到多个词语之后,再对多个词语进行组合,所得到的多个词语组合能够更为完整地表征出目标文本的语义,因此,基于多个词语以及词语组合确定目标文本对应的文本向量,进而根据文本向量对多个目标文本进行聚类,可以实现更精准地将语义相近的目标文本划分到同一类簇中,最终,从每一类簇中抽取出的目标标签也就更为准确。
为便于理解本申请实施例提供的标签抽取方法,下面结合具体的应用场景,对本申请实施例提供的标签抽取方法做进一步的解释说明。
参见图4,为本申请实施例提供的另一种标签抽取方法的实施例流程图。作为一个实施例,该方法可应用于预设行业标签体系构建场景,这里,预设行业例如可以是保险行业、金融行业等,如图4所示,该方法可包括以下步骤:
步骤401、获取用户与预设对象之间的对话文本。
这里,预设对象指上述预设行业中,向用户提供服务的对象。对象可是服务人员,也可以是自动问答系统,本申请实施例对此不做限制,服务例如可以是:业务办理服务、售后服务、咨询服务等。
这里,对话文本是指用户与预设对象在设定历史时间段内(例如最近3天内、最近一周内、最近一个月内、最近半年内)的对话文本,该对话文本至少包括用户发送给预设对象的文本信息,以及预设对象发送给目标用户的文本信息。其中,预设对象发送给用户的文本信息包括预设对象自主发送的文本信息,以及内置自动应答系统发送的文本信息。设定历史时间段可以是预设的固定值,也可由用户(例如运营人员)根据实际需求自行设置,本申请实施例对此不做限制。
步骤402、将对话文本中,由用户发送给预设对象的对话文本确定为待抽取的目标文本。
作为一个实施例,本申请技术方案可应用于预设行业中,用户需求标签的构建场景,这里,用户需求标签是指能够表征出用户需求的标签,而用户需求通常能够通过用户发送给预设对象的对话文本表现出来,基于此,本步骤402中,将步骤401获取到的对话文本中,由用户发送给预设对象的对话文本确定为待抽取的目标文本。
步骤403、针对每一待抽取的目标文本,对目标文本进行预处理,得到多个词语,以及对多个词语进行组合,得到多个词语组合。
上述预处理过程可包括清洗、分词、去停用词等。
具体的,作为一个实施例,可首先对待抽取的目标文本进行清洗,以清洗掉目标文本中的脏数据(例如错误、不完整、格式有误、多余的数据等),然后,基于符合当下场景的专业名词库,利用一元语法模型Uni-Gram对清洗后的目标文本进行分词处理,得到多个初始词语,最后,删除多个初始词语中的停用词,得到多个词语。
作为另一个实施例,在对清洗后的目标文本进行分词处理之前,可基于预设的问候语话术库删除目标文本中的问候语,例如您好、谢谢、不好意思等。之后,再基于符合当下场景的专业名词库,利用一元语法模型Uni-Gram对已删除问候语的目标文本进行分词处理,得到多个初始词语,最后,删除多个初始词语中的停用词,得到多个词语。
以下再对词语组合进行举例说明:假设目标文本为:住院是否能报销?那么按照上述步骤201中的相关描述,对目标文本进行预处理得到多个词语,可包括住院、报销,之后,将住院和报销这两个词语进行组合,得到住院报销这一词语组合(为二元词组)。可以理解的是,相比于住院、报销两个词语,住院报销这一词语组合能够较为完整地表征目标文本的语义信息,这能够提高后续对目标文本进行聚类所得到聚类结果的精准度。
再举例来说,假设目标文本为:住院门诊能报销吗?那么按照上述步骤201中的相关描述,对目标文本进行预处理得到多个词语,可包括住院、门诊、报销,之后,将住院和门诊这两个词语进行组合,得到住院门诊这一词语组合(为二元词组),将门诊和报销这两个词语进行组合,得到门诊报销这一词语组合(为二元词组),将住院、门诊、报销这三个词语进行组合,得到住院门诊报销这一词语组合(为三元词组)。可以理解的是,相比于住院、门诊、报销三个词语,住院门诊、门诊报销、住院门诊报销这三个词语组合都能够较为完整地表征目标文本的语义信息,这能够提高后续对目标文本进行聚类所得到聚类结果的精准度。
进一步地,为了避免增加上述二元词组与三元词组后,导致后续在对目标文本进行向量化过程中的字典词表过大,同时导致VSM语义空间过于稀疏,本申请实施例提出,使用设定次数阈值对得到的二元词组与三元词组进行筛选,具体的,确定每一个二元词组在所有二元词组中的出现次数,以及确定每一个三元词组在所有三元词组中的出现次数,删除出现次数小于设定次数阈值的词语组合,也即,保留多次出现且可能包含业务语义信息的多元词组。
步骤404、针对每一目标文本,基于目标文本对应的多个词语、多个词语组合确定目标文本的文本向量。
上述描述中,使用词语、词语组合的TF-IDF值,以及用于表征词语、词组组合重要程度的权重值一起决定词语或者词语组合的重要程度,进而根据重要程度确定目标文本的文本向量。
步骤405、基于各目标文本的文本向量,对多个目标文本进行聚类,得到多个类簇。
步骤406、针对每一类簇,从类簇包含的至少一个目标文本中抽取用户的目标标签。
具体地,对于目标文本聚类,可采用K-Means算法,K-Means算法的实现采取sklearn函数接口,聚类的簇数(k值)根据SSE下降速度最快的数值选择。在首次聚类完成后,为了对有具体主题指向的聚类簇进行进一步的细分挖掘该主题的更多二级标签,同时对占比较大的聚类杂项进行进一步的细分挖掘,继续对一次聚类的结果中的杂项簇进行二次聚类,具体的参数选择与一次聚类的选择方式相同。通过对杂项簇进行自动迭代聚类,即对上一次聚类的杂项进行再次聚类,直到杂项簇与全量数据的占比小于预先设定的阈值(例如25%),一方面使得得到的聚类簇与之前全量数据二次聚类的结果存在相近与补充的关系;另一方面在聚类的过程中可以逐步剥离出相对小众、数量较少(例如20~30条),但同时也反映了部分用户群体声音的聚类簇。
由此可见,本申请通过第一次聚类可以得到一个相对模糊的标签分布,而第二次聚类是对第一次聚类结果的细化,它能够对第一次聚类得到的每一类簇簇独立地进行聚类,借以分析每一个模糊标签下面存在哪些细化的标签。
综上,本申请可对目标文本进行二次聚类得到一个二级标签体系,且第二次聚类是对第一次聚类结果的细化与丰富。与此同时,在二次聚类构建二级标签体系之外,还能够对二次聚类中得到的一簇数量多内容杂的文本聚类杂项进行多轮迭代聚类,不断地从中剥离出相对小众的新声音,以及与二级标签中的既有声音进行归并。
进一步的,多轮迭代聚类会一直对聚类过程中的杂项簇进行聚类,直到最终得到的杂项规模下降置全量数据集规模的25%。这样,一方面提高了数据覆盖率,另一方面,通过多轮迭代聚类也能实现不断细化完善二级标签体系。
此外,本申请实施例提出,在采用多轮迭代聚类方式,对多个目标文本进行聚类,得到多个类簇之后,还可进一步将聚类中心相近的聚类簇进行融合。具体的,作为一个可选的实现方式,可首先确定前述各类簇的聚类中心文本(即类簇中心的文本向量对应的文本),然后计算各类簇的聚类中心文本之间的相似度,如果两个类簇的聚类中心文本之间的相似度大于设定的相似度阈值,则可将该两个类簇合并为同一类簇。
在此基础上,如果存在一些类簇,其聚类中心文本与其他类簇的聚类中心文本之间的相似度均小于设定的相似度阈值,那么,后续从这些类簇中包含的至少一个目标文本中抽取用户的目标标签,则意味着发现了全新的、小众用户的声音。
上述步骤404~406的其他详细描述可以参见图2所示流程中的相关描述,这里不再赘述。
进一步地,由上述步骤403中的描述可知,本申请实施例抽取的目标标签能够表征用户的需求,因此,通过将目标标签分配给用户发送的对话文本,可以实现为用户分配能够表征用户需求的标签。这在应用中,可以实现根据多个用户对应的目标标签分析出不同用户需求的占比,也即,分析出不同目标标签各自在所有用户对应的目标标签中的占比,还可以根据多个用户对应的目标标签分析出需要重点关注的热门问题(也即用户需求),例如,按照出现次数从高到低的顺序对多个目标标签进行排序,将排在前几位的目标标签所表征出的用户需求,确定为需要重点关注的热门问题。参见图5,为不同用户需求标签占比的示例图,参见图6,为需要重点关注的热门问题的示例图。
与前述标签抽取方法的实施例相对应,本申请还提供标签抽取装置的实施例。
参见图7,为本申请实施例提供的一种标签抽取装置的实施例框图,该装置包括:预处理模块71、组合模块72、向量化模块73、聚类模块74,以及标签抽取模块75。
其中,预处理模块71,用于针对每一待抽取的目标文本,对所述目标文本进行预处理,得到多个词语;
组合模块72,用于对多个所述词语进行组合,得到多个词语组合;
向量化模块73,用于针对每一所述目标文本,基于所述目标文本对应的多个所述词语、多个所述词语组合确定所述目标文本的文本向量;
聚类模块74,用于基于各所述目标文本的文本向量,对多个所述目标文本进行聚类,得到多个类簇;
标签抽取模块75,用于针对每一所述类簇,从所述类簇包含的至少一个所述目标文本中抽取目标标签。
在一可能的实施方式中,所述预处理模块71包括(图中未示出):
清洗子模块,用于针对每一待抽取的目标文本,删除所述目标文本中,存在于预设话术库中的目标话术;
分词子模块,用于对已删除所述目标话术的目标文本进行分词处理,得到多个初始词语;
删除子模块,用于删除多个所述初始词语中的停用词,得到多个词语。
在一可能的实施方式中,所述组合模块72具体用于:
按照多个所述词语在所述目标文本中的排列顺序,依次针对每一所述词语,将所述词语与其之后的N个词语进行组合,得到多个词语组合,所述N为小于M的正整数,所述M为多个所述词语的总数目与1的差值。
在一可能的实施方式中,所述装置还包括(图中未示出):
过滤模块,用于确定每一所述词语组合在所属维度的所有词语组合中的出现次数,删除出现次数小于设定次数阈值的词语组合,其中,采用相同的N值组合得到的多个词语组合属于相同维度,采用不同的N值组合得到的多个词语组合属于不同维度。
在一可能的实施方式中,所述向量化模块73,具体用于:
确定所述目标文本对应的多个所述词语、多个所述词语组合各自的词频值和逆文本频率值;将所述目标文本对应的多个所述词语、多个所述词语组合分别输入至已训练的权重预测模型,得到各所述词语、各所述词语组合各自对应的权重值;将所述词语、所述词语组合分别对应的所述词频值、所述逆文本频率值、所述权重值进行设定运算,得到每一所述词语、所述词语组合对应的运算结果;基于所述目标文本对应的各所述词语、所述词语组合对应的运算结果,确定所述目标文本的文本向量。
在一可能的实施方式中,所述聚类模块74具体用于:
基于各所述目标文本对应的所述文本向量,对多个所述目标文本进行聚类,得到多个类簇;确定当前的多个所述类簇中的杂项簇;确定所述杂项簇中所述目标文本的数量是否满足设定条件;若否,则基于所述杂项簇中所述目标文本对应的所述文本向量,对所述杂项簇中的所述目标文本进行聚类,得到多个类簇,并返回执行所述确定当前的多个所述类簇中的杂项簇的步骤,直至确定所述杂项簇中所述目标文本的数量满足所述设定条件。
在一可能的实施方式中,所述装置还包括(图中未示出):
关键词提取模块,用于针对每一所述类簇,从所述类簇包含的至少一个所述目标文本中提取关键词;
词包构建模块,用于将所述关键词归入所述类簇对应的所述目标标签的词包中。
在一可能的实施方式中,所述装置还包括(图中未示出):
词包扩展模块,用于从预设的词库中查找与所述关键词相匹配的词语;
将查找到的,与所述关键词相匹配的词语归入所述关键词所属的所述词包中。
参见图8,为本申请实施例提供的另一种标签抽取装置的实施例框图。如图8所示,该装置包括:获取模块81、目标确定模块82、预处理模块83、组合模块84、向量化模块85、聚类模块86、标签抽取模块87。
获取模块81,用于获取用户与预设对象之间的对话文本;
目标确定模块82,用于将所述对话文本中,由所述用户发送给所述预设对象的对话文本确定为待抽取的目标文本;
预处理模块83,用于针对每一待抽取的目标文本,对所述目标文本进行预处理,得到多个词语;
组合模块84,用于对多个所述词语进行组合,得到多个词语组合;
向量化模块85,用于针对每一所述目标文本,基于所述目标文本对应的多个所述词语、多个所述词语组合确定所述目标文本的文本向量;
聚类模块86,用于基于各所述目标文本的文本向量,对多个所述目标文本进行聚类,得到多个类簇;
标签抽取模块87,用于针对每一所述类簇,从所述类簇包含的至少一个所述目标文本中抽取所述用户的目标标签。
本申请实施例还提供了一种设备,如图9所示,包括处理器901、通信接口902、存储器903和通信总线904,其中,处理器901,通信接口902,存储器903通过通信总线904完成相互间的通信,
存储器903,用于存放计算机程序;
处理器901,用于执行存储器903上所存放的程序时,实现如下步骤:
针对每一待抽取的目标文本,对所述目标文本进行预处理,得到多个词语,以及对多个所述词语进行组合,得到多个词语组合;针对每一所述目标文本,基于所述目标文本对应的多个所述词语、多个所述词语组合确定所述目标文本的文本向量;基于各所述目标文本的文本向量,对多个所述目标文本进行聚类,得到多个类簇;针对每一所述类簇,从所述类簇包含的至少一个所述目标文本中抽取目标标签。
或者,
获取所述用户与预设对象之间的对话文本;将所述对话文本中,由所述用户发送给所述预设对象的对话文本确定为待抽取的目标文本;针对每一待抽取的目标文本,对所述目标文本进行预处理,得到多个词语,以及对多个所述词语进行组合,得到多个词语组合;针对每一所述目标文本,基于所述目标文本对应的多个所述词语、多个所述词语组合确定所述目标文本的文本向量;基于各所述目标文本的文本向量,对多个所述目标文本进行聚类,得到多个类簇;针对每一所述类簇,从所述类簇包含的至少一个所述目标文本中抽取所述用户的目标标签。
上述服务器提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,简称PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,简称EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述服务器与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本申请提供的又一实施例中,还提供了一种存储介质,该存储介质中存储有指令,当其在设备上运行时,使得计算机执行上述实施例中任一所述的标签抽取方法。
在本申请提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在设备上运行时,使得设备执行上述实施例中任一所述的标签抽取方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在存储介质中,或者从一个存储介质向另一个存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。
- 上一篇:石墨接头机器人自动装卡簧、装栓机
- 下一篇:一种基于物联网的校园资料查询云平台