基于学者网信息和知识图谱的智能问答系统
知识图谱 之 python 操作neo4j (导入CSV操作)
知识图谱之python操作Neo4j导入CSV构建复杂的知识图谱
基于python的Django框架和Neo4j的知识图谱可视化
大家可以先看看这几篇文章 在这里面我已经把我们需要的知识图谱给构建好了。然后就是我们的问答环节。因为我们构建的知识图谱就是基于学者网上面的学者信息,所以我们的问答系统也只能回答关于学者网上学者的信息问题。而我们构建的图谱获取的信息有姓名,学位,研究方向,所在学校这四类信息。所以我们只要能从用户所问的问题中提取到关键词,那么就能根据关键词获取用户想要的信息。
例如:在用户的问题里面出现学者名字的时候我们会获取到这个信息,通过neo4j图数据库查询这个学者是否在我们的数据库中。再根据后面出现的关键词确定用户想要查询的是哪方面的信息,例如:陈小波是那个学校的老师。这句话的关键词是 :陈小波和学校。如果有这个人则返回他所在学校,如果没有则输出查无此人。
姓名,学校,学历,学位,研究方向这些都是关键词,只要我们能从用户的问题中准确的获取到这些关键词,那我们就能根据关键词通过数据库获取用户想要了解的信息并返回给用户。
怎么获取关键词就成为了重点,这次我们用到了jieba分词器,它不仅可以帮我们分词还可以帮我们标注词性,但需要注意的是结巴分词分的并不是很准确,例如华南师范大学 就会被分割成 华南 和师范大学两个词。这时候我们就应该自己创建一个分词库定义一些自己的分词方法。例如:我会把 研究 学校 学位 这类词的词性自己设定为 relation。把我们需要的关键词单独设置为一种词性,当用户的问题中有这些关键词的时候我们就很容易的提取出来。
import jieba.posseg as pseg #词性标注
import jieba
jieba.load_userdict('E:\\python\\基于学者网信息的知识图谱问答系统\\fenci.txt')
def ner(s):words = pseg.cut(s)d = {}for word, flag in words: #结巴分词 把我们的关键词提取处理if flag == 'nr':d['nr'] = wordif flag == 'relation':d['relation'] = wordif flag == 'major':d['major'] = wordif flag == 'nt':d['nt'] = word#print(word,flag)k = []for i in d.keys():k.append(i)if len(k) == 0: #一个关键词都没有 说明问的问题可能与学者网的学者无关print('对不起没有查询到你要的信息')if len(k) == 1: #只有一个关键词 可能是姓名 可能是 研究方向 或者是学校print(d[k[0]])if 'nr' in k and 'nt' in k: #有两个关键字print(d['nr'], d['nt'])if 'nr' in k and 'major' in k:print(d['nr'], d['major'])if 'nr' in k and 'relation' in k:print(d['nr'], d['relation'])if 'nt' in k and 'major' in k:print(d['nt'], d['major'])if 'relation' in k and 'major' in k:print(d['relation'], d['major'])
这是我列举出来的部分情况,根据不同的关键词,我们很容易的能反推出用户想要问什么问题。
例如:用户只输入中只有知识图谱一个关键词 就是想知道有哪些人研究它
用户输入中有姓名和学校就是像知道该学者是否是这个学校的
我们根据不同的关键词把从我们的数据库中获取不同的信息并返回给用户。
由于是基于学者网的问答系统,所以它能询问的问题也就是哪几类,只要我们认真的梳理清楚各关键词之间的联系,完全可以把该问答系统做的很成功。准确率也会很高。
基于学者网信息和知识图谱的智能问答系统相关推荐
- mysql实现知识图谱_基于电影知识图谱的智能问答系统学习记录
学习了"谓之小一"大佬的基于电影知识图谱的智能问答系统,做个记录.地址如下:https://github.com/weizhixiaoyi/DouBan-KGQA 一.知识图谱构建 ...
- 电影知识图谱的智能问答系统在本机跑通实验及遇到问题的解决
**本文是一份大作业,目的是跑通博主appleyk的基于电影知识图谱的智能问答系统,相关信息可以去 https://blog.csdn.net/Appleyk/article/details/8042 ...
- 基于neo4j知识图谱的智能问答系统
项目介绍 本项目采用neo4j作为数据库,存储了知识题库.用户可以根据提示深入去了解问题.属于一款简易版的智能问答系统. 服务端使用技术:python+django框架 前台使用:html+css+j ...
- 论文浅尝 | DSKReG:基于关系GNN的推荐知识图谱可微抽样
笔记整理:李爽,天津大学硕士 链接:https://dl.acm.org/doi/pdf/10.1145/3459637.3482092 动机 在信息爆炸的时代,推荐系统被广泛研究和应用,以发现用户的 ...
- 论文浅尝 | 基于超平面的时间感知知识图谱嵌入
链接:http://talukdar.net/papers/emnlp2018_HyTE.pdf 本文主要关注 KG embedding 中三元组成立的时间有效性问题,比如三元组(Cristiano ...
- 基于Neo4j中医方剂药材知识图谱大数据可视化分析系统的设计与开发
基于Neo4j中医方剂药材知识图谱大数据可视化分析系统的设计与开发 设计背景 这个系统的开发初衷是笔者希望通过这个系统来学习一下Neo4j的相关技术,包括与python.java的对接.可视化等方面, ...
- 基于Python+Neo4j+民航数据 ,我搭建了一个知识图谱的自动问答系统
最近耗时一周,我基于Python+Neo4j ,搭建了一个民航业知识图谱的自动问答系统. 文章目录 环境 运行 1.项目结构 2.数据组织 3.问题预处理 4.问题分类 5.Web APP 源码&am ...
- NLP精选10个实现项目推荐-涉及预训练Bert、知识图谱、智能问答、机器翻译、对话等...
自然语言处理技术近几年发展非常快,像BERT.GPT-3.图神经网络.知识图谱等技术被大量应用于项目实践中. 今年大厂的NLP面试中对项目方面的考察深度也随之提升了很多,经常会被面试官揪着细节一步一步 ...
- 知识图谱在智能搜索领域的应用
在科技的推动下,每一个领域都在不断的进步.而搜索引擎领域,也在用户需求和人工智能的推动下,逐渐革新. 传统的搜索引擎,在一定程度上解决了用户从互联网中获取信息的难题,但由于它们是基于关键词或字符串的, ...
最新文章
- 有6个候选人,100个选民,每个选民选择一个侯选人投票;从键盘输入每个选民选择的候选人名,统计并输出6个候选人的票数。java,c++实现
- linux目录结构简析
- c#基础知识第十一节
- Unity3D Editor 扩展
- python设置全局变量失败_Python全局变量与global关键字常见错误解决方案
- 菜品三级分类_分类器的惊人替代品
- Java反射机制的使用方法
- 前端性能优化的重要方案:图片懒加载
- 《BI那点儿事》数据流转换——派生列
- 11 个非常受欢迎的 JavaScript 动画库
- Android Sqlite数据库操作
- C#和java和android中的NetWorkAdapter,httpRequest,WebView,json,xml
- JavaScript内置的Math对象(附实例)
- Navicat Premium 15注册出现“rsa public key not find”
- 【django】短信验证码接口设计、互亿无线短信平台、后端逻辑、前端逻辑【16】
- QT界面添加背景图片
- Java等额本息算法实现
- idm下载速度只有几十kb idm下载速度慢解决办法
- 折腾家里的龟速网络有感
- 一键u盘装win7系统教程图解