软件系统设计方案--针对领域知识的中文知识图谱自动化构建

1.项目概述

  此方案中,通过自定义的网络爬虫,将原始百科数据的词条属性以及相关的文本信息不间断抓取到本地系统中,并整理成带扩展属性的三元组形式。后端系统自动通过图数据库对三元组数据进行导入更新,转换为信息丰富的知识图谱系统,在前端为用户提供基于知识图谱的应用服务。

  目前金融领域经常会有对客户背景的核查,但核查员也很难对客户熟知的领域都足够了解,知识图谱可以帮助自动生成问题和参考答案。

 

2.系统架构

系统采用MVC架构,MVC包括模型层(Model)、视图层(View)、控制器层(Controller)

Model代表一个存取数据的对象及其数据模型。

View代表模型包含的数据的表达方式,一般表达为可视化的界面接口。

Controller作用于模型和视图上,控制数据流向模型对象,并在数据变化时更新视图。控制器可以使视图与模型分离开解耦合。

 

三、接口API

接口名称 接口地址 请求方式 请求参数 响应信息
用户注册 /user/register POST username, password 注册成功/失败的信息
用户登录 /user/login POST username, password 登录成功/失败的信息
选择领域 /filed POST 所选领域 选择成功/失败的信息
获取问题 /question GET   问题的相关内容
回答问题 /answer PUT 所选答案 提交是否成功
获取答案 /get_answer POST   参考答案

 

 

 

 

 

 

 

 

 

四、软件系统概念原型的不同视图

4.1 分解视图

分解是构建软件架构模型的关键步骤,分解视图也是描述软件架构模型的关键视图,一般分解视图呈现为较为明晰的分解结构(breakdown structure)特点。分解视图用软件模块勾划出系统结构,往往会通过不同抽象层级的软件模块形成层次化的结构。

 

4.2 依赖视图

依赖视图展现了软件模块之间的依赖关系。比如一个软件模块A调用了另一个软件模块B,那么我们说软件模块A直接依赖软件模块B。如果一个软件模块依赖另一个软件模块产生的数据,那么这两个软件模块也具有一定的依赖关系。

4.3 泛化视图

泛化视图展现了软件模块之间的一般化或具体化的关系,典型的例子就是面向对象分析和设计方法中类之间的继承关系。值得注意的是,采用对象组合替代继承关系,并不会改变类之间的泛化特征。因此泛化是指软件模块之间的一般化或具体化的关系,不能局限于继承概念的应用。

4.4 执行视图

执行视图展示了系统运行时的时序结构特点,比如流程图、时序图等。执行视图中的每一个执行实体,一般称为组件(Component),都是不同于其他组件的执行实体。如果有相同或相似的执行实体那么就把它们合并成一个。

4.5 实现视图

实现视图是描述软件架构与源文件之间的映射关系。比如软件架构的静态结构以包图或设计类图的方式来描述,但是这些包和类都是在哪些目录的哪些源文件中具体实现的呢?一般我们通过目录和源文件的命名来对应软件架构中的包、类等静态结构单元,这样典型的实现视图就可以由软件项目的源文件目录树来呈现。

|——src
| |——dbprocess                数据库处理相关操作
| |——extract                  知识抽取工具
| |——server&client            问答系统
| |——spider                   数据爬取工具
|——.gitignore
|——LICENSE
|——README.md

 

4.6 部署视图

部署视图是将执行实体和计算机资源建立映射关系。这里的执行实体的粒度要与所部署的计算机资源相匹配,比如以进程作为执行实体那么对应的计算机资源就是主机,这时应该描述进程对应主机所组成的网络拓扑结构,这样可以清晰地呈现进程间的网络通信和部署环境的网络结构特点。当然也可以用细粒度的执行实体对应处理器、存储器等。

4.7 工作任务分配视图

工作分配视图将系统分解成可独立完成的工作任务,以便分配给各项目团队和成员。工作分配视图有利于跟踪不同项目团队和成员的工作任务的进度,也有利于在个项目团队和成员之间合理地分配和调整项目资源,甚至在项目计划阶段工作分配视图对于进度规划、项目评估和经费预算都能起到有益的作用。

五、数据库设计

使用图数据库neo4j存储知识图谱

 

六、运行环境和技术选型

python:爬取数据。

 

standford corenlp:斯坦福大学开发的自然语言处理工具套件,用于处理爬取的数据,构建知识图谱

neo4j:图数据库,用于存储知识图谱

使用socket编程,实现服务端和客户端的通信

pyqt5:制作一个小型的图形界面,用于展示问题和答案

 

 

七、系统概念原型的核心工作机制

客户通过注册和登录进入界面

客户选择自己的领域,自动生成问题。客户回答问题后会给出参考答案。

 

posted @ 2020-12-30 22:03  千株松  阅读(760)  评论(0编辑  收藏  举报