自己开发或整合的一系列light库之间的架构组织关系如图所示:
整体架构
如上图所示,整个light系列库之间的组织架构共分为:
- 工具层
- lightSpider
- lightUtils
- lightDict
- 其他light库
- 其他工具库
- 算法层
- lightNLP
- lightKG
- 通用神经网络模型算法
- 其他NLP框架
- 其他KG框架
- 业务层
- lightText
- lightKB
- 其他相关业务
- 界面层
- 浏览器前端
整个架构的中心都是围绕着自然语言处理和知识图谱两个大的方向。目的是搭一个比较通用的架子,然后可以在上面展开一些尝试性、探索性的实验和业务,根本上是作为自己想法的舞台。
工具层
工具层包括lightSpider
、lightUtils
、lightDict
、其他light库以及其他工具库(如NLTK)。
其中lightSpider
是用来获取网上的知识(以网上各网站的公开语料)。lightUtils
则是一些较通用的工具类库,包含了比如说日志打印、获取系统可用tcp端口等功能。lightDict
则包含了一些在网上搜集到的中文的字典词典资料,并且构建了一个lib以方便使用。其他light库则视以后需求增加。
算法层
算法层包括lightNLP
、lightKG
、其他NLP框架(比如说fastNLP
)、其他KG框架(比如说OpenNRE
)以及其他通用神经网络模型算法,包括但不限于强化学习、对抗学习、终生学习等。
业务层
业务层构建于算法层之上包括各种知识图谱任务和自然语言处理技术,比如关键词抽取、文本摘要、文本分类、命名实体识别、信息抽取、文本生成、实体链接、本体分类与构建、知识存储等功能,会用到各种算法知识和技术,包括基于深度学习的、基于机器学习的、基于规则的,基于监督学习的、基于弱监督学习的、基于无监督学习的等等。
界面层(用户层)
用户层则主要考虑采用Vue+Flask等技术,在可视化方面主要采用2D层面,但在一些本体与事件展示时更倾向于使用3D效果。