研究背景及意义
智能问答是计算机与人类以自然语言的形式进行交流的一种方式,是人工智能研究的一个分支。
知识图谱本质上是一种语义网络,其结点代表实体(entity)或者概念(concept),边代表实体/概念之间的各种语义关系。知识图谱的出现是信息技术发展、时代发展的必然结果。语义的本质是关联。只有基于语义的数据互联才能发挥数据集成的非线性效应,才能获取大数据的特有语义。
近年来,基于知识图谱的问答系统则成为学术界和工业界的研究和应用热点方向。相较于纯文本,知识图谱在问答系统中具有以下优势。这些优势都促使本文使用知识图谱来作为问答系统的知识来源。
-数据关联度:语义理解智能化程度问题语义理解程度是问答系统的核心指标。在知识图谱中,所有知识点被具有语义信息的边所关联。从问句到知识图谱的知识点的匹配关联过程中,可以用到大量其关联结点的关联信息。这种关联信息无疑更为智能化的语义理解提供了条件。
-数据精度:回答准确率知识图谱的知识来自专业人士标注,或者专业数据库的格式化抓取,这保证了数据的高准确率。
-数据结构化:检索效率知识图谱的结构化组织形式,为计算机的快速知识检索提供了格式支持。
本系统实现目标和内容
本文针对实验室这一关系领域构建知识图谱,基于Neo4j(非关系型数据库)建立学生、老师、项目三个实体的关系网络,使用Python AIML搭建智能问答机器人开发环境,将二者集成,通过接入微信可视化。
最终实现的主要功能是:通过微信向个人(或公众号)账号发送人物、关系查询信息,机器人能够自动查询后回答。
系统设计框图
知识图谱设计
Neo4j 是一个无框架数据库,它将数据作为顶点和边存储,适合知识图谱的存储结构。它存储和使用的数据自始至终都是使用原生的图结构数据进行处理的,不像有些图数据库,只是在计算处理时使用了图结构数据,而在存储时还将数据保存在关系型数据库中。并且它性能高;存储读写速度快;稳定性好;作为较早的一批图形数据库之一,文档和各种技术博客较多。
Neo4j 的查询语言 Cypher 是一种对图形声明查询的语言,使用图形模式匹配作为主要的机制来处理图形数据选择。Neo4j 提供Python的基本操作API 接口,方便融合到整个系统当中。
抽取的实体:学生、老师、项目
学生与老师之间存在“师生”关系;学生与项目存在“负责人”、“成员”等关系;老师与项目存在“负责人”、“成员”等关系。
知识存储结构
智能问答机器人
利用Python AIML 人工智能标记语言建立机器人问答语料库。
语料库建立
微信接入可视化
微信团队给开发者提供了一套标准的接口,为开发者的开发工作提供了很大的便利,我们只需要学习如何通过开放接口获取用户查询的消息,以及如何发送给用户消息这两个部分。本系统正是利用微信公众平台开发的这些优势,只专注于智能问答系统的实现过程,大大减少了网络通信和交互界面设计的工作量,因此选择它作为问答这一互动过程的交流渠道。
微信开发机制
实现效果图
后记
由于数据可达性,选择的是实验室的知识图谱,还可以扩展到任一领域,第一次写作,做得不好希望大家提出意见,源码见个人github
博客地址:https://veronica1997.github.io/