一种基于机器学习的数据标签推荐方法

文档序号:191259 发布日期:2021-11-02 浏览:21次 >En<

阅读说明:本技术 一种基于机器学习的数据标签推荐方法 (Data label recommendation method based on machine learning ) 是由 张黎 孟婷婷 苏伟华 谢委员 于 2021-08-10 设计创作,主要内容包括:一种基于机器学习的数据标签推荐方法,属于信息识别技术领域。本发明包括如下步骤:S1,接收待预测数据;S2,对待预测数据进行预处理,预处理包括中文分词、关键词提取、词向量转换;S3,计算待预测数据与每种标签对应数据之间的相似度得分;S4,将相似度得分最高的标签进行推荐。本发明能够高效地为数据推荐准确的标签。(A data label recommendation method based on machine learning belongs to the technical field of information identification. The invention comprises the following steps: s1, receiving data to be predicted; s2, preprocessing data to be predicted, wherein the preprocessing comprises Chinese word segmentation, keyword extraction and word vector conversion; s3, calculating similarity scores between the data to be predicted and the data corresponding to each label; and S4, recommending the label with the highest similarity score. The invention can efficiently recommend accurate labels for the data.)

一种基于机器学习的数据标签推荐方法

技术领域

本发明涉及信息识别技术领域,尤其涉及一种基于机器学习的数据标签推荐方法。

背景技术

在信息化时代,尤其是计算机和网络技术的高速发展,信息系统日益广泛。数据库,作为企业存储重要、敏感信息的重要载体,承载着越来越多的关键业务系统,已成为企业最具战略性的重要资产。但在客户复杂的实际环境中,数据资产往往规模庞大,若不能梳理清晰并合理分类,则安全建设无从谈起。因此,我们有必要对数据资产进行梳理并结合数据打标的方式对数据进行分类,便于用户根据不同需要对数据资产进行重点防护。而目前缺少一种准确高效的数据标签推荐方法。

发明内容

本发明的目的是为了解决上述现有技术存在的问题,提供一种基于机器学习的数据标签推荐方法,其能够高效地为数据推荐准确的标签。

本发明的目的是通过以下技术方案实现的:

一种基于机器学习的数据标签推荐方法,包括如下步骤:

S1,接收待预测数据;

S2,对待预测数据进行预处理,预处理包括中文分词、关键词提取、词向量转换;

S3,计算待预测数据与每种标签对应数据之间的相似度得分,S3具体包括:

S31,计算待预测数据与同一标签的多个对应数据之间的相似度值,以及计算待预测数据的关键词与该标签的关键词之间的相似度值;

S32,将步骤S31中得到的相似度值,进行均值归一化,并构成一个凸线性组合;

S33,重复步骤S31和S32,计算得到待预测数据与不同标签之间的凸线性组合;

S34,计算待预测数据与每种标签之间的凸组合值,得到待预测数据与每种标签之间最终的相似度得分;

S4,将相似度得分最高的标签进行推荐。

作为本发明优选,在步骤S2中的中文分词与关键词提取之间,还包括如下步骤:

S21,采用NER将特殊词项筛选出来并替换掉;所述特殊词项包括人名,地名,组织机构名;

S22,对同义词做一致性处理,替换为统一的词;

S23,对文本中所有表征文本含义的词项进行词性分析。

作为本发明优选,所述关键词提取具体指:先对待预测数据的文本内容采用Jieba分词,以剔除无用的停用词;再结合LDA主题信息与词汇语义信息,提取初步关键词;最后对初步关键词分析语义信息,筛除其中的虚词,得到最终关键词。

作为本发明优选,所述词向量转换具体指:先将提取到的关键词利用word2vec算法转换为词向量;然后利用TF-IDF算法计算每一个关键词的TF-IDF得分,根据得分的比例按照凸组合规则得到一组关键词凸组合系数;最后将词向量通过核函数进行维度扩展,得到最终的词向量。

作为本发明优选,所述步骤S31中:若待预测数据中的某类数据或关键词具有多个,则分别计算每个该类数据或每个关键词与同一标签之间的相似度值,并根据得到的多个相似度值及所述关键词凸组合系数计算得到凸线性组合值,以作为待预测数据中的该类数据或关键词与该标签之间的相似度值。

作为本发明优选,所述步骤S31中:若同一标签的某类数据或关键词具有多个,则分别计算待预测数据中对应类型的一个数据与该标签的多个数据或关键词之间的相似度值,并根据得到的多个相似度值及所述关键词凸组合系数计算得到凸线性组合值,以作为待预测数据中该类型的一个数据与该标签之间的相似度值。

作为本发明优选,所述步骤S31中的相似度值具体为组合多项数据的类平均余弦相似度,或根据公共子串和字符前后缀计算得到的编辑距离相似度。

作为本发明优选,所述组合多项数据的类平均余弦相似度具体指,计算待预测数据中关键词向量与标签对应的每一条数据向量之间夹角的余弦值,将所有的值相加后取平均,计算公式为:

其中,Li表示某个标签类别,d表示待预测数据,similarity(dk, d)表示待预测数据与某个标签类别下某一条数据的余弦相似度,M表示标签类别Li包含的数据量;

其中,Ai和Bi分别代表向量A和B的各分量。

作为本发明优选,所述编辑距离相似度的计算公式为:

其中,ST分别为两个字符串,LmS串的长度,lcs是两个字符串的最长公共子串长度,ld是通过编辑距离Levenshtein算法得到的LD矩阵计算出的ld距离,δ是矩阵LD从左上角开始的对角线上的元素中值第1次发生改变的元素行下标,此下标之前的元素即两字符串的公共前缀。

作为本发明优选,所述步骤S4具体为:若最高的相似度得分高于设定的阈值,则将该相似度得分最高的标签进行推荐。

本发明的优点是:利用LDA主题模型与词汇语义信息相结合的方式提取核心关键词,将关键词进行词向量转换,并将词向量通过核函数进行维度扩展。计算相似度时,采用了组合多项数据的类平均余弦相似度和同时考虑公共子串和字符前后缀的编辑距离相似度。本发明可以更加快速、有效地进行数据的标签推荐,同时结合机器学习算法,从而提高了标签推荐的准确性。

附图说明

图1为本发明一种基于机器学习的数据标签推荐方法的流程图;

图2为本发明一种基于机器学习的数据标签推荐方法中相似度计算的流程图。

具体实施方式

下面将结合附图和具体实施方式对本发明做进一步的详细说明。

一种基于机器学习的数据标签推荐方法,包括如下步骤:

S1,接收待预测数据;所述待预测数据仅包括结构化数据,即数据库数据;一组待预测数据一般包括表名、表描述、字段名、字段描述、实例、经验知识等,其中,表名和字段名是每组待预测数据都具有的,并且其一般由简单的英文或拼音直接构成;而其他的数据除了可能直接由简单的英文或拼音构成外,还有可能包含复杂的中文文本。

S2,对待预测数据进行预处理,预处理包括中文分词、关键词提取、词向量转换;

获取到待预测数据后,首先对数据进行预处理,对数据中的表描述、字段描述、经验知识等文本内容采用Jieba分词,剔除无用的停用词,得到文本词袋并建立语料库,运用LDA主题模型选择出文本关键词,然后考虑到选取关键词没有考虑词语语义信息,所以对关键词进行语义词性分析,并对特殊次进行一些专门处理,主要包括:

S21,对人名,地名,组织机构名等特殊词项的处理。这些词在统计时往往具有很高的概率统计值,容易导致错误的选择文本关键词项。用NER筛选出来并替换掉,选择关键词时忽略这些特殊词;

S22,对同义词做一致性处理,替换为统一的词;

S23,表征文本含义的词都是文本中的实词,对文本中所有词项进行词性分析;

筛除掉虚词后,得到剩余的核心关键词。将关键词通过word2vec算法转换为词向量,并利用TF-IDF算法计算关键词的值,根据值的比例按照凸组合的规则得到一组凸组合系数。为了后期分类的方便,将词向量通过核函数进行维度扩展,得到最终维度扩展后的词向量。

上述的利用TF-IDF算法提取数据的关键词的具体步骤包括:

S24,计算某个词T在单格语句中的词频TF:

其中, countT为语句分词结果中词T出现的数目,countS为语句分词结果中所有词的数目;

S25,计算逆文档频率IDF:

其中,N代表所有语句的数目,N(T)代表包含词T的语句总数;

S26,计算词T的TF-IDF值:

S27,得到每一个词的TF-IDF值后,按照值的比例得到一组系数,并且所有的系数累加和为1,即得到一组凸组合系数。

每组待预测数据中一般会提取出很多个关键词,若将所有的关键词均作为相似度计算的依据,则势必会增加很多计算量,并对一些并不关键的词计算所带来的结果,对最终的标签推荐准确性可能不会产生明显的正面影响,即这部分计算量很大程度上是无用的,或者说性价比极低的,所以我们在LDA模型提取关键词后,又结合了词汇的语义信息,将更可能表征文本含义的实词保留,而筛除掉虚词。最后,考虑到某些数据在低维空间难以划分的情况,我们通过核函数将词向量扩展到更高的维度,得到最终的高维词向量。

S3,计算待预测数据与每种标签对应数据之间的相似度得分;具体步骤包括:

S31,计算待预测数据与同一标签的多个对应数据的表名、表描述、字段名、字段描述、实例、经验知识等之间的相似度值,以及计算待预测数据的关键词与该标签的关键词之间的相似度值。具体的,若待预测数据中的某类数据或关键词具有多个,则分别计算每个该类数据或每个关键词与同一标签之间的相似度值,并结合前面的凸组合系数求得凸线性组合值,取此凸线性组合值为待预测数据中的该类数据或关键词与该标签之间的相似度值,以充分考虑到待预测数据中的每个有效数据,确保最终结果能够准确表示整组待预测数据。若同一标签的某类数据或关键词具有多个,则以同样的方式求得凸线性组合的值作为相似度值。

S32,将步骤S31中得到的相似度值,进行均值归一化,并构成一个凸线性组合;

S33,重复步骤S31和S32,计算得到待预测数据与不同标签之间的凸线性组合;

S34,计算待预测数据与每种标签之间的凸组合值,得到待预测数据与每种标签之间最终的相似度得分;

例如,待预测数据中包括表名a、表描述b、字段名c、字段描述d、实例e,以及待预测数据的关键词为g等属性,区别于关键词对应的凸组合系数,这里我们获取各属性的凸组合系数。获取的方式是,通过分析各个属性,确定一套重要性权重,并根据凸组合规则保证所有权重加和为1,便可得到各属性的凸组合系数。另外标签具有X、Y两种,每种标签下均具有对应的表名、表描述、字段名、字段描述、经验知识以及关键词,其中,X标签下包括表名aX、表描述bX、字段名cX、字段描述dX、经验知识fX以及关键词gX,Y标签下包括表名aY、表描述bY、字段名cY、字段描述dY、经验知识fY以及关键词gY。然后,计算待预测数据相对于标签X的相似度得分,包括a与aX的相似度得分,b与bX的相似度得分,c与cX的相似度得分,d与dX的相似度得分,e与X的相似度得分,g与fX的相似度得分,g与gX的相似度得分,其中,表描述b、字段描述d及关键词g中可能包含多个词,则需要计算每个词与标签X下的对应数据之间的相似度得分,比如关键词g中包括词g'和g",则分别计算g'与gX之间的相似度,g"与gX之间的相似度,并根据对应关键词的凸组合系数将所有相似度值组合起来,求得凸线性组合的值,作为关键词在待预测数据相对于标签X对应数据的相似度值。并且,标签中的表描述、字段描述及关键词也可能包含多个词,则用相同的方法计算凸线性组合值作为相似度值。如此,得到待预测数据相对于标签X的所有相似度值a1,b1,c1,d1,e1,f1,g1。由于这些相似度值是通过两套方法求得的,所以先将所有的相似度值进行均值归一化。,然后将这些归一化后的相似度值结合属性凸组合系数,求得凸线性组合值,计算出待预测数据相对于标签X最终的相似度得分x,同理,分别计算出待预测数据相对于标签Y最终的相似度得分y。

具体的,步骤S31中的相似度值具体为组合多项数据的类平均余弦相似度或同时考虑公共子串和字符前后缀的编辑距离相似度。其中,所述组合多项数据的类平均余弦相似度具体指,计算待预测数据中关键词向量与标签对应的每一条数据向量之间夹角的余弦值,将所有的值相加后取平均,计算公式为:

其中,Li表示某个标签类别,d表示待预测数据,similarity(dk, d)表示待预测数据与某个标签类别下某一条数据的余弦相似度,M表示标签类别Li包含的数据量。

其中,Ai和Bi分别代表向量A和B的各分量。

如上所述,待预测数据中一些具有中文文本的数据需要进行词向量转换,如表描述、关键词,同理,标签中的相应数据也需要进行词向量转换;即余弦相似度值的计算是针对具有词向量的数据,通过其词向量与标签中对应数据的向量之间的夹角大小来反应两者的相似度,余弦值越大,则两者的相似度越高,即相似度值越大。而单条数据往往不具备代表性,所以我们考虑了组合多项数据的类平均余弦相似度,即计算待预测数据中关键词向量与标签对应的每一条数据向量之间夹角的余弦值,将所有的值相加后取平均。属性中,表描述一般为一整句话,我们在对其进行分词之后,可以直接对其进行词向量转换,以得到整条表描述的词向量,但为了后期方便分类,我们将词向量使用核函数进行维度扩展,得到更高维空间的词向量,并将其与标签中的表描述的词向量进行余弦相似度计算。

所述同时考虑公共子串和字符前后缀的编辑距离相似度,计算公式为:

其中,ST分别为两个字符串,LmS串的长度,lcs是两个字符串的最长公共子串长度,ld是通过编辑距离Levenshtein算法得到的LD矩阵计算出的ld距离,δ是矩阵LD从左上角开始的对角线上的元素中值第1次发生改变的元素行下标,此下标之前的元素即两字符串的公共前缀。

编辑距离相似度主要针对由英文或拼音构成数据,如一般无需进行数据预处理的表名和字段名,通过其数据本身与标签中对应数据之间的差异程度来反应两者的相似度,差异程度越小,则两者的相似度越高,即相似度值越大。基于两字符串的编辑距离,我们同时考虑了两个字符串的最长公共子串以及当前分析字符的前缀字符和后缀字符对相似度的影响,并整理出了新的编辑距离相似度公式。这是因为对于原编辑距离公式,我们发现其不具备普遍适用性。例如设字符串:S1=“BC ”,S2=“CD”,S3=“EF”,则:

Sim1(S1,S2) = 0.5, Sim1(S1,S3) = 0.5

Sim2(S1,S2) = 0, Sim2(S1,S3) = 0

原编辑距离公式为:

其中m,n分别是2个字符串的长度。从上面结果看,使用两个公式求得的两个字符串相似度相同,但显然S1与S2的相似度要大于S1与S3的相似度,因为前者之间存在公共子串C,所以字符串之间的公共子串对相似度具有一定的影响。

S4,将得到的多个相似度得分中低于设定阈值的标签舍弃,取相似度得分高于设定的阈值中分数最高的标签进行推荐。如上述例子,通过计算,我们得到两个相似度得分x、y,若两个得分中至少有一个高于设定的阈值,则我们将两个得分中较高分所对应的标签进行推荐;若两个得分均低于设定的阈值,则说明这两个标签均无法很准确地表示待预测数据,X、Y两个标签均需要舍弃,以避免推荐的标签不够准确,同时,我们可以为待预测数据提供更多的标签进行计算和选择,以最终获得准确性更高的标签。比如,我们可以根据两个标签中得分较高的那个标签如X,自动从库中匹配出若干个与标签X类似的标签,并再次进行上述计算流程,直到获得符合阈值要求的标签J;此时,我们可以记录下此时再推荐过程,以作为历史数据供机器学习和再利用,便于提高之后初次推荐标签的准确率;同时可将标签X与标签J之间的相互推荐指数增加,以便之后遇到类似的情况能够更快地再推荐出准确的标签。

以上所述,仅为本发明较佳的具体实施方式,该具体实施方式是基于本发明整体构思下的一种实现方式,而且本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。

11页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:基于关联数据的故障定位方法、装置、设备及存储介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!