SmartKG是一款轻量级知识图谱可视化+智能对话框架。它能够根据用户输入的实体和关系数据自动生成知识图谱,并提供图谱可视化及基于图谱的智能对话机器人。
SmartKG地址:https://github.com/microsoft/smartkg
pySmartKG地址:https://github.com/microsoft/SmartKG/tree/master/PySmartKG
更加详细的安装、编译和使用方法请见:https://github.com/microsoft/SmartKG/blob/master/SmartKG_Spec.pdf
一、SmartKG 定义
智能知识图谱SmartKG是一个以人工智能技术为核心的知识图谱解决方案,旨在将各类知识数据集整合、融合,以链式结构描述现实世界中各种实体及其关系,最终构建成一个庞大、复杂、具有可扩展性的知识图谱系统。它可以应用于自然语言处理(NLP)、大数据分析挖掘(Big Data Mining)、智能问答(Intelligent Q&A)、机器人智能对话(Robot Intelligence Dialogue)等领域。
二、SmartKG 技术架构
SmartKG 是基于DAG(有向无环图)模型的知识图谱系统,其技术架构主要包括以下几个技术组件:
1. 数据源组件
数据源组件是SmartKG的数据方面的基础支撑,提供对不同类型的数据源进行爬取、清洗、融合的函数库。支持的数据源包括但不限于关系数据库(MySQL、Oracle、SQL Server等)、日志文件、本地文件系统、Web站点等。
2. 实体识别组件
实体识别组件是SmartKG将实际物体进行概括的基础,需要给出实体名称、类型、别名、ID等属性,并进行关系映射。SmartKG采用的实体识别算法包括字典匹配、规则匹配、神经网络等。
3. 关系抽取组件
关系抽取组件主要从语料中抽取出实体之间的关系及属性,并提供丰富的特征表达。SmartKG采用的关系抽取算法包括跨度识别、模板匹配、基于知识库的推理等。
4. 知识表示组件
知识表示组件主要将知识图谱中的实体和关系,使用符号逻辑或知识图、图形、矩阵等方式进行表示。SmartKG采用的知识表示方式包括向量(Vector)、矩阵(Matrix)等。
三、SmartKG应用案例
SmartKG已经成功应用于多个领域,包括金融、医疗、教育、汽车等等。以下是其中的一些代表性案例。
1. 智能问答(Intelligent Q&A)
'''
代码示例:
'''
import smartkg
# 问句
query = "苹果公司的创始人是谁?"
# 初始化SmartKG,加载图谱
smartkg = smartkg.SmartKG()
smartkg.load()
# 执行查询
result = smartkg.query(query)
# 输出结果
print(result)
'''
输出示例:
['Steve Jobs']
'''
2. 大数据挖掘(Big Data Mining)
'''
代码示例:
'''
import smartkg
# 初始化SmartKG,加载图谱
smartkg = smartkg.SmartKG()
smartkg.load()
# 对知识图谱进行属性统计(各种实体类型的数量)
result = smartkg.data_mining()
# 输出结果
for item in result:
print(item)
'''
输出示例:
('Person', 3150)
('Company', 1289)
('Film', 515)
('Book', 390)
('TVSeries', 237)
...
'''
3. 智能推荐(Intelligent Recommendation)
'''
代码示例:
'''
import smartkg
# 用户画像
user_profile = {'gender': 'male', 'age': 30, 'interests': ['影视剧', '游戏']}
# 初始化SmartKG,加载图谱
smartkg = smartkg.SmartKG()
smartkg.load()
# 根据用户画像和知识图谱中的实体属性,执行推荐
result = smartkg.recommend(user_profile)
# 输出结果
print(result)
'''
输出示例:
[('后浪', 0.75), ('宇宙时空', 0.62), ('万古仙穹', 0.57), ('鬼吹灯', 0.35), ('大话西游', 0.23)]
'''
四、SmartKG 的未来展望
SmartKG正在不断完善其数据集融合、关系推断、可视化等方面的能力,同时也在不断拓展适用领域,未来将会有更多应用场景。