本发明属于自然语言处理、计算机信息处理技术领域,尤其涉及一种基于少数民族文化知识图谱的查询及可视化系统构建方法。
背景技术:
知识图谱(knowledgegraph)以结构化的形式描述客观世界中概念、实体及其关系,将互联网的信息表达成更接近人类认知世界的形式,提供了一种更好地组织、管理和理解互联网海量信息的能力。知识图谱已经成为互联网知识驱动的智能应用的基础设施。知识图谱与大数据和深度学习一起,成为推动互联网和人工智能发展的核心驱动力之一。
为了推动少数民族文化的发展与推广,需要构建少数民族文化知识图谱,但目前国外对英文知识图谱构建的方法并不能全部适用于中文知识图谱的构建,特别是关于少数民族文化的知识图谱构建也相对较少,因此构建少数民族文化知识图谱对整合少数民族节日,民族禁忌,民族风俗等将起到非常重要的作用。目前在国内没有成型的少数民族文化知识图谱,同时目前国内也无针对少数民族文化查询和可视化的一套系统,因此迫切需要构建少数民族文化知识以及可以进行少数民族文化查询及可视化的一套系统的方法。
技术实现要素:
为了解决上述现有技术中存在的问题,本发明提出一种基于少数民族文化知识图谱查询及可视化系统构建方法,该方法解决现有技术所存在的缺少少数民族文化知识图谱的问题,可以满足大众进行查询关于少数民族文化的需求。
技术方案如下:
一种基于少数民族文化知识图谱的查询及可视化系统构建方法,步骤如下:
s1、通过网络爬虫获取民族相关信息,构建少数民族文化数据库,利用分词工具进行分词及用户自定义词典对收集到的少数民族文化数据库中的数据进行分词和词性标注,并去除标点符号和停用词;
s2、对分词和词性标注后的数据进行检测,若出现未正常进行分词的词,则进行人工分词操作,并把人工分词结果添加到用户自定义词库,重复步骤s1,直到无新词为止;
s3、对正确分词后的数据进行命名实体识别和关系提取,用以构建领域知识图谱;
s4、将抽取的实体和关系进行链接,得到三元组;
s5、使用数据库将得到的三元组进行存储;
s6、搭建民族文化知识图谱查询以及可视化系统。
进一步的,步骤s1中,爬取民族相关百度百科内容、民族相关微博动态、民族相关新闻报道的文本数据,采用python编程,使用request、beautifulsoup、urllib库以及正则表达式等来进行网络数据的获取。
进一步的,步骤s1和步骤s2中所述的分词工具为jieba中文分词工具。
进一步的,步骤s3中,实体抽取方法为bilstm-cnn-crf。
进一步的,步骤s1具体步骤如下:
s1.1、采用nlp对网上爬取的网页文本数据进行分句和分词,让爬取数据中的句子以一个句子和唯一匹配的token进行保存;
s1.2、对得到的句子、单词和标签进行统计,形成句表、词汇表和标签表;
s1.3、对单词表中字符进行统计,形成字符表;
s1.4、利用已有的预训练好的词向量和字符表来形成字符特征向量。
进一步的,步骤s1.4所提及到的训练好的词向量实现方式如下:
步骤(a):网上获取数据进行词向量训练;
步骤(b):使用wikipediaextractor抽取正文文本,抽取出来正文文本为繁体;
步骤(c):使用opencc对文本进行简体转化;
步骤(d):使用jieba中文分词工具进行中文分词,去停用词;
步骤(e):使用gensim包对处理后的文本进行训练,设置词向量维数为300,训练完成后得到300维的word2vec模型。
进一步的,将使用卷积神经网络(cnn)提取的字符特征向量与预训练好的词向量进行组合,传入到长短期记忆网络(lstm),利用双向长短期记忆网络(bilstm)来训练,获取语句单词之间隐含的语句信息特征;具体步骤如下:
lstm网络结构包括遗忘门、输入、输出门与一个记忆单元;
针对遗忘门输入的是前一时刻的隐层状态ht-1,当前时刻的输入词xt,输出的值是ft,计算公式如下:
ft=σ(wfht-1+ufxt+bf)公式(1)
其中ht-1表示的是上一个cell的输出,xt表示的是当前cell的输入。σ表示sigmod函数,uf表示权重矩阵,ft为遗忘门;
针对输入门输入是的是前一时刻的隐层状态ht-1,当前时刻的输入词xt,输出的值是it和
it=σ(wiht-1+uixt+bi)公式(2)
其中it表示输入门,wi表示当前时刻权重矩阵,bi表示偏置,
针对记忆单元状态更新,由两部分组成,第一部分是ct-1和遗忘门输出ft的乘积,第二部分是输入门的it和
其中ct为最终记忆单元,⊙表示为对应元素点积;
针对输出门输入的是前一时刻的隐层状态ht-1和当前时刻输入词xt,当前时刻细胞状态ct,输出的值是ot和隐层状态ht,计算公式如下:
ot=σ(woht-1+uoxt+bo)公式(5)
ht=ot⊙tanh(ct)公式(6)
ot表示为输出门,ht表示的是当前时刻cell的输出,wo表示当前时刻权重矩阵;
最后,将会得到与句子长度相同的隐层状态序列[h1,h2……hn];
在t时刻将会得到前向和后向2个方向的隐层状态序列
利用crf来对每个单词进行实体标注,标记出语句序列中的实体信息,选择出最优秀的序列模型具体操作如下:
若z={z1,z2,…,zn}表示一个句子的输入序列,zi为该句子中第i个词的词向量,y={y1,y2,…,yn}表示句子z的标签序列,yz表示句子z的可能标签序列的集合,其crf概率模型的具体形式为:
其中,
在训练过程中,采用极大似然估计法对其进行优化,其对数似然函数为如下形式:
l(w,b)=∑logp(y|z;w,b)公式(8)
由极大似然估计原理,最大化对数似然函数就是最大化crf条件概率模型,即优化目标函数:
其中,argmax表示为求函数最大值,y*表示最后得到输出序列。
进一步的,步骤s4中,使用hanlp抽取工具抽取实体。
本发明的有益效果是:
本发明所述的基于少数民族文化知识图谱的查询及可视化系统构建方法通过构建民族文化知识图谱、查询及可视化系统,将少数民族文化信息通过互联网进行广泛传播,通过这一套查询及可视化系统方便普通大众对少数民族文化节日风俗的了解,有利于保护我国少数民族文化遗产。
附图说明
图1为本发明整体结构图;
图2为本发明整体流程图;
图3为本发明中命名实体识别bilstm-cnn-crf网络结构图;
图4为本发明lstm网络结构图;
图5为本发明中数据库可视化效果图1;
图6为本发明中数据库可视化效果图2;
图7为本发明中网页可视化效果图。
具体实施方式
下面结合附图1-7对基于少数民族文化知识图谱的查询及可视化系统构建方法。
实施例1
步骤1:通过网络爬虫获取民族相关百度百科内容、民族相关微博动态、民族相关新闻报道等构建少数民族文化数据库,利用分词工具jieba分词及用户自定义词典对收集到的少数民族文化数据库中的数据进行分词和词性标注,并去除标点符号和停用词;
步骤2:然后对分词和词性标注后的数据进行检测,若出现未正常进行分词的词,则进行人工分词操作,并把人工分词结果添加到用户自定义词库,重复步骤1,直到无新词为止;
步骤3:对正确分词后的数据进行命名实体识别和关系提取,用以构建领域知识图谱;
步骤4:在步骤3中,针对命名实体识别采用bilstm-cnn-crf方法进行实体抽取;
步骤5:在步骤3中,针对关系抽取采用hanlp工具进行抽取关系;
步骤6:将抽取的实体和关系进行链接,得到三元组;
步骤7:使用neo4j数据库将得到的三元组进行存储;
步骤8:搭建民族文化知识图谱查询以及可视化系统;
在所述步骤1中爬取民族相关百度百科内容、民族相关微博动态、民族相关新闻报道等文本数据主要采用python编程,使用request,beautifulsoup,urllib库,以及正则表达式等来进行网络数据的获取;
步骤1和步骤2中所述的分词工具为jieba中文分词工具;
步骤3中所述实体抽取方法为bilstm-cnn-crf,包括如下步骤:
步骤(1):根据步骤1中所述对爬取的网页文本数据进行数据预处理,对文本分词和词性标注,并去除标点符号和停用词;
步骤(2):步骤(1)中所述进行分词和词性标注,并去除标点符号和停用词是利用分词工具jieba分词及用户自定义词典对收集到的少数民族文化数据进行预处理;
步骤(3):利用cnn(卷积神经网络)对每一个单词进行字符特征向量提取;
步骤(4):将使用cnn提取的字符特征向量与预训练好的词向量进行组合,传入到lstm神经网络,利用bilstm神经网络来训练,获取语句单词之间隐含的语句信息特征;
步骤(5):针对(4)中所得到的语义特征,利用crf(条件随机场)来对每个单词进行实体标注,标记出语句序列中的实体信息,选择出最优秀的序列模型;
针对步骤5中提及关系抽取使用的为hanlp抽取工具进行抽取实体之间关系;
针对步骤6提及实体关系链接,在实体关系抽取完成后,将实体与关系进行链接,链接后得到三元组格式为(实体1,关系,实体2)或者(实体,关系,属性值)。
实施例2
系统的整体结构如图1所示,可以分为前端和后端,前台主要用于可视化、图谱展示、信息检索以及问答;后台主要包括数据的爬取、文本预处理、实体识别、关系抽取以及清洗完成后的数据存储等操作;其中前台设置了注册、登录、单一民族文化查询、整体民族文化可视化、问答类型民族文化查询五个模块。本发明构建流程图如图2所示,下面将详细介绍每一步骤。
步骤1:通过网络爬虫获取民族相关百度百科内容、民族相关微博动态、民族相关新闻报道等构建少数民族文化数据库,利用分词工具jieba分词及用户自定义词典对收集到的少数民族文化数据库中的数据进行分词和词性标注,并去除标点符号和停用词;
步骤2:然后对分词和词性标注后的数据进行检测,若出现未正常进行分词的词,则进行人工分词操作,并把人工分词结果添加到用户自定义词库,重复步骤1,直到无新词为止;
步骤3:对正确分词后的数据进行命名实体识别和关系提取,用以构建领域知识图谱;
步骤4:在步骤3中,针对命名实体识别采用bilstm-cnn-crf方法进行实体抽取;
步骤5:在步骤3中,针对关系抽取采用hanlp工具进行抽取关系;
步骤6:将抽取的实体和关系进行链接,得到三元组;
步骤7:使用neo4j数据库将得到的三元组进行存储;
步骤8:搭建民族文化知识图谱查询以及可视化系统;
在所述步骤1中爬取民族相关百度百科内容、民族相关微博动态、民族相关新闻报道等文本数据主要采用python编程,使用request,beautifulsoup,urllib库,以及正则表达式等来进行网络数据的获取;
步骤1和步骤2中所述的分词工具为jieba中文分词工具;
步骤3中所述实体抽取方法为bilstm-cnn-crf,其网络结构图如图3所示。
进一步地,下面详细的介绍具体操作步骤,步骤如下:
步骤(1):根据步骤1中所述对爬取的网页文本数据进行数据预处理,对文本分词和词性标注,并去除标点符号和停用词;
步骤(2):步骤(1)中所述进行分词和词性标注,并去除标点符号和停用词是利用分词工具jieba分词及用户自定义词典对收集到的少数民族文化数据进行预处理;
步骤(3):利用cnn(卷积神经网络)对每一个单词进行字符特征向量提取;
步骤(4):将使用cnn提取的字符特征向量与预训练好的词向量进行组合,传入到lstm神经网络,利用bilstm神经网络来训练,获取语句单词之间隐含的语句信息特征;
步骤(5):针对(4)中所得到的语义特征,利用crf(条件随机场)来对每个单词进行实体标注,标记出语句序列中的实体信息,选择出最优秀的序列模型。进一步地针对上述步骤(1)-(5)进行具体描述,具体实现方式如下:
对步骤1中从网上获取的网页文本数据进行数据预处理,对网页文本数据进行分句、分词,得到字符特征向量的步骤可具体实现如下:
步骤[1]:采用nlp(自然语言处理)相关知识对网上爬取的网页文本数据进行分句和分词,让爬取数据中的句子以一个句子和唯一匹配的token进行保存;
步骤[2]:对步骤(1)中得到的句子、单词和label(标签)进行统计,形成句表、词汇表和标签表;
步骤[3]:对步骤(1)中的单词表中字符进行统计,形成字符表;
步骤[4]:利用已有的预训练好的词向量(word2vec)和字符表来形成字符特征向量。
上述步骤[4]所提及到的训练好的词向量(word2vec)实现方式如下:
步骤(a):网上获取数据进行词向量训练,本发明选用中文wiki百科语料进行训练;
步骤(b):使用wikipediaextractor抽取正文文本,抽取出来正文文本为繁体,需要进行繁简体转化;
步骤(c):使用opencc对文本进行简体转化;
步骤(d):使用jieba中文分词工具进行中文分词,去停用词等;
步骤(e):使用gensim包对处理后的文本进行训练,设置词向量维数为300,训练完成后得到300维的word2vec模型;
上述步骤(4)所提将字符特征向量和预训练好的词向量模型(word2vec)传入到lstm中,然后利用bilstm进行训练得到语句和单词之间的语句信息特征,具体操作步骤如下:
如图4所示,lstm网络结构主要是由3个门控制,即遗忘门(forgetgate)、输入(inputgate)、输出门(outputgate)与一个记忆单元(cell)组成;下面分别介绍每个门的输入以及计算公式;
针对遗忘门输入的是前一时刻的隐层状态ht-1,当前时刻的输入词xt,输出的值是ft,计算公式如下:
ft=σ(wfht-1+ufxt+bf)公式(1)
其中ht-1表示的是上一个cell的输出,xt表示的是当前cell的输入。σ表示sigmod函数,uf表示权重矩阵,ft为遗忘门。
针对输入门输入是的是前一时刻的隐层状态ht-1,当前时刻的输入词xt,输出的值是it和
it=σ(wiht-1+uixt+bi)公式(2)
其中it表示输入门,wi表示当前时刻权重矩阵,bi表示偏置,
针对记忆单元状态更新,由两部分组成,第一部分是ct-1和遗忘门输出ft的乘积,第二部分是输入门的it和
其中ct为最终记忆单元,⊙表示为对应元素点积。
针对输出门(outputgate)输入的是前一时刻的隐层状态ht-1和当前时刻输入词xt,当前时刻细胞状态ct,输出的值是ot和隐层状态ht,计算公式如下:
ot=σ(woht-1+uoxt+bo)公式(5)
ht=ot⊙tanh(ct)公式(6)
其中ot表示为输出门,ht表示的是当前时刻cell的输出,wo表示当前时刻权重矩阵。
最后,将会得到与句子长度相同的隐层状态序列[h1,h2......hn];
本发明中使用的bilstm网络,在t时刻将会得到前向和后向2个方向的隐层状态序列
利用crf(条件随机场)来对每个单词进行实体标注,标记出语句序列中的实体信息,选择出最优秀的序列模型具体操作如下:
若z={z1,z2,…,zn}表示一个句子的输入序列,zi为该句子中第i个词的词向量,y={y1,y2,…,yn}表示句子z的标签序列,yz表示句子z的可能标签序列的集合,其crf概率模型的具体形式为:
其中,
在训练过程中,采用极大似然估计原理对其进行优化,其对数似然函数为如下形式:
l(w,b)=σilogp(y|z;w,b)公式(8)
由极大似然估计原理,最大化对数似然函数就是最大化crf条件概率模型,即优化目标函数:
其中,argmax表示为求函数最大值,y*表示最后得到输出序列。
针对步骤5中提及关系抽取使用的为hanlp抽取工具进行抽取实体之间关系;
针对步骤6提及实体关系链接,在实体关系抽取完成后,将实体与关系进行链接,链接后得到三元组格式为(实体1,关系,实体)或(实体,属性,属性值);
三元组案例:
(回族人口10586087人)
(回族,分布,大分部、小集中、全国都有分布)
(回族,别名,回民)
(火把节,节日活动,斗牛、赛马、摔跤)
(火把节,流行地区,彝族、白族、纳西族、拉枯族)
(火把节,节日时间,六月二十四)
针对步骤7提到将数据存储到neo4j数据库中,使用neo4j的cql语句进行创建,基本语句如下:
neo4j-adminimport[--mode=csv][--database=数据库名]
[--nodes=文件路径][--relationships=文件路径]
存储后得到的实体-关系-实体效果图如图5、图6所示。
采用html、css、python语言以及使用echarts工具进行编写网页可视化,最终等到效果图如图7所示。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的技术人员来说,在不脱离本发明构思的前提下,还可以做出若干等同替代或明显变型,而且性能或用途相同,都应当视为属于本发明的保护范围。