技术领域
[0001] 本发明主要涉及文本内容相似度以及自然语言处理的推荐算法领域。
相关背景技术
[0002] 现有技术,对一张未知输入表格,仅能通过人的自然理解和简单的字符匹配去查找与其相似的表格内容。步骤如下:
[0003] 1、观察表名和字段内容,通过字典等业务资源提取出关键词。
[0004] 2、通过统计方法或字符串对比方法查找与输入表表名最相似的表。
[0005] 3、使用集合相似度方法对比输入表的字段集合和标准表字段集合的相似度。
[0006] 4、将2、3两者结果进行合并,输出与输入表最相似的完整标准表。
[0007] 这种方法基于文本的硬匹配,通常会带来以下问题:
[0008] 1、首先没有考虑到因为单词语序对整个文本的的影响,如“目录版本”和“版本目录”,两者的关键信息分别是“版本”和“目录”,但是在匹配过程中则会忽略这一语序信息;
[0009] 2、其次硬匹配带来的最大问题就是近义词或语义相关的文本在匹配上的遗漏(比如“学校”和“教育”,“公安”和“警察”等),导致近似的文本往往得不到体现和输出。
[0010] 3、现有技术在实际应用过程中效率较低,并且准确度往往得不到保证。
[0011] 因此由于上述原因的阐述,会导致对非标准化或文本自由度较高数据的推荐结果有很大误差。
具体实施方式
[0047] 下面结合附图并以具体实施例,进一步阐明本发明。应理解这些实施例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本申请所附权利要求所限定的范围。
[0048] 术语解释:
[0049] STG表:即输入的非标准化表格,需要进行推荐的文本对象。
[0050] ODS表:即推荐候选表,本发明中实现将STG推荐到ODS中的某些候选表。
[0051] jaccard系数:杰卡德系数,是一种度量集合相似度的方法。
[0052] Embedding:嵌入表示(词/字向量),将文本转换成的一种向量表示,用于模型计算。
[0053] BM25:Best Match算法,文本检索领域中评价文档之间相关性的算法。
[0054] ESIM:Ehanced LSTM for Natural Language Inference(基于增强LSTM的文本推理模型),是一种文本匹配领域的深度学习算法。
[0055] LSTM:Long Short‑Term Memory(长短期记忆网络),是一种时间递归神经网络,在文本翻译、文档摘要等大多数自然语言处理任务中有广泛应用。
[0056] Softmax:一种深度学习中常用的函数,又称归一化函数,目的是将多分类结果以概率的形式进行展现。
[0057] Attention:attention机制也称为注意力机制,在深度学习中广泛应用,目的是为了让模型的关注点更集中在样本的某些重要特征上,并在这些特征上投入更多的学习资源,并抑制其他的无用信息。
[0058] 数据元:表格字段中文名的核心含义,由相关资源给出。
[0059] 限定词:表格字段中文名的描述性含义,与数据元一起构成字段的完整中文含义,由相关资源给出。
[0060] 本发明目的在于对上传的STG表进行推荐,输出相关程度最高的ODS表。
[0061] 输入:STG的json数据,包括表英文名、表中文名、字段信息。
[0062] 输出:与STG输入最相似的ODS候选表。
[0063] 为实现上述目的,本发明以文本召回和排序的文本任务,建立召回+精排序的推荐流程。因此整体设计思路分为以下两个阶段:
[0064] 一、召回阶段
[0065] 召回阶段利用三种召回方法分别对输入的STG表进行召回,对结果以投票方案进行粗排,输出最相似的top k个召回结果。三种召回方法分别为:
[0066] a.基于jaccard系数的方法
[0067] 给定集合A,B,jaccard系数定义为A,B交集大小与A,B并集大小的比值,公式如下:
[0068]
[0069] 式中,集合A和B分别代表STG表和ODS表的关键词集合;当集合A和B均为 时,定义J(A,B)=1。
[0070] 具体到文本推荐任务中,基于jaccard相似系数的方法以STG表和ODS表关键词集合为输入。关键词集合由表名、字段中文名、数据元标识符的jieba分词组成,作为表示单张表的特征信息。通过计算STG与所有ODS的jaccard相似系数并对其排序,得到相似程度最高的top k个召回结果。
[0071] b.基于权重分配的词向量方法
[0072] 基于权重分配的词向量方法是以预训练词向量模型为基础,根据单词词性赋予不同权重,通过加权求和的方式得到文本的向量表示,并以向量余弦距离来度量表之间的相似程度。
[0073] 在提取表格的向量表征方面,由于单张表格包含的中文信息较多,故按照粒度划分为表粒度和字段粒度。通过生成不同粒度下的特征向量,并对其进行拼接,形成单张表的表征向量。不同粒度的中文信息包含如下:
[0074] 表1表格粒度信息说明
[0075]
[0076] 如图2所示,基于权重分配的词向量方法使用表名向量和字段向量两个部分,实现相似度的计算,并采用两种权重方案,具体描述如下:
[0077] 1.内部权重(Static Weight):
[0078] 对表名和字段部分分别进行分词并获取词向量,对词向量根据词性赋予不同的词性权重,将这些带权向量累加得到对应的表名向量和字段向量。
[0079] 2.外部权重(Dynamic Weight)
[0080] 外部权重是将表名向量和字段向量分别赋予不同的权重,计算整个表的表示向量vectable,公式如下:
[0081] vectable=wi*vecname+wj*vecfield (2)
[0082] vecname为表名的向量表示;wi表示表名向量所占权重;vecfield为字段的向量表示;wj表示字段向量所占权重;
[0083] 如上所述,单张表的向量生成过程如图3所示例:
[0084] 基于权重分配的词向量方法通过计算STG表表示向量与ODS候选表集合的表示矩阵的余弦相似度,并从大到小输出top‑k个召回结果。
[0085] c.基于bm25算法的方法
[0086] bm25算法是一种文本检索领域基于概率检索模型提出的一种常见算法,用于评价词和文档之间的相关性。bm25算法在本发明适用场景下可以解释为:给定STG表和ODS表候选集,通过计算STG中每个单词t的分数并累加,得到ODS表与文档之间的得分,得分越大则相似度越高。
[0087] 应用到表推荐算法中的计算流程如图4的bm25算法召回流程所示:
[0088] 这里用到两个BM25模型,全语料模型使用表名和字段的所有切词结果作为语料,表名模型则只利用表名切词。两个模型根据输入的STG表进行选择。
[0089] 1)当STG字段缺失时,则只使用表名模型进行计算。
[0090] 2)当STG信息完整时,则会对两个模型都计算得分,取topk个最大得分结果后合并输出。
[0091] 由于以上三种方法侧重的角度各不相同,基于jaccard系数的方法侧重挖掘文本集合之间的重复程度用于计算jaccard相似度;基于词向量的方法通过在大规模语料上预训练词向量,基于表征向量计算consine相似度,更侧重于表格文本的语义表示;而bm25算法是基于单词词频特征的一种概率检索方法,用于计算单词t与STG、ODS的相似度并得到相似度分数。
[0092] 综上所述,每种方法均可以作为独立召回模块输出候选结果,也可以对各自的召回结果进行投票,将票数最多的top‑k结果用于排序模型的输入。
[0093] 二、文本排序阶段
[0094] 文本的排序模型主要用到ESIM作为精排模型。ESIM(Ehanced LSTM for Natural Language Inference),是一种专门用作自然语言推断的LSTM模型。ESIM结合BiLSTM和attention机制,以成对文本作为输入,得到一个文本匹配的二分类模型,输出通过softmax激活函数映射到[0,1]区间,作为文本的相似度度量。其网络结构如图5所示:
[0095] 经召回阶段计算,可以得到3*top_k个召回结果,并且与输入表越相似,在召回结果中重复度越高。因此对召回结果的初筛采用统计频次的方法,选取top_k个频次最高的召回结果作为候选表集合。排序模型选择优化后的ESIM对候选集合进行精排序。
[0096] ESIM是一种文本匹配模型,原始模型本质上适用于二分类任务,通过对损失函数和输入层进行调整,将ESIM适用于top‑k分类任务中。
[0097] 对于输入层,将原始的文本对调整为单个STG和对应的候选项集,并标注对应的正例索引。损失函数使用list‑wise最大正例似然函数作为损失函数,公式如下:
[0098]
[0099] 式中,f为log_softmax(对数softmax);logits为模型最终的分类预测值;targets为真实排序样本标签,默认为长度为top_k的列表,正例为1,负例为0(如[1,0,1,0,0]表示位置0,2处ODS为正例,其他为负例。
[0100] 经过模型训练,对于输入的STG表和召回的ODS候选表集合,模型会输出每个位置的ODS表对应的概率值,根据概率值进行降序排序,即作为相似度排序结果。最终表格推荐的整体排序流程如图6所示。
[0101] 最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围。