CN112101040B - 一种基于知识图谱的古代诗词语义检索方法 - Google Patents
一种基于知识图谱的古代诗词语义检索方法 Download PDFInfo
- Publication number
- CN112101040B CN112101040B CN202010842031.7A CN202010842031A CN112101040B CN 112101040 B CN112101040 B CN 112101040B CN 202010842031 A CN202010842031 A CN 202010842031A CN 112101040 B CN112101040 B CN 112101040B
- Authority
- CN
- China
- Prior art keywords
- data
- entity
- title
- ancient poetry
- ancient
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 35
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 34
- 238000013519 translation Methods 0.000 claims abstract description 26
- 238000007635 classification algorithm Methods 0.000 claims abstract description 11
- 238000012545 processing Methods 0.000 claims abstract description 10
- 238000012800 visualization Methods 0.000 claims abstract description 9
- 238000009877 rendering Methods 0.000 claims abstract description 5
- 230000009193 crawling Effects 0.000 claims abstract description 4
- 238000012549 training Methods 0.000 claims description 44
- 230000006870 function Effects 0.000 claims description 19
- 239000013598 vector Substances 0.000 claims description 17
- 238000012360 testing method Methods 0.000 claims description 15
- 238000012795 verification Methods 0.000 claims description 12
- 238000013528 artificial neural network Methods 0.000 claims description 8
- 238000000605 extraction Methods 0.000 claims description 7
- 238000005065 mining Methods 0.000 claims description 7
- 230000011218 segmentation Effects 0.000 claims description 6
- 238000007476 Maximum Likelihood Methods 0.000 claims description 5
- 238000007418 data mining Methods 0.000 claims description 5
- 238000001914 filtration Methods 0.000 claims description 4
- 238000004806 packaging method and process Methods 0.000 claims description 3
- 238000010845 search algorithm Methods 0.000 claims description 3
- 230000026676 system process Effects 0.000 claims description 3
- 238000011156 evaluation Methods 0.000 claims description 2
- 238000002474 experimental method Methods 0.000 claims description 2
- 238000013507 mapping Methods 0.000 claims description 2
- 230000000007 visual effect Effects 0.000 claims description 2
- 238000005259 measurement Methods 0.000 abstract 1
- 238000003058 natural language processing Methods 0.000 description 5
- 238000011160 research Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 238000013135 deep learning Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000013145 classification model Methods 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000012938 design process Methods 0.000 description 1
- 238000003708 edge detection Methods 0.000 description 1
- 238000011478 gradient descent method Methods 0.000 description 1
- 238000013101 initial test Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000004377 microelectronic Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 230000003595 spectral effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/30—Semantic analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/35—Clustering; Classification
- G06F16/355—Class or cluster creation or modification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/205—Parsing
- G06F40/211—Syntactic parsing, e.g. based on context-free grammar [CFG] or unification grammars
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/205—Parsing
- G06F40/216—Parsing using statistical methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/237—Lexical tools
- G06F40/242—Dictionaries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/289—Phrasal analysis, e.g. finite state techniques or chunking
- G06F40/295—Named entity recognition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/40—Processing or translation of natural language
- G06F40/58—Use of machine translation, e.g. for multi-lingual retrieval, for server-side translation for client devices or for real-time translation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/049—Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Data Mining & Analysis (AREA)
- Biophysics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Evolutionary Computation (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Probability & Statistics with Applications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
发明公开了一种基于知识图谱的古代诗词语义检索方法,包括:首先对爬取数据进行SPACY处理,获得符合规范数据集,再使用BERT分类算法比较相似问题的相似度及实体识别THULAC对数据集进行古诗词系统的问句相似度比较和全句中关键字的提取,通过逆向最大匹配算法切分用户输入语料,与系统自定义字典匹配,构造Cypher查询语句,将查询实体数据返还WEB应用程序,从Neo4j库中查询到与关键字有关的实体。用户输入问题是根据白话文翻译古诗词的问题,先使用Seq2Seq对用户输入的白话文内容进行古诗词的翻译,再使用聚类算法Doc2vec和距离度量算法计算古诗词内容实体间相似度,返回出内容相似度最佳的前10个选项。通过ECharts渲染古诗词实体属性数据和实体间关系数据,实现古诗词实体可视化。
Description
技术领域
本发明属于自然语言处理和系统应用技术领域,特别涉及一种基于知识图谱的古代诗词语义检索方法。
背景技术
自然语言处理(NLP)是一个智能科学重要的研究领域,它探索了有关计算机和自然语言的关系,并把两者相关联起来,是计算机在文字运用领域的特别成就。它也可以被称为一种基于文本的计算机分析方法。而古诗词作为中华文化的瑰宝,在中国历史上具有无法撼动的地位,而古诗词的学习也是中小学科目中不可缺少的一项必修课,可以说古诗词的市场是巨大的。目前,对于古诗词领域方面的研究少之又少,而搜索引擎也有时候无法快速检索到想要的内容。如何将自然语言处理和古诗词相结合,快速检索到用户所需要的古诗信息,成为古诗词系统设计过程中的一个重要环节,而基于知识图谱的古代诗词语义检索系统专门针对用户所设计,满足用户快速方便的检索古诗词的需求。
朱全银等人已有的研究基础包括:Wanli Feng.Research of theme statementextraction for chinese literature based on lexical chain.InternationalJournal of Multimedia and Ubiquitous Engineering,Vol.11,No.6(2016),pp.379-388;Wanli Feng,Ying Li,Shangbing Gao,Yunyang Yan,Jianxun Xue.A novel flameedge detection algorithm via a novel active contour model.InternationalJournal of Hybrid Information Technology,Vol.9,No.9(2016),pp.275-282;刘金岭,冯万利.基于属性依赖关系的模式匹配方法[J].微电子学与计算机,2011,28(12):167-170;刘金岭,冯万利,张亚红.初始化簇类中心和重构标度函数的文本聚类[J].计算机应用研究,2011,28(11):4115-4117;刘金岭,冯万利,张亚红.基于重新标度的中文短信文本聚类方法[J].计算机工程与应用,2012,48(21):146-150.;朱全银,潘禄,刘文儒,等.Web科技新闻分类抽取算法[J].淮阴工学院学报,2015,24(5):18-24;李翔,朱全银.联合聚类和评分矩阵共享的协同过滤推荐[J].计算机科学与探索,2014,8(6):751-759;Quanyin Zhu,Sunqun Cao.A Novel Classifier-independent Feature Selection Algorithm forImbalanced Datasets.2009,p:77-82;Quanyin Zhu,Yunyang Yan,Jin Ding,JinQian.The Case Study for Price Extracting of Mobile Phone Sell Online.2011,p:282-285;Quanyin Zhu,Suqun Cao,Pei Zhou,Yunyang Yan,Hong Zhou.Integrated PriceForecast based on Dichotomy Backfilling and Disturbance FactorAlgorithm.International Review on Computers and Software,2011,Vol.6(6):1089-1093;朱全银,冯万利等人申请、公开与授权的相关专利:冯万利,邵鹤帅,庄军.一种智能冷藏车状态监测无线网络终端装置:CN203616634U[P].2014;朱全银,胡蓉静,何苏群,周培等.一种基于线性插补与自适应滑动窗口的商品价格预测方法.中国专利:ZL201110423015.5,2015.07.01;朱全银,曹苏群,严云洋,胡蓉静等,一种基于二分数据修补与扰乱因子的商品价格预测方法.中国专利:ZL 201110422274.6,2013.01.02;李翔,朱全银,胡荣林,周泓.一种基于谱聚类的冷链物流配载智能推荐方法.中国专利公开号:CN105654267A,2016.06.08。
Seq2Seq:
所使用的翻译模型是Seq2Seq,目的是为了实现Seq2Seq翻译模型的实现及训练,这是一个相当常见的翻译模型,google也曾经使用过该模型进行翻译,它是由两个RNN模型组合而成的,但不同于RNN需要输入固定长度数据特点,Seq2Seq可以输入不同的长度。
传统意义上的RNN每个隐藏层存在公式:
ht=f(ht-1,xt) (1)
对于每个时刻t,存在条件分布公式,即为每个t时刻RNN在隐藏层都会更新一遍p函数的状态,于是就存在公式:
p(xt|xt-1,...,x1) (2)
对于整个输入序列X来说,目的是找出概率最大的值,于是就存在概率公式为:
而第一个RNN作为编码器依次读入,紧接着隐藏层会得到一个合适的长度向量c,c也是编码器最后读出的隐藏层的长度向量,将长度向量传入解码器中,编码器使用一个双向LSTM,接受的是每一个单词向量,和上一个时间点的隐藏状态。输出的是这个时间点的隐藏状态。其中c是一个对于编码器输出的隐藏状态的一个加权平均序列,c的公式如下所示:
c=tanh(VhN) (4)
而另一个RNN作为解码器,对编码器所输入数值进行加工,将隐藏层中加入参数c。解码器接受的是目标句子里单词的句向量,和上一个时间点的隐藏状态,并把语义向量生成指定的序列。
ht=f(ht-1,xt,c) (5)
p(yt|yt-1,...,y1,c)=g(ht,yt-1,c) (6)
最后求出最大条件似然函数。
一般来说,Seq2Seq中还需要加入attention机制,来减少由于排序问题对解码器产生的干扰因素,需要监测单词重要程度的排序问题,因此解码器的公式将变更为,其中si代替时间t,表示t时刻的隐藏状态。
si=f(si-1,yi-1,ci) (8)
p(yi|yi-1,...,y1,x)=g(ht-1,si,ci) (9)
Attention主要思想作用在decoder阶段,每次观察整个句子,在每一步可以决定那些单词是重要的。
BLEU:
这个方法是通过将参与的翻译的结果与人工翻译的结果使用n-gram的方法进行对比评估,n-gram的方法主要是关注窗口的大小,将连在一起的单词作为一个窗口,然后计算匹配的窗口的个数。
根据窗口计算翻译文本与参考文本中出现的最低的次数,计算公式如下:
Doc2vec:
Doc2vec是常见的文本无监督聚类算法,Doc2vec类似于Word2vec,让文档以向量化的表示形式。DM模型属于Doc2vec,利用整句话的意思,预测出现单词概率,记住上下文中缺少的内容,这种方法需要保存词向量。采用softmax函数和梯度下降法训练句子,最后得到预测句子的向量。
BERT:
BERT是一个自监督模型,它可以自己学习一个好的特征表示,作为最近兴起的一般技术,它所采用的是Transformer网络。BERT使用的是双向Transformer,经过从左到右和从右到左两个LSTM来串联生成下游任务特征。分割的每个字都有三个Embedding拼接表示,分别是Token Embeddings、Segment Embeddings和Position Embeddings,其中TokenEmbeddings用于文本分类任务,是将每个词以及特殊符号转换成词嵌入;SegmentEmbeddings将句子分隔开来并做标记;Position Embeddings是对每个字的位置信息进行编码,感知每个词之间的位置关系。它解决了NLP长期的依赖性问题,解决了Word2vec所不能解决的问题,它可以比较所有层两侧的语境。它既能做分类任务,也能做问答任务。
在语义检索领域,目前大多数基于知识图谱的个性化搜索系统无法精确实现实体间根据具体语义搜索的功能。对于向量化实体并进行实体间隐藏关联挖掘的工作缺乏研究。
如:张晓婧等人提出一种基于知识图谱的论文关联信息推荐方法及装置通过对用户的查询内容进行解析,对所述查询内容进行检索,得到包含查询内容的多篇论文,并通过知识库中边属性的相关数据,得到相关联的论文数据从而提高用户获取相关论文的信息的效率,中国专利公开号:CN104346446A,2015.02.11;肖仰华等人提出一种基于中文知识图谱的个性化推荐方法与系统,利用知识图谱中实体间超链接关系度量出任意两个词条间语义关联,并通过语义分析模型来刻画用户和推荐物品之间的关联以实现精准推荐,依赖于标签数据对用户和推荐物品的刻画以实现较高的准确率,中国专利公开号:CN103593792A,2014.02.19;刘静等人提出一种基于自然语言生成技术的知识图谱辅助理解系统,利用自然语言生成技术将知识图谱转换为自然语言文本,方便领域专家在不了解知识图谱的源代码和软件的基础上,在使用知识图谱前,对于其领域的知识图谱有准确、深入且全面的了解,中国专利公开号:CN 110347798A,2019.07.12。
发明内容
发明目的:针对现有技术中存在的问题,本发明提出一种基于知识图谱的古代诗词语义检索方法,能够用于解决古诗词检索算法对项目现存问题未考虑的情况。
技术方案:为解决上述技术问题,本发明提供一种基于知识图谱的古代诗词语义检索方法,具体步骤如下:
(1)对古诗文网、诗词大全和诗词名句网等网站的数据爬取,进行SPACY处理,获得符合规范的能用于数据挖掘任务的古诗词数据集PoemData;
(2)搭建BERT-TextCNN神经网络算法,输入CLASSIFY_DATA进行关系抽取实验,训练神经网络,保存模型CLASSIFY_MODEL;
(3)使用BERT分类算法比较相似问题的相似度及实体识别THULAC对问答数据集进行古诗词系统的问句相似度比较和全句中关键字的提取;
(4)用户输入问题是根据白话文翻译古诗词的问题,先使用Seq2Seq对用户输入的白话文内容进行古诗词的翻译,再使用聚类算法Doc2vec算法对有关古诗词进行聚类,从Neo4j库中查询到与关键字有关的实体,返回出最佳的前10个选项;
(5)开放Neo4j图数据库接口API和古诗词语义检索系统接口API,对用户输入古诗词相关关键字或语句调用算法获取相关实体数据和相似回答,将查询数据返还WEB应用程序;通过ECharts渲染古诗词实体属性数据和实体间关系数据,提供用户古诗词实体数据可视化,实现古诗词自动问答系统。
进一步的,所述步骤(1)中获得符合规范的能用于数据挖掘任务的古诗词数据集PoemData的具体步骤如下:
(1.1)整合从古诗文网、诗词大全和诗词名句网等网站爬取到的数据,将其导入MySQL数据库,创建all_poems表来存储古诗词数据;
(1.2)将all_poems表中的存在停用词以及乱码的数据过滤掉,形成新的古诗词表;
(1.3)创建auhtor表,提取all_poems表的作者进行分类,定义字段名为authorid:ID(Author)和name,分别表示作者数据的ID号和诗人属性名称;
(1.4)创建dynasty表,提取all_poems表的朝代字段进行分类,定义字段名为dynastyid:ID(Dynasty)和name,分别表示朝代数据的ID号和朝代属性名称;
(1.5)创建title表,提取all_poems表的标题和内容字段进行分类,定义字段名为titleid:ID(Title)、title和content,分别表示朝代数据的ID号和古诗词的题目和内容;
(1.6)创建Relation1表,提取all_poems表的标题和朝代字段结合步骤(1.4)创建的dynasty表和步骤(1.5)创建的title表进行创建;Relation1表定义字段名为:START_ID(Title),:END_ID(Dynasty)和DLinks;:START_ID(Title)表示Relation1表的主键和外键ID号,即title表的titleid:ID(Title)相一致;:END_ID(Dynasty)表示Relation1表的主键和外键,即dynasty表的dynastyid:ID(Dynasty)相一致;DLinks表示关系为朝代;
(1.7)创建Relation2表,提取all_poems表的标题和朝代字段结合步骤(1.3)创建的author表和步骤(1.5)创建的title表进行创建。Relation2表定义字段名为:START_ID(Title),:END_ID(Author)和ALinks;:START_ID(Title)表示Relation2表的主键和外键ID号,即title表的titleid:ID(Title)相一致;:END_ID(Author)表示Relation1表的主键和外键,即author表的authorid:ID(Author)相一致;ALinks表示关系为作者;
(1.8)将步骤(1.1)至步骤(1.5)中所创建的所有实体表,抽取实体表中实体编号集合作为各个实体索引导入Neo4j库中;将步骤(1.6)至步骤(1.7)中所创建的所有关系表,其中的实体关系导入Neo4j库中,形成古诗词三元组关系网络。
进一步的,所述步骤(2)中搭建BERT分类算法,具体步骤如下:
(2.1)采用BERT问答分类算法对问题库进行预训练,将Bert问答分类用作多分类的模式,分别对用户目的进行分类,分为5类,分别是搜索诗题目、搜索朝代、搜索作者、搜索诗内容和根据白话文搜索文言文,根据PoemData标注的训练数据集PoemTrain,验证数据集PoemTestVal,测试数据集PoemTest,计算已标注的数据集R总数sum_R;分别定义训练集比例train_prop、验证集比例val_prop和测试集比例test_prop;
(2.2)按照6:2:2的比例随机分配问答数据集设定train_prop=6,val_prop=2,Test_prop=2;分别计算训练集总数train_num、验证集总数val_num以及测试集总数trest_num,得到训练集Train_R={T1,T2,T3,…,Ta},测试集Test_R={N1,N2,…,Na}和验证集Val_R={V1,V2,V3,…,Va};
(2.3)定义类InputExample用来表示数据,初始化变量guid、text和label,分别表示训练id、字和字对应的标签;
(2.4)定义类DataProcessor用于数据处理,编写的继承类PoemNerProcessor,定义get_labels函数用来返回实体标签集,定义_create_example函数用于调用类InputExample给guid,text及label赋值,生成训练和验证样本;
(2.5)定义函数model_builder,构建模型PoemEntityModel。实现以下内容:将text与label转换为ids表示,使用参数加载BERT模型,得到字embedding和最大序列长度max_seq_length;使用TensorFlow对输入数据的ids表示按行求和得到当前batch中的序列长度lengths。定义变量num_labels为数据集L中的标签数量,利用BERT模型参数作为SchoolEntityModel模型的参数初始值,加载BiLSTM-CRF模型,输入模型参数embedding,num_labels,max_seq_length,lengths,label集合labels并设置模型参数lstm维度为128,droupout_rate为0.5,learning_rate为2e-5;
(2.6)利用TensorFlow将字标注数据集Train_R转化为数据文件train.tf_record,读取该数据文件组成batch;
(2.7)训练BERT-BiLSTM-CRF模型,其中模型参数设置BERT预训练模型路径,训练时批量处理数据集的大小为64,学习率为2e-5;
(2.8)得到基于BERT-BiLSTM-CRF的学校领域实体识别模型PoemEntityModel。
进一步的,所述步骤(3)中使用BERT分类算法对用户问题进行分类,建立词向量模型的具体步骤如下:
(3.1)提取all_poems表中的title,author和dynasty字段,定义特征集合RomainList,根据属性分为三大类,对词性进行类型标注;
(3.2)使用THULAC中文分词包,主要公式为 将步骤(3.1)中的RomainList字段属性加入Thulac分词工具包中;
(3.3)对用户输入的问答句子调用训练好的BERT模型进行分类;读取标签库中的内容列表RomainList={[‘题目类型’,1],[‘作者类型’,2],[‘朝代类型’,3]},根据用户输入的问题,计算问题长度为length2,返回标签值label=[‘0’,‘1’,‘2’,‘3’,‘4’]中的一项,这一项即为最终的分类结果,表示用户问题的所属类别,此类别记为type如果为前四类,则进入步骤(3.4),否则进入步骤(4);
(3.4.1)调用步骤(3.2)中的THULAC训练模型,对用户问句中的关键词进行提取,记分词列表为M,计算M长度记为length,设置计数器i=0,起始位m=0,str为空字符串,按简单检索算法不断匹配长句中的短句与THULAC词典库进行比较,返回匹配到的实体名称entityname;
(3.4.2)如果type<6,就会执行步骤(3.4.3),否则就执行步骤(3.4.9);
(3.4.3)如果i<length,就会执行步骤(3.4.4),否则就执行步骤(3.4.9);
(3.4.4)如果m<=I,就会执行(3.4.7),否则执行步骤(3.4.5);
(3.4.5)使得i=i+1,m=0,str为空,除了计数器其他更新到初始值;
(3.4.6)令m=m+1;
(3.4.7)令str=str+M[i][0],不断更新str的值,查找尽可能多的实体识别的结果;
(3.4.8)检索str在RomainList中是否存在,若存在则执行步骤(3.4.9),否则执行步骤(3.4.3);
(3.4.9)根据分类类型type和实体名称entityname在Neo4j库检索相关内容,即查询属性为type和名称为entityname的实体,若查询到实体则返回该实体,否则返回空值。
进一步的,所述步骤(4)中建立可视化模型的具体步骤如下:
(4.1.1)预训练Seq2Seq翻译模型,使用机器翻译自动评估算法BLEU,计算翻译完成句子和数据集中已有白话文句子的共词频率,用于预测翻译算法准确率;
(4.1.2)调用训练好的Seq2Seq模型,计算出整个输入序列X,设置learning_rate2=0.003,max_gradient_norm=5.0,dropout2=1.0,batch_size=64,size=1024,num_layers=5,num_samples=512,num_epoch=5,num_per_epoch=300000,翻译用户传入句子根据句子s中的输入序列去得到输出序列的词概率,找出最大概率的词向量,计算最大似然函数,并映射为相应的汉字字符串。对用户输入的白话文进行翻译,生成对应的翻译结果为TranslateResult;
(4.2.1)预训练Doc2vec,根据特征词训练文本上下文,根据中文词典生成对应词向量,根据词向量训练每个词性之间的关联数值,对文本相似度较大的古诗词短句进行无监督聚类;
(4.2.2)调用训练好的Doc2vec模型,设定Doc2vec将丢失出现词频少于5次生僻字的古诗词,得到集合G;对步骤(4.1.2)中的翻译结果TranslateResult计算文本相似度,输出{[label1,similarity]}的字典集,记录序号和相似度,返回相似度高的前10个古诗的id号,其id值与步骤(1.5)中title表的titleid:ID(Title)相一致,将返回的古诗词id号装入集合PoemResult中;
(4.3)将PoemResult的古诗词id集合返回,并在Neo4j库中检索古诗词title实体相一致id内容。
进一步的,所述步骤(5)中通过用户输入获取相关实体数据和相似回答,提供用户古诗词实体数据可视化步骤如下:
(5.1)开放Neo4j图数据库接口API和古诗词语义检索系统接口API;
(5.2)通过用户账户创建线程,接入进程管理;
(5.3)判断线程是否完成,若是完成则进入步骤(5.9),若没有则进入步骤(5.4);
(5.4)根据用户输入信息查询古诗词信息;
(5.5)系统处理查询信息,进行分类;
(5.6)系统构造包含查询信息的Cypher查询语句,获取初试实体相关属性数据,通过关联挖掘系统提供的接口对查询所得的古诗词实体数据进行实体间关系维度扩展;
(5.7)将系统通过关联挖掘所得的实体数据集封装返还WEB应用程序;
(5.8)结束查询调用,返回步骤(5.3);
(5.9)关闭线程;
(5.10)WEB应用程序通过ECharts渲染古诗词实体数据和实体间关系数据,提供用户古诗词实体数据可视化,实现古诗词自动问答系统。
本发明采用上述技术方案,具有以下有益效果:
本发明改变了现有语义检索系统中未考虑当前项目现存问题的情况,针对用户问题数据,使用深度学习算法构建BERT神经网络进行用户项目问题的专业分类,同时使用相似度算法比较组合检索到用户所表达的内容,识别用户问题目标,将复杂数据转为可用的数据集。针对语义检索方面的问题,使用深度学习算法构建Seq2Seq神经网络和Doc2vec语义聚类,进行用户提出问题的分段翻译和翻译后关键词的聚类,将知识图谱用于古诗词检索领域,提高古诗词检索的准确率,更好地服务于古诗词语义检索方法。
附图说明
图1为本发明的总体流程图;
图2为具体实施例中数据预处理流程图;
图3为具体实施例中分类问答流程图;
图4为具体实施例中白话文检索流程图;
图5为具体实施例中BERT模型训练分类模型流程图;
图6为具体实施例中系统开放调用接口说明流程图。
具体实施方式
下面结合工程国家标准的具体实施例,进一步阐明本发明,应理解这些实施例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本申请所附权利要求所限定的范围。
如图1-6所示,本发明所述的一种基于知识图谱的古代诗词语义检索方法,包括如下步骤:
步骤1:对古诗文网、诗词大全和诗词名句网等网站的数据爬取,进行SPACY处理,获得符合规范的能用于数据挖掘任务的古诗词数据集PoemData。
步骤1.1:整合从古诗文网、诗词大全和诗词名句网等网站爬取到的数据,将其导入MySQL数据库,创建all_poems表来存储古诗词数据,字段为标题、朝代、作者和内容;
步骤1.2:将all_poems表中存在停用词以及乱码的数据过滤掉,即为数据集PoemData;
步骤1.3:创建auhtor表,提取all_poems表的作者进行分类,定义字段名为authorid:ID(Author)和name,分别表示作者数据的ID号和诗人属性名称;
步骤1.4:创建dynasty表,提取all_poems表的朝代字段进行分类,定义字段名为dynastyid:ID(Dynasty)和name,分别表示朝代数据的ID号和朝代属性名称;
步骤1.5:创建title表,提取all_poems表的标题和内容字段进行分类,定义字段名为titleid:ID(Title)、title和content,分别表示朝代数据的ID号和古诗词的题目和内容;
步骤1.6:创建Relation1表,提取all_poems表的标题和朝代字段结合步骤1.4创建的dynasty表和步骤1.5创建的title表进行创建。Relation1表定义字段名为:START_ID(Title),:END_ID(Dynasty)和DLinks。:START_ID(Title)表示Relation1表的主键和外键(title表的titleid:ID(Title)相一致)ID号;:END_ID(Dynasty)表示Relation1表的主键和外键(dynasty表的dynastyid:ID(Dynasty)相一致);DLinks表示关系为朝代;
步骤1.7:创建Relation2表,提取all_poems表的标题和朝代字段结合步骤1.3创建的author表和步骤1.5创建的title表进行创建。Relation2表定义字段名为:START_ID(Title),:END_ID(Author)和ALinks。:START_ID(Title)表示Relation2表的主键和外键(title表的titleid:ID(Title)相一致)ID号;:END_ID(Author)表示Relation1表的主键和外键(author表的authorid:ID(Author)相一致);ALinks表示关系为作者;
步骤1.8:将步骤1.1-步骤1.5中所创建的所有实体表,抽取实体表中实体编号集合作为各个实体索引导入Neo4j库中。将步骤1.6-步骤1.7中所创建的所有关系表,其中的实体关系导入Neo4j库中,形成古诗词三元组关系网络。
步骤2:采用BERT问答分类算法对问题库进行预训练,将Bert问答分类用作多分类的模式,分别对用户目的进行分类,分为5类。
步骤2.1:根据PoemData标注的训练数据集PoemTrain,验证数据集PoemTestVal,测试数据集PoemTest,计算已标注的数据集R总数sum_R。分别定义训练集比例train_prop、验证集比例val_prop和测试集比例test_prop;
步骤2.2:按照6:2:2的比例随机分配问答数据集设定train_prop=6,val_prop=2,Test_prop=2。分别计算训练集总数train_num、验证集总数val_num以及测试集总数trest_num,得到训练集Train_R={T1,T2,T3,…,Ta},测试集Test_R={N1,N2,…,Na}和验证集Val_R={V1,V2,V3,…,Va};
步骤2.3:定义类InputExample用来表示数据,初始化变量guid、text和label,分别表示训练id、字和字对应的标签;
步骤2.4:定义类DataProcessor用于数据处理,编写的继承类PoemNerProcessor,定义get_labels函数用来返回实体标签集,定义_create_example函数用于调用类InputExample给guid,text及label赋值,生成训练和验证样本;
步骤2.5:定义函数model_builder,构建模型PoemEntityModel。实现以下内容:将text与label转换为ids表示,使用参数加载BERT模型,得到字embedding和最大序列长度max_seq_length。使用TensorFlow对输入数据的ids表示按行求和得到当前batch中的序列长度lengths。定义变量num_labels为数据集L中的标签数量,利用BERT模型参数作为SchoolEntityModel模型的参数初始值,加载BiLSTM-CRF模型,输入模型参数embedding,num_labels,max_seq_length,lengths,label集合labels并设置模型参数lstm维度为128,droupout_rate为0.5,learning_rate为2e-5;
步骤2.6:利用TensorFlow将字标注数据集Train_R转化为数据文件train.tf_record,读取该数据文件组成batch;
步骤2.7:训练BERT-BiLSTM-CRF模型,其中模型参数设置BERT预训练模型路径,训练时批量处理数据集的大小为64,学习率为2e-5;
步骤2.7:得到基于BERT-BiLSTM-CRF的学校领域实体识别模型PoemEntityModel。
步骤3:使用BERT分类算法比较相似问题的相似度及实体识别THULAC对数据集进行古诗词系统的问句相似度比较和全句中关键字的提取。
步骤3.1:提取all_poems表中的title,author和dynasty字段,定义特征集合RomainList,根据属性分为三大类,对词性进行类型标注;
步骤3.2:使用THULAC中文分词包,主要公式为 将步骤3.1中的RomainList字段属性加入Thulac分词工具包中;
步骤3.3:对用户输入的问答句子调用训练好的BERT模型进行分类。读取标签库中的内容列表RomainList={[‘题目类型’,1],[‘作者类型’,2],[‘朝代类型’,3]},根据用户输入的问题,计算问题长度为length2,返回标签值label=[‘0’,‘1’,‘2’,‘3’,‘4’]中的一项,这一项即为最终的分类结果,表示用户问题的所属类别,此类别记为type如果为前四类,则进入步骤3.4,否则进入步骤4;
步骤3.4.1:调用步骤3.2中的THULAC训练模型,对用户问句中的关键词进行提取,记分词列表为M,计算M长度记为length,设置计数器i=0,起始位m=0,str为空字符串,按简单检索算法不断匹配长句中的短句与THULAC词典库进行比较,返回匹配到的实体名称entityname;
步骤3.4.2:如果type<6,就会执行步骤3.4.3,否则就执行步骤3.4.9;
步骤3.4.3:如果i<length,就会执行步骤3.4.4,否则就执行步骤3.4.9;
步骤3.4.4:如果m<=I,就会执行步骤3.4.7,否则执行步骤3.4.5;
步骤3.4.5:使得i=i+1,m=0,str为空,除了计数器其他更新到初始值;
步骤3.4.6:令m=m+1;
步骤3.4.7:令str=str+M[i][0],不断更新str的值,查找尽可能多的实体识别的结果;
步骤3.4.8:检索str在RomainList中是否存在,若存在则执行步骤3.4.9,否则执行步骤3.4.3;
步骤3.4.9:根据分类类型type和实体名称entityname在Neo4j库检索相关内容,即查询属性为type和名称为entityname的实体,若查询到实体则返回该实体,否则返回空值。
步骤4:用户输入问题是根据白话文翻译古诗词的问题,先使用Seq2Seq对用户输入的白话文内容进行古诗词的翻译,再使用聚类算法Doc2vec算法对有关古诗词进行聚类,从Neo4j库中查询到与关键字有关的实体,返回出最佳的前10个选项。
步骤4.1:调用训练好的Seq2Seq模型,计算出整个输入序列X,设置learning_rate2=0.003,max_gradient_norm=5.0,dropout2=1.0,batch_size=64,size=1024,num_layers=5,num_samples=512,num_epoch=5,num_per_epoch=300000,翻译用户传入句子根据句子s中的输入序列去得到输出序列的词概率,找出最大概率的词向量,计算最大似然函数,并映射为相应的汉字字符串。对用户输入的白话文进行翻译,生成对应的翻译结果为TranslateResult;
步骤4.2:调用训练好的Doc2vec模型,设定Doc2vec将丢失出现词频少于5次生僻字的古诗词,得到集合G。对步骤3.1.2中的翻译结果TranslateResult计算文本相似度,输出{[label1,similarity]}的字典集,记录序号和相似度,返回相似度高的前10个古诗的id号,其id值与步骤1.5中title表的titleid:ID(Title)相一致,将返回的古诗词id号装入集合PoemResult中;
步骤4.3:将PoemResult的古诗词id集合返回,并在Neo4j库中检索古诗词title实体相一致id内容。
步骤5:开放Neo4j图数据库接口API和古诗词语义检索系统接口API,对用户输入古诗词相关关键字或语句调用算法获取相关实体数据和相似回答,将查询数据返还WEB应用程序。通过ECharts渲染古诗词实体属性数据和实体间关系数据,提供用户古诗词实体数据可视化,实现古诗词自动问答系统。
步骤5.1:开放Neo4j图数据库接口API和古诗词语义检索系统接口API;
步骤5.2:通过用户账户创建线程,接入进程管理;
步骤5.3:判断线程是否完成,若是完成则进入步骤(5.9),若没有则进入步骤(5.4);
步骤5.4:根据用户输入信息查询古诗词信息;
步骤5.5:系统处理查询信息,进行分类;
步骤5.6:系统构造包含查询信息的Cypher查询语句,获取初试实体相关属性数据,通过关联挖掘系统提供的接口对查询所得的古诗词实体数据进行实体间关系维度扩展;
步骤5.7:将系统通过关联挖掘所得的实体数据集封装返还WEB应用程序;
步骤5.8:结束查询调用,返回步骤(5.3);
步骤5.9:关闭线程;
步骤5.10:WEB应用程序通过ECharts渲染古诗词实体数据和实体间关系数据,提供用户古诗词实体数据可视化,实现古诗词自动问答系统。
上述步骤的变量定义如下表所示:
/>
为了更好的说明本方法的有效性,通过对85万条数据进行处理,从信息中抽取出诗人、朝代及题目等数据构建知识库。通过BERT神经网络算法对用户问题进行专业分类,然后通过相似度算法比较寻找相似的问题及实体识别进行问答。开放Neo4j图数据库接口API和古诗词语义检索系统接口API,对用户输入古诗词相关关键字或语句调用算法获取相关实体数据和相似回答,将查询数据返还WEB应用程序。通过ECharts渲染古诗词实体属性数据和实体间关系数据,实现古诗词实体关系可视化以及古诗词自动问答系统。在测试集上,翻译算法准确率为86%,组合问答算法准确率为94%。
本发明创造性的提出了一种基于知识图谱的古代诗词语义检索方法及系统,本方法改变了现有语义检索系统中未考虑当前项目现存问题的情况,使用深度学习算法构建BERT神经网络进行用户项目问题的专业分类,同时使用多种相似度算法比较组合检索到用户所表达的内容,将复杂数据转为可用的数据集,将知识图谱用于古诗词检索领域,提高古诗词检索的准确率,更好地服务于古诗词语义检索方法。
Claims (6)
1.一种基于知识图谱的古代诗词语义检索方法,其特征在于,具体步骤如下:
(1)对古诗文网、诗词大全和诗词名句网等网站的数据爬取,进行SPACY处理,获得符合规范的能用于数据挖掘任务的古诗词数据集PoemData;
(2)搭建BERT-TextCNN神经网络算法,输入CLASSIFY_DATA进行关系抽取实验,训练神经网络,保存模型CLASSIFY_MODEL;其中,采用BERT问答分类算法对问题库进行预训练,将Bert问答分类用作多分类的模式,分别对用户目的进行分类,分为5类,分别是搜索诗题目、搜索朝代、搜索作者、搜索诗内容和根据白话文搜索文言文;
(3)使用BERT分类算法比较相似问题的相似度及实体识别THULAC对问答数据集进行古诗词系统的问句相似度比较和全句中关键字的提取;
(4)用户输入问题是根据白话文翻译古诗词的问题,先使用Seq2Seq对用户输入的白话文内容进行古诗词的翻译,再使用聚类算法Doc2vec算法对有关古诗词进行聚类,从Neo4j库中查询到与关键字有关的实体,返回出最佳的前10个选项;
(5)开放Neo4j图数据库接口API和古诗词语义检索系统接口API,对用户输入古诗词相关关键字或语句调用算法获取相关实体数据和相似回答,将查询数据返还WEB应用程序;通过ECharts渲染古诗词实体属性数据和实体间关系数据,提供用户古诗词实体数据可视化,实现古诗词自动问答系统。
2.根据权利要求1所述的一种基于知识图谱的古代诗词语义检索方法,其特征在于,所述步骤(1)中获得符合规范的能用于数据挖掘任务的古诗词数据集PoemData的具体步骤如下:
(1.1)整合从古诗文网、诗词大全和诗词名句网等网站爬取到的数据,将其导入MySQL数据库,创建all_poems表来存储古诗词数据;
(1.2)将all_poems表中的存在停用词以及乱码的数据过滤掉,形成新的古诗词表;
(1.3)创建auhtor表,提取all_poems表的作者进行分类,定义字段名为authorid:ID(Author)和name,分别表示作者数据的ID号和诗人属性名称;
(1.4)创建dynasty表,提取all_poems表的朝代字段进行分类,定义字段名为dynastyid:ID(Dynasty)和name,分别表示朝代数据的ID号和朝代属性名称;
(1.5)创建title表,提取all_poems表的标题和内容字段进行分类,定义字段名为titleid:ID(Title)、title和content,分别表示朝代数据的ID号和古诗词的题目和内容;
(1.6)创建Relation1表,提取all_poems表的标题和朝代字段结合步骤(1.4)创建的dynasty表和步骤(1.5)创建的title表进行创建;Relation1表定义字段名为:START_ID(Title),:END_ID(Dynasty)和DLinks;:START_ID(Title)表示Relation1表的主键和外键ID号,即title表的titleid:ID(Title)相一致;:END_ID(Dynasty)表示Relation1表的主键和外键,即dynasty表的dynastyid:ID(Dynasty)相一致;DLinks表示关系为朝代;
(1.7)创建Relation2表,提取all_poems表的标题和朝代字段结合步骤(1.3)创建的author表和步骤(1.5)创建的title表进行创建;Relation2表定义字段名为:START_ID(Title),:END_ID(Author)和ALinks;:START_ID(Title)表示Relation2表的主键和外键ID号,即title表的titleid:ID(Title)相一致;:END_ID(Author)表示Relation1表的主键和外键,即author表的authorid:ID(Author)相一致;ALinks表示关系为作者;
(1.8)将步骤(1.1)至步骤(1.5)中所创建的所有实体表,抽取实体表中实体编号集合作为各个实体索引导入Neo4j库中;将步骤(1.6)至步骤(1.7)中所创建的所有关系表,其中的实体关系导入Neo4j库中,形成古诗词三元组关系网络。
3.根据权利要求1所述的一种基于知识图谱的古代诗词语义检索方法,其特征在于,所述步骤(2)中搭建BERT分类算法,具体步骤如下:
(2.1)根据PoemData标注的训练数据集PoemTrain,验证数据集PoemTestVal,测试数据集PoemTest,计算已标注的数据集R总数sum_R;分别定义训练集比例train_prop、验证集比例val_prop和测试集比例test_prop;
(2.2)按照6:2:2的比例随机分配问答数据集设定train_prop=6,val_prop=2,Test_prop=2;分别计算训练集总数train_num、验证集总数val_num以及测试集总数trest_num,得到训练集Train_R={T1,T2,T3,…,Ta},测试集Test_R={N1,N2,…,Na}和验证集Val_R={V1,V2,V3,…,Va};
(2.3)定义类InputExample用来表示数据,初始化变量guid、text和label,分别表示训练id、字和字对应的标签;
(2.4)定义类DataProcessor用于数据处理,编写的继承类PoemNerProcessor,定义get_labels函数用来返回实体标签集,定义_create_example函数用于调用类InputExample给guid,text及label赋值,生成训练和验证样本;
(2.5)定义函数model_builder,构建模型PoemEntityModel;实现以下内容:将text与label转换为ids表示,使用参数加载BERT模型,得到字embedding和最大序列长度max_seq_length;使用TensorFlow对输入数据的ids表示按行求和得到当前batch中的序列长度lengths;定义变量num_labels为数据集L中的标签数量,利用BERT模型参数作为SchoolEntityModel模型的参数初始值,加载BiLSTM-CRF模型,输入模型参数embedding,num_labels,max_seq_length,lengths,label集合labels并设置模型参数lstm维度为128,droupout_rate为0.5,learning_rate为2e-5;
(2.6)利用TensorFlow将字标注数据集Train_R转化为数据文件train.tf_record,读取该数据文件组成batch;
(2.7)训练BERT-BiLSTM-CRF模型,其中模型参数设置BERT预训练模型路径,训练时批量处理数据集的大小为64,学习率为2e-5;
(2.8)得到基于BERT-BiLSTM-CRF的学校领域实体识别模型PoemEntityModel。
4.根据权利要求1所述的一种基于知识图谱的古代诗词语义检索方法,其特征在于,所述步骤(3)中使用BERT分类算法对用户问题进行分类,建立词向量模型的具体步骤如下:
(3.1)提取all_poems表中的title,author和dynasty字段,定义特征集合RomainList,根据属性分为三大类,对词性进行类型标注;
(3.2)使用THULAC中文分词包,主要公式为:将步骤(3.1)中的RomainList字段属性加入Thulac分词工具包中;
(3.3)对用户输入的问答句子调用训练好的BERT模型进行分类;读取标签库中的内容列表RomainList={[‘题目类型’,1],[‘作者类型’,2],[‘朝代类型’,3]},根据用户输入的问题,计算问题长度为length2,返回标签值label=[‘0’,‘1’,‘2’,‘3’,‘4’]中的一项,这一项即为最终的分类结果,表示用户问题的所属类别,此类别记为type如果为前四类,则进入步骤(3.4),否则进入步骤(4);
(3.4.1)调用步骤(3.2)中的THULAC训练模型,对用户问句中的关键词进行提取,记分词列表为M,计算M长度记为length,设置计数器i=0,起始位m=0,str为空字符串,按简单检索算法不断匹配长句中的短句与THULAC词典库进行比较,返回匹配到的实体名称entityname;
(3.4.2)如果type<6,就会执行步骤(3.4.3),否则就执行步骤(3.4.9);
(3.4.3)如果i<length,就会执行步骤(3.4.4),否则就执行步骤(3.4.9);
(3.4.4)如果m<=I,就会执行(3.4.7),否则执行步骤(3.4.5);
(3.4.5)使得i=i+1,m=0,str为空,除了计数器其他更新到初始值;
(3.4.6)令m=m+1;
(3.4.7)令str=str+M[i][0],不断更新str的值,查找尽可能多的实体识别的结果;
(3.4.8)检索str在RomainList中是否存在,若存在则执行步骤(3.4.9),否则执行步骤(3.4.3);
(3.4.9)根据分类类型type和实体名称entityname在Neo4j库检索相关内容,即查询属性为type和名称为entityname的实体,若查询到实体则返回该实体,否则返回空值。
5.根据权利要求1所述的一种基于知识图谱的古代诗词语义检索方法,其特征在于,所述步骤(4)中建立可视化模型的具体步骤如下:
(4.1.1)预训练Seq2Seq翻译模型,使用机器翻译自动评估算法BLEU,计算翻译完成句子和数据集中已有白话文句子的共词频率,用于预测翻译算法准确率;
(4.1.2)调用训练好的Seq2Seq模型,计算出整个输入序列X,设置learning_rate2=0.003,max_gradient_norm=5.0,dropout2=1.0,batch_size=64,size=1024,num_layers=5,num_samples=512,num_epoch=5,num_per_epoch =300000,翻译用户传入句子根据句子s中的输入序列去得到输出序列的词概率,找出最大概率的词向量,计算最大似然函数,并映射为相应的汉字字符串;对用户输入的白话文进行翻译,生成对应的翻译结果为TranslateResult;
(4.2.1)预训练Doc2vec,根据特征词训练文本上下文,根据中文词典生成对应词向量,根据词向量训练每个词性之间的关联数值,对文本相似度较大的古诗词短句进行无监督聚类;
(4.2.2)调用训练好的Doc2vec模型,设定Doc2vec将丢失出现词频少于5次生僻字的古诗词,得到集合G;对步骤(4.1.2)中的翻译结果TranslateResult计算文本相似度,输出{[label1,similarity]}的字典集,记录序号和相似度,返回相似度高的前10个古诗的id号,其id值与步骤(1.5)中title表的titleid:ID(Title)相一致,将返回的古诗词id号装入集合PoemResult中;
(4.3)将PoemResult的古诗词id集合返回,并在Neo4j库中检索古诗词title实体相一致id内容。
6.根据权利要求1所述的一种基于知识图谱的古代诗词语义检索方法,其特征在于,所述步骤(5)中通过用户输入获取相关实体数据和相似回答,提供用户古诗词实体数据可视化步骤如下:
(5.1)开放Neo4j图数据库接口API和古诗词语义检索系统接口API;
(5.2)通过用户账户创建线程,接入进程管理;
(5.3)判断线程是否完成,若是完成则进入步骤(5.9),若没有则进入步骤(5.4);
(5.4)根据用户输入信息查询古诗词信息;
(5.5)系统处理查询信息,进行分类;
(5.6)系统构造包含查询信息的Cypher查询语句,获取初试实体相关属性数据,通过关联挖掘系统提供的接口对查询所得的古诗词实体数据进行实体间关系维度扩展;
(5.7)将系统通过关联挖掘所得的实体数据集封装返还WEB应用程序;
(5.8)结束查询调用,返回步骤(5.3);
(5.9)关闭线程;
(5.10)WEB应用程序通过ECharts渲染古诗词实体数据和实体间关系数据,提供用户古诗词实体数据可视化,实现古诗词自动问答系统。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010842031.7A CN112101040B (zh) | 2020-08-20 | 2020-08-20 | 一种基于知识图谱的古代诗词语义检索方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010842031.7A CN112101040B (zh) | 2020-08-20 | 2020-08-20 | 一种基于知识图谱的古代诗词语义检索方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112101040A CN112101040A (zh) | 2020-12-18 |
CN112101040B true CN112101040B (zh) | 2024-03-29 |
Family
ID=73754051
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010842031.7A Active CN112101040B (zh) | 2020-08-20 | 2020-08-20 | 一种基于知识图谱的古代诗词语义检索方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112101040B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112686028B (zh) * | 2020-12-25 | 2021-09-03 | 掌阅科技股份有限公司 | 基于相似词的文本翻译方法、计算设备及计算机存储介质 |
CN112612905A (zh) * | 2020-12-28 | 2021-04-06 | 北京明略软件系统有限公司 | 基于Elasticsearch的数据处理方法、系统、计算机及可读存储介质 |
CN112632386A (zh) * | 2020-12-29 | 2021-04-09 | 广州视源电子科技股份有限公司 | 诗词推荐方法、装置、设备及存储介质 |
CN112989068B (zh) * | 2021-04-28 | 2022-04-19 | 新疆大学 | 针对唐诗知识的知识图谱构建方法及唐诗知识问答系统 |
CN113191148B (zh) * | 2021-04-30 | 2024-05-28 | 西安理工大学 | 一种基于半监督学习和聚类的轨道交通实体识别方法 |
CN114970536A (zh) * | 2022-06-22 | 2022-08-30 | 昆明理工大学 | 一种分词、词性标注和命名实体识别的联合词法分析方法 |
CN116070643B (zh) * | 2023-04-03 | 2023-08-15 | 武昌理工学院 | 一种古文到英文的固定风格翻译方法及系统 |
CN118093844A (zh) * | 2024-04-26 | 2024-05-28 | 山东鼎高信息技术有限公司 | 一种基于人工智能大模型的政务智能客服实现方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104573028A (zh) * | 2015-01-14 | 2015-04-29 | 百度在线网络技术(北京)有限公司 | 实现智能问答的方法和系统 |
WO2016199160A2 (en) * | 2015-06-12 | 2016-12-15 | Satyanarayana Krishnamurthy | Language processing and knowledge building system |
CN110188362A (zh) * | 2019-06-10 | 2019-08-30 | 北京百度网讯科技有限公司 | 文本处理方法及装置 |
CN110232180A (zh) * | 2019-06-06 | 2019-09-13 | 北京师范大学 | 一种面向古诗词测评的自动命题方法和系统 |
CN110347798A (zh) * | 2019-07-12 | 2019-10-18 | 之江实验室 | 一种基于自然语言生成技术的知识图谱辅助理解系统 |
CN110738061A (zh) * | 2019-10-17 | 2020-01-31 | 北京搜狐互联网信息服务有限公司 | 古诗词生成方法、装置、设备及存储介质 |
CN110929045A (zh) * | 2019-12-06 | 2020-03-27 | 苏州思必驰信息科技有限公司 | 诗歌-语义知识图谱的构建方法及系统 |
CN111400506A (zh) * | 2020-03-13 | 2020-07-10 | 苏州思必驰信息科技有限公司 | 古诗词命题方法及系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200117751A1 (en) * | 2018-10-10 | 2020-04-16 | Twinword Inc. | Context-aware computing apparatus and method of determining topic word in document using the same |
KR20200042739A (ko) * | 2018-10-16 | 2020-04-24 | 삼성전자주식회사 | 지식 그래프에 기초하여 콘텐트를 제공하는 시스템 및 방법 |
-
2020
- 2020-08-20 CN CN202010842031.7A patent/CN112101040B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104573028A (zh) * | 2015-01-14 | 2015-04-29 | 百度在线网络技术(北京)有限公司 | 实现智能问答的方法和系统 |
WO2016199160A2 (en) * | 2015-06-12 | 2016-12-15 | Satyanarayana Krishnamurthy | Language processing and knowledge building system |
CN110232180A (zh) * | 2019-06-06 | 2019-09-13 | 北京师范大学 | 一种面向古诗词测评的自动命题方法和系统 |
CN110188362A (zh) * | 2019-06-10 | 2019-08-30 | 北京百度网讯科技有限公司 | 文本处理方法及装置 |
CN110347798A (zh) * | 2019-07-12 | 2019-10-18 | 之江实验室 | 一种基于自然语言生成技术的知识图谱辅助理解系统 |
CN110738061A (zh) * | 2019-10-17 | 2020-01-31 | 北京搜狐互联网信息服务有限公司 | 古诗词生成方法、装置、设备及存储介质 |
CN110929045A (zh) * | 2019-12-06 | 2020-03-27 | 苏州思必驰信息科技有限公司 | 诗歌-语义知识图谱的构建方法及系统 |
CN111400506A (zh) * | 2020-03-13 | 2020-07-10 | 苏州思必驰信息科技有限公司 | 古诗词命题方法及系统 |
Non-Patent Citations (5)
Title |
---|
Automatically generatingrhythmic verse with neural networks;Jack Hopkins;Proceedings of the 55th Annual Meeting of the Association for Computational Linguistics;20170731;168-178 * |
GeneratingChinese classical poems with RNN encoder-decoder;Xiaoyuan Yi等;Proceedings of the 16th Chinese ComputationaLinguistics;20171007;211-223 * |
Representation Learning of Knowledge Graphs with Entity Descriptions;Ruobing Xie 等;Thirtieth AAAI Conference on Artificial Intelligence;20160305;第30卷(第1期);1-15 * |
基于知识图谱的唐代诗词平台构建;李畅;科技视界;20191205(第34期);131-132 * |
基于神经网络的集句诗自 动生成;梁健楠 等;中文信息学报;20190331;第33卷(第3期);126-135 * |
Also Published As
Publication number | Publication date |
---|---|
CN112101040A (zh) | 2020-12-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112101040B (zh) | 一种基于知识图谱的古代诗词语义检索方法 | |
CN111639171B (zh) | 一种知识图谱问答方法及装置 | |
Jung | Semantic vector learning for natural language understanding | |
CN112100356A (zh) | 一种基于相似性的知识库问答实体链接方法及系统 | |
CN111737496A (zh) | 一种电力设备故障知识图谱构建方法 | |
CN117076653B (zh) | 基于思维链及可视化提升上下文学习知识库问答方法 | |
CN115599902B (zh) | 一种基于知识图谱的油气百科问答方法及系统 | |
CN112818093A (zh) | 基于语义匹配的证据文档检索方法、系统及存储介质 | |
CN112101029B (zh) | 一种基于bert模型的高校导师推荐管理方法 | |
CN113239071B (zh) | 面向科技资源学科及研究主题信息的检索查询方法及系统 | |
CN112328800A (zh) | 自动生成编程规范问题答案的系统及方法 | |
CN114238653B (zh) | 一种编程教育知识图谱构建、补全与智能问答的方法 | |
Dong et al. | Imposing category trees onto word-embeddings using a geometric construction | |
CN115713072A (zh) | 一种基于提示学习和上下文感知的关系类别推断系统及方法 | |
CN113535897A (zh) | 一种基于句法关系和意见词分布的细粒度情感分析方法 | |
CN112463944A (zh) | 一种基于多模型融合的检索式智能问答方法及装置 | |
CN113553400A (zh) | 一种企业知识图谱实体链接模型的构建方法及装置 | |
CN117807482B (zh) | 海关报关单的分类方法、装置、设备及存储介质 | |
CN111666374A (zh) | 一种在深度语言模型中融入额外知识信息的方法 | |
Ribeiro et al. | Discovering IMRaD structure with different classifiers | |
CN111680264A (zh) | 一种多文档阅读理解方法 | |
Addepalli et al. | A proposed framework for measuring customer satisfaction and product recommendation for ecommerce | |
CN113076758A (zh) | 一种面向任务型对话的多域请求式意图识别方法 | |
CN111858860B (zh) | 搜索信息处理方法及系统、服务器、计算机可读介质 | |
CN115795060A (zh) | 一种基于知识增强的实体对齐方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |