掌桥专利:专业的专利平台
掌桥专利
首页

一种知识图谱的构建方法与系统

文献发布时间:2023-06-19 09:44:49


一种知识图谱的构建方法与系统

【技术领域】

本发明涉及人工智能领域,尤其涉及一种基于用户回答问题的知识图谱的构建时,有效识别攻击者及知识图谱中违规的三元组。

【背景技术】

ConceptNet知识图谱主要依靠互联网众包、专家创建和游戏三种方法来构建。其中专家构建知识图谱是基于内部人员能够控制的,但是专家数量毕竟少数,大多数的知识图谱数据依然来源于通过众包和最初来源于游戏的conceptnet,它根据在游戏中提问,而抽取出用户的答案,并构建出知识图谱,但是别有用心的人,在知识图谱构建过程中,会通过多人同时故意输入错误的广告内容,而污染系统正确性。

发明专利CN201910290476.6基于灾害场景的知识图谱构建方法,从一个或多个灾害数据源中获取灾害场景的数据信息,并对所获取的数据进行知识融合、消除数据间的矛盾和歧义,对知识融合后的数据信息进行知识推理。但该发明在构建知识图谱的时候,并没有对信息进行广告识别,不能很好的判断信息是否都为广告信息。

本发明可以有效检测出含有广告内容的三元组以及相关联的用户,针对性的对三元组和用户进行删除,避免了在用知识图谱做问答时,出现大量广告内容的情形。

【发明内容】

本发明提供了一种知识图谱的构建方法用于基于用户回答问题去除知识图谱的构建与去除知识图谱中的广告三元组,使知识图谱中的三元组更具有存在的意义。

本发明提供了一种知识图谱的构建方法,主要包括以下步骤:

根据用户问答过程构建的知识图谱和广告用户以及相关用户的回答,识别广告用户;根据识别出的广告用户,从知识图谱中去除与之相关的三元组;根据知识图谱中已有三元组中的实体,通过广告词概率分析,获取节点广告概率表,并去除广告概率值较高的节点;根据用户的问题,通过实体识别和关系预测技术得到知识图谱对应三元组中的主语和谓语,返回用户提问问题的答案;在用户与聊天机器人聊天过程中,对聊天机器人回答内容进行的评价,识别答案中是否有广告答案,当遇到广告内容或用户差评时,定义该用户为广告敏感者;根据广告敏感者的判定,机器人回答他们的问题时,答案要更加的偏向非广告;

进一步可选地,如上所述的方法中,所述根据用户游戏数据构建的知识图谱和广告用户以及相关用户的回答,识别广告用户,主要包括:

用户回答问题后,concepnet会根据问题和答案抽取出相应的三元组,即(主语,谓语,宾语)。将刚刚抽取到的三元组中的主语即用户名取出来,将它与用户表中用户名进行精确匹配,如果没有匹配成功,则将该用户判定为新用户,如果匹配成功,说明该用户之前在游戏中回答过别的问题,根据用户表,得到此用户回答过的问题总数,当问题总数小于预设阈值,例如3,判定该用户为新用户;当问题总数超过预设阈值,例如3,则判定该用户为非新用户。

对于非新用户,根据用户表中此非新用户对应的三元组id,将刚刚生成的三元组中的宾语分别与知识图谱中对应的三元组中的宾语进行相似度匹配以及将三元组中的谓语和知识图谱中对应三元组中的谓语输入到情感分析模块,确定此用户回答问题的情感方向,所述情感分析模块中包含的情感方向包括喜欢、批评两大类。

对于新用户以及通过之前检测的用户,通过他们使用电脑的IP地址和回答问题的时间,以回答问题时间为中间时间,分别向前、后增加预设分钟数,例如30分钟,在预设时间的范围内且在该IP地址所在的网络段中,例如此时回答问题的用户的ip地址为192.168.1.24,此IP所属的网络段为192.168.1.0~192.168.1.255,将回答同一问题的用户挑选出来,将挑选出来的用户和当前用户的答案进行相似度匹配,判断这些用户是否为广告发布者;

进一步可选地,如上所述的方法中,所述根据用户表中此非新用户对应的三元组id,将刚刚生成的三元组中的宾语分别与知识图谱中对应的三元组中的宾语进行相似度匹配,判定该用户是否为广告发布者,主要包括:

当前用户与用户表中存有的用户匹配成功且判定为非新用户时,如果此用户刚生成的三元组中的宾语与知识图谱中已存此用户三元组的宾语相似度达到预设的阈值,例如80%,则判断该用户为广告发布者;当相似度在预设的阈值之间,例如60%--80%,通过游戏中的系统消息给此用户发警告信息:张三,你好!您在游戏中回答的问题答案具有高度的相似性,若不为有意行为,以后请注意回答问题的答案,以便为您带来不便;

进一步可选地,如上所述的方法中,所述根据情感分析模块,将三元组中的谓语和知识图谱中对应三元组中的谓语输入到情感分析模块,查看此用户回答问题的情感方向,判定该用户是否为广告发布者,主要包括:

情感分析模块会对输入的谓语根据喜欢和批评两种情感方向进行划分,通过喜欢方向的答案除以总问题数得到喜欢方向的占比率,同理通过批评方向的答案除以总问题数得到批评方向的占比率,这两个占比率中的某一个值大于或等于预设的阈值,例如90%,判定该用户为广告发布者;

进一步可选地,如上所述的方法中,所述根据团队作案判定模块,判定该用户是否与其他用户为团队,均为广告发布者,主要包括:

当情感分析模块得到的两个占比率都小于预设的阈值(例如90%)时或判定为新用户的用户,进行团体作案判定,当某些用户在当前用户回单问题预设时间的范围内(例如1小时)且在该IP地址所在的网络段时,将这些用户和当前用户的答案进行相似度匹配,如果相似度大于或等于预设的阈值,例如10%,则判定这些用户为广告发布者,如果相似度低于预设的阈值,例如10%,则判定这些用户没有关系;

进一步可选地,如上所述的方法中,根据识别出的广告用户,从知识图谱中去除与之相关的三元组,主要包括:

根据判定的广告发布者,通过相似度匹配的方式,与数据库中的用户表进行精确匹配,匹配成功后,返回该广告发布者相对应的信息,即每个用户回答问题后得到的三元组对应的id,由于每个三元组都有唯一的id,因此,根据三元组的id,从知识图谱中去除相对应的三元组。

进一步可选地,如上所述的方法中,根据知识图谱中已有三元组中的实体,通过广告词概率分析,获取节点广告概率表,并去除广告概率值较高的节点,主要包括:

获得知识图谱中的每个节点,构成节点集合,从网站上爬取广告词,构成广告词典。每一个节点会有一个判定广告词计数count,count初始值为0,遍历节点集合中的节点,与广告词典中的每个词进行相似度匹配,如果相似度大于或等于预设的阈值,例如80%,则该节点的count加1,该节点与广告词典中的每个词完成相似度匹配后,通过count/广告词典中的数目得到该节点的广告词概率。通过上述所述步骤,得到每个节点的广告词概率值,构成节点广告概率表。当节点广告概率超过预设的阈值,例如80%,则将与该节点相关的三元组从知识图谱中删除,达到进一步清除知识图谱中存有广告词的三元组;

进一步可选地,如上所述的方法中,所述根据用户的问题,通过实体识别和关系预测技术得到知识图谱对应三元组中的主语和谓语,返回用户提问问题的答案,主要包括:

实体识别使用BERT+BiLSTM+CRF技术,将问题集按照8:2的比例分成训练集和测试集,在训练集中,将问题集中的实体进行人工标注,将标注好的问题输入到实体识别模型中,通过模型的不断迭代,使得模型学习到实体识别的技术,训练过程中,当正确率达到预设的阈值,例如90%,停止训练,将测试集中的数据输入到实体识别模型中,测试模型的质量,若正确率低于预设的阈值,例如90%,则调整模型的超参数,例如学习率,再次进行训练,使模型达到最优。关系预测使用BERT分类模型进行预测,提取出知识图谱中所有的关系构成关系集合,训练集的构成方式,对于每一个问题,会对应1个正样本和5个负样本,形式为“问题+关系+Label”,5个负样本是随机从关机集合中抽取的,使用训练集中数据训练BERT分类模型,通过模型的不断迭代,得到最优的参数模型。

使用实体识别技术从问题中得到实体集合,从知识图谱中检索出与实体相关的所有三元组;如果得到的三元组中关系即谓语是问题字符串中的字串,则认为该三元组为回答该问题的相对应的三元组,将该三元组中的宾语提取出来作为问题的答案进行返回,如果得到的三元组中关系即谓语不是问题字符串中的字串,将问题输入到关系预测模型中去,得到最优的关系,获取存有最优关系的三元组,将该三元组中的宾语提取出来作为问题的答案进行返回;

进一步可选地,如上所述的方法中,所述在用户与聊天机器人聊天过程中,对聊天机器人回答内容进行的评价,识别答案中是否是广告答案,当遇到广告内容或用户差评时,定义为该用户为广告敏感者,主要包括:

用户与聊天机器人聊天结束后,会根据机器人聊天的内容进行评价,如果评价为批评,说明机器人回答用户问题时,用户并没有得到自己想要的答案,此时将用户提问问题所使用到知识图谱中的三元组取出来,查找节点广告概率表,获取三元组中的实体对应的概率值,如果概率值大于预设的阈值,例如60%,则判定该用户为广告敏感者;

进一步可选地,如上所述的方法中,所述根据广告敏感者的判定,机器人回答他们的问题时,答案要更加的偏向非广告,主要包括:

广告敏感者与机器人进行聊天的时候,通过问答系统中返回的问题答案首先根据广告概率表得到三元组中实体的概率值,如果概率值大于预设的阈值,例如60%,则不能直接返回答案,而是再次进行知识图谱问答重新获得问题答案,直到实体的广告概率值低于预设的阈值,例如60%,才能返回问题的答案。

本发明提供了一种知识图谱的构建方法,所述系统包括:

新用户判定模块,用于判定用户为新用户还是非新用户;

广告发布者判定模块,用户判定用户是否为广告发布者,以便后续对知识图谱进行添加三元组还是剔除三元组;

知识图谱问答模块,用于回答用户的问题;

广告敏感者判定模块,用户判定用户是否为广告敏感者,以便判定后续是否再次进行一次知识图谱问答操作。

本发明实施例提供的技术方案可以包括以下有益效果:

本发明知识图谱的构建对广告的注入进行有效地识别,并有针对性的清理知识图谱中含有的广告内容的三元组。

ConceptNet知识图谱主要依靠互联网众包、专家创建和游戏三种方法来构建。其中专家构建知识图谱是基于内部人员能够控制的,但是专家数量毕竟少数,大多数的知识图谱数据依然来源于通过众包和最初来源于游戏的conceptnet,它根据在游戏中提问,而抽取出用户的答案,并构建出知识图谱。但是别有用心的人,在知识图谱构建过程中,会通过多人同时故意输入错误的广告内容,而污染系统正确性。本发明可以有效监测出含有广告内容的三元组以及相关联的用户,针对性的对三元组和用户进行删除,避免了在用知识图谱做问答时,出现大量广告内容的情形。

【附图说明】

图1为本发明基于知识图谱攻击识别方法实施例的流程图。

图2为本发明基于知识图谱攻击识别方法实施例的结构图。

【具体实施方式】

为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。

图1为本发明基于知识图谱攻击识别方法的流程图。如图1所示,本实施例一种知识图谱的构建方法具体可以包括如下步骤:

步骤101,根据用户游戏数据构建的知识图谱和广告用户以及相关用户的回答,识别广告用户。

基于用户游戏数据构建的知识图谱中,知识图谱中的每一条三元组都唯一关联一个用户,因为每一条三元组的产生都是由某一特定的用户回答问题产生的,一个用户可以对应多个三元组。用户名存储在数据库的用户表中,每条三元组会有一个唯一标识的id号,用户表中一共有两列,第一列为用户名,第二列为与用户相关的三元组id,例如:张三,[2,5,7,8]表示在知识图谱中id为2、5、7、8的三元组为用户张三回答问题的答案。

用户回答问题后,知识图谱构建系统根据问题和答案抽取出相应的三元组,即(主语,谓语,宾语)。将刚刚抽取到的三元组中的主语即用户名取出来,将它与用户表中用户名进行精确匹配,如果没有匹配成功,则将该用户判定为新用户,如果匹配成功,说明该用户之前在游戏中回答过别的问题,根据用户表,得到此用户回答过的问题总数,当问题总数小于等于3时,判定该用户为新用户;当问题总数大于3时,则判定该用户为非新用户。

对于非新用户,根据用户表中此非新用户对应的三元组id,将刚刚生成的三元组中的宾语分别与知识图谱中对应的三元组中的宾语进行相似度匹配以及将三元组中的谓语和知识图谱中对应三元组中的谓语输入到情感分析模块,所述情感分析模块,采用百度开源情感分析系统Senta,用于确定此用户回答问题的情感方向,所述情感分析模块采用Senta进行分析的情感方向包括喜欢、批评两大类。

对于新用户以及通过之前检测的用户,通过他们使用电脑的IP地址和回答问题的时间,以回答问题时间为中间时间,分别向前、后增加30分钟,在这1个小时的范围内且在该IP地址所在的网络段中,例如此时回答问题的用户的ip地址为192.168.1.24,此IP所属的网络段为192.168.1.0~192.168.1.255,将回答同一问题的用户挑选出来,将挑选出来的用户和当前用户的答案进行相似度匹配,判断这些用户是否为广告发布者。

例如,当前用户与用户表中存有的用户匹配成功且判定为非新用户时,如果此用户刚生成的三元组中的宾语与知识图谱中已存此用户三元组的宾语相似度达到预设的阈值,例如80%,则判断该用户为广告发布者;当相似度在预设的阈值之间,例如60%--80%,通过游戏中的系统消息给此用户发警告信息:“张三,你好!您在游戏中回答的问题答案具有高度的相似性,若不为有意行为,以后请注意回答问题的答案,以便为您带来不便!”并与相似度低于预设阈值(例如60%)的用户,使用情感分析模块进行用户回答问题方向的检测,情感分析模块对输入的谓语根据喜欢和批评两种情感方向进行划分,通过喜欢方向的答案除以总问题数得到喜欢方向的占比率,同理通过批评方向的答案除以总问题数得到批评方向的占比率,这两个占比率中的某一个值大于或等于预设的阈值,例如90%,判定该用户为广告发布者。两个占比率都小于预设的阈值(例如90%)或判定为新用户的用户,进行团体作案判定,当某些用户在当前用户回单问题的1个小时的范围内且在该IP地址所在的网络段时,将这些用户和当前用户的答案进行相似度匹配,如果相似度大于或等于预设的阈值,例如10%,则判定这些用户为广告发布者,如果相似度低于预设的阈值,例如10%,则判定这些用户没有关系,为非广告发布者。

步骤102,为了保障知识图谱中数据的纯度,从知识图谱中去除与步骤101判定的广告发布者相关的三元组。

将步骤101得到的广告发布者,通过相似度匹配的方式,与数据库中的用户表进行精确匹配,匹配成功后,返回该广告发布者相对应的信息,即每个用户回答问题后得到的三元组对应的id,由于每个三元组都有唯一的id,因此,根据三元组的id,从知识图谱中去除相对应的三元组。

例如,张三被判定为广告发布者,张三先与数据库中用户表的第一列用户名进行精确匹配,匹配成功后,得到张三在用户表中的信息,即张三之前回答问题生成的三元组id[2,5,7,8],从知识图谱中删除id为2,、5、7、8的三元组。

步骤103,对知识图谱中的节点,进行广告词的概率分析,获得节点概率,对已经构建好的节点,进行广告概率排序,并去除与广告概率值较高节点相关的三元组。

虽然找寻广告发布者去除他发布的广告是效率最高的去除方法,但是通过判定用户为广告发布者,并从知识图谱中去除广告发布者相关的三元组,这不能够对知识图谱存有的广告内容去除干净,因为并无法百分百找到每一个广告发布者。因此还需要对整个知识图谱进行进一步的广告去除。

主要包括:获得知识图谱中的每个节点,构成节点集合。从网站上爬取广告词,构成广告词典。每一个节点会有一个判定广告词计数count,count初始值为0,遍历节点集合中的节点,与广告词典中的每个词进行相似度匹配,如果相似度大于或等于预设的阈值,例如80%,则该节点的count加1,该节点与广告词典中的每个词完成相似度匹配后,通过count/广告词典中的数目得到该节点的广告词概率。通过上述所述步骤,得到每个节点的广告词概率值,构成节点广告概率表。当节点广告概率超过预设的阈值,例如80%,则将与该节点相关的三元组从知识图谱中删除,达到进一步清除知识图谱中存有广告词的三元组。

步骤104,匹配知识图谱的主语和谓语,获得宾语,作为答案。即匹配三元组中前面两个,就能获得第三个,第三个就是答案。

实体识别使用BERT+BiLSTM+CRF技术,将问题集按照8:2的比例分成训练集和测试集,在训练集中,将问题集中的实体进行人工标注,将标注好的问题输入到实体识别模型中,通过模型的不断迭代,使得模型学习到实体识别的技术,训练过程中,当正确率达到预设的阈值,例如90%,停止训练,将测试集中的数据输入到实体识别模型中,测试模型的质量,若正确率低于预设的阈值,例如90%,则调整模型的超参数,例如学习率,再次进行训练,使模型达到最优。

关系预测使用BERT分类模型进行预测,提取出知识图谱中所有的关系构成关系集合,训练集的构成方式,对于每一个问题,会对应1个正样本和5个负样本,形式为“问题+关系+Label”,5个负样本是随机从关机集合中抽取的,使用训练集中数据训练BERT分类模型,通过模型的不断迭代,得到最优的参数模型。

例如,用户提问的问题为:张三的职位是什么?这个问题,相对应的训练集形式为:(张三的职位是什么,职位,1),(张三的职位是什么,家庭住址,0),(张三的职位是什么,位置,0),(张三的职位是什么,性别,0),(张三的职位是什么,年龄,0),(张三的职位是什么,门票,0)。其中(张三的职位是什么,职位,1)为正样本,张三的职位是什么,家庭住址,0),(张三的职位是什么,位置,0),(张三的职位是什么,性别,0),(张三的职位是什么,年龄,0),(张三的职位是什么,门票,0)为负样本,负样本中的关系(家庭住址、位置、性别、年龄、门票)都是从知识图谱中现有的关系中随机抽取得到的。

问题具体步骤如下:使用实体识别技术从问题中得到实体集合,从知识图谱中检索出与实体相关的所有三元组;如果得到的三元组中关系即谓语是问题字符串中的字串,则认为该三元组为回答该问题的相对应的三元组,将该三元组中的宾语提取出来作为问题的答案进行返回,如果得到的三元组中关系即谓语不是问题字符串中的字串,将问题输入到关系预测模型中去,得到最优的关系,获取存有最优关系的三元组,将该三元组中的宾语提取出来作为问题的答案进行返回。

例如,用户提问的问题为:张三的职位是什么?首先,通过实体识别技术从问题中抽取出实体——张三;其次,通过实体张三从知识图谱中检索出所有与张三相关的三元组:(张三,职业,软件工程师)、(张三,妻子,李红)、(张三,家庭住址,北京市),问句中涉及到的关系为“职位”,而检索出的三元组的关系中并没有“职位”这一关系,即得到的三元组中的关系不是问题字符串中的字串,此时,将问题(张三的职位是什么?)与刚刚检索得到的三元组的关系(职业、妻子、家庭住址)输入到关系预测模型中,关系预测模型会输出与问题最相似的关系,即职业,此时职业所在的三元组中的宾语即为问题的答案。

步骤105,在用户与聊天机器人聊天过程中,对聊天机器人回答内容进行的评价,识别答案中是否有广告答案,当识别出疑似广告内容,并且用户给于了差评时,定义该用户为广告敏感者。

用户与聊天机器人聊天过程中,用户可以根据机器人聊天的每一个答复进行评价,针对每一机器人的答复都进行步骤103的广告概率判别,如果识别到答复的内容为疑似广告内容,并且评价内容为‘批评’时,说明机器人回答用户问题时,用户并没有对这种疑似广告的答案带来好感。此时可以判定该用户为广告敏感者。

步骤106,根据步骤105判定得到的广告敏感者,机器人回答他们的问题时,使答案偏向非广告。

广告敏感者与机器人进行聊天的时候,通过步骤104中返回的问题答案首先根据广告概率表得到三元组中实体的概率值,如果概率值大于预设的阈值,例如60%,则不能直接返回答案,而是再次进行步骤104重新获得问题答案,直到实体的广告概率值低于预设的阈值,例如60%,才能返回问题的答案。

用于实现本发明进行信息控制的程序,可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、python、C++,还包括常规的过程式程序设计语言—诸如C语言或类似的程序设计语言。

程序代码可以完全地在客户计算机上执行、部分地在客户计算机上执行、作为一个独立的软件包执行、部分在客户计算机上部分在本地、云计算环境或远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到客户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。

在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。

而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

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

相关技术
  • 一种知识图谱的构建方法、装置、知识图谱系统及设备
  • 一种产业知识图谱的构建系统及构建方法
技术分类

06120112281914