糖尿病康复,内容丰富有趣,生活中的好帮手!
糖尿病康复 > 语义计算 知识图谱与智能问答(医药常识问答实例)

语义计算 知识图谱与智能问答(医药常识问答实例)

时间:2024-04-13 11:52:52

相关推荐

语义计算 知识图谱与智能问答(医药常识问答实例)

语义计算、知识图谱与智能问答(实例)

本文,以医药知识图谱“神机医药”APP为例,简述如何通过“语义计算”构建知识图谱,利用知识图谱进行“智能问答”服务。

“神机医药”APP搜集了15606条“药品”信息,14172条“疾病”信息,5756条“症状”信息,12万条以上的“问答”信息,通过“语义计算”确定知识之间的相关性、相关度,自动构建“医药知识图谱”,动态解答医药常识问题。

在介绍“语义计算”自动构建“医药知识图谱”,动态解答医药常识问题之前,先讨论一些相关概念。

一、知识图谱相关概念

1、知识图谱与智能问答

Google公司于提出知识图谱,目的是根据知识之间的关系、构建知识结构,在关键词搜索基础上,利用知识图谱自动搜索相关知识。

从广义上看,搜索引擎也是解答问题的一种形式,加入知识图谱后,可通过“知识图谱”寻找相关答案。知识图谱应用于智能问答的关键在于“语义计算”,具体为三点:

第一、 构建知识图谱

在构建知识图谱时,通过“语义计算”确定说明知识文本的含义;

第二、 理解问题

回答问题的前提是理解问题,通过“语义计算”确定问题的含义;

第三、 解答问题

在解答问题时,通过“语义计算”与知识图谱中的知识进行最优匹配。

2、知识图谱是“图”吗?

从字面上看,知识图谱是图,是知识结构图。对于少量知识,用图来表示知识结构更为清晰,容易理解,但Google是互联网搜索引擎公司,网页数量巨大,无法在一个屏幕上用图来表示知识结构,显然,简单地将“知识图谱”理解为“图”或“知识可视化”是片面的,Google 公司提出“知识图谱”目的是构建搜索引擎,而不是“知识可视化”,显示知识结构图。

3、知识图谱表达的是“知识结构关系”吗?

通常,所谓“图谱”,是用图的形式来表示某种事物关系结构,如“家谱”,表示家族关系结构。因此,知识图谱是“知识关系结构”,用图来表示为,由“节点”和“连线”(边)组成,“节点”为“知识”,“连线”(边)为“知识”之间的关系。

4、什么是知识图谱中的“知识”?

既然知识图谱表达的是“知识结构关系”,那么,什么是“知识”?

对汉字而言,一个“词”、甚至是一个“字”都有特定含义,都是“知识”。那么,一个“词”或一个“字”就是知识图谱中的“知识”吗?显然不是,因为,“字”或“词”存在多义性,在不同的语境下含义不同,仅看一个“字”或“词”不知道其具体含义是什么?必须用一段文字进行说明,配合一定的语境才可确定其具体含义。因此,从自然语言处理NLP来看,“知识”是一段文本说明的含义,对于互联网搜索引擎来说,是URL页面记载内容说明的含义 。

5、知识图谱是“语义网络”吗?

所谓“语义”是语言的含义,从自然语言处理NLP角度看,“知识”是一段自然语言文本所表达的含义。即便是数学,其中用数学符号语言(公式)来定义数学模型,但离开文字说明,人们也很难理解其含义。因此,对于计算机处理而言,“知识”是一段文本表达的含义,也可以说是“语义”。

用二维平面图来表示,知识图谱是由节点和连线做组成的网络图:

一个“知识”是一个节点,可能与其他很多“知识”相关,在图上表现为有很多连接的边,由此形成复杂的连接网络。

因为,“知识”是一段文本说明的含义,所以说,是知识图谱是“语义网络”,是将诸多说明“知识”的文本进行“语义计算”后,组成的“语义网络”。

6、如何运用“语义计算”进行“知识节点”关联?

构建知识图谱的关键在于,如何确定知识之间的关联?因为,“节点”之间的“连线”表示为“知识”与“知识”之间存在关系,但是什么关系?关联度有多大?如何计算?这是构建知识图谱的重点。

(1)定性关系

在知识图谱中,“知识”之间的“关系”可以是一个简单的定性说明,仅仅是一个文本描述,如:父子关系、夫妻关系、业务关系、隶属关系等。在计算上,这样的关系是0,1二值关系,即为是否存在关系?什么关系?无需计算。

(2)定量关系

在自然界很多情况,一个“知识”与其他很多“知识”都有关系,关系有强弱之分。简单的0,1关系不足以表达关系的强弱,需要更详细的定量分析,计算“相关度”(或关联度)。对搜索引擎来说,“相关度”也就是搜索结果排序Page Rank;对“知识图谱搜索引擎”来说,“相关度”需要“语义计算”,也就是计算语言含义的相似度,因此,定量分析为根据“语义”的相似度,以此来确定知识之间的定量关系。

定义:

(1)设:K(X)为一个知识“节点”,是一段说明“知识”的文本;

(2)设:KR(X,Y)为知识 X与知识Y之间的关联度,在图中,为“知识”节点之间连线(边)的计算权重。

(3)设:相关度KR(X,Y)是一个0-1之间的数,0≤KR(X,Y)≤1=100%。

若,KR(X,Y)=0, 则,两个“知识”没有关系;

若,KR(X,Y)= 100%,则,两个“知识”相等;

若,KR(X,Y)≥80%, 则,两个“知识”相近,在具体应用时可以设定阀值,根据应用情况来设置。

虽然K(X)知识“节点”是一段说明“知识”的文本,但不能简单地用字符串比较来计算关联度KR(X,Y)。因为,文本的长度也不同,证人语言中有很多同义词或意思相近的词,因此,虽然文本长度不同、用词不同,但说明的内容相同或相近,所以,简单的字符串比较无法确定知识的相关性,而“内容相似度计算”可以解决“语义计算”问题,计算知识之间的关联度KR(X,Y)。

7、“知识本体”、“知识实体(实例)”、半结构化数据

(1)知识本体

所谓“知识本体”相当于关系数据库RDB中的表结构,是记录知识的结构,也就是用X维特征来描述“知识”。

(2)知识实体(实例)

所谓“知识实例”相当于关系数据库RDB中的记录,是一个独立的知识记录。

(3)半结构化数据

虽然知识可以存储为格式化记录,但知识记录并非关系数据库RDB中的结构化数据。因为,虽然“知识记录”有结构,但字段存放的是文本说明的内容,无法用字符串比较进行计算,无法用结构化查询语言SQL查询,因此,“知识记录”虽然有结构,但不是“结构化数据”,而是“半结构化数据”。

二、“语义计算”自动构建“知识图谱”

以下用一个实例来说明,如何利用“语义计算”来自动构建医药知识图谱,该实例可在华为应用商店,搜索“神机医药”进行下载。

在“神机医药”APP中,有“药品”和“病症”两类知识,在互联网上爬网页,每个“药品”、“病症”都是一个知识K(X),“药品”和“病症”存在以下4种关系:

“药品”对应的“病症”(药品治疗的病症);

“病症”对应的“药品”(病症用什么药品治疗);

“药品”相关的“药品”(可以治疗相同或相近疾病的药品);

“病症”相关的“病症”(相似或相关的病症);

通过“语义计算”,得到上述4种关系的相关度KR(X,Y),建立索引,由此完成自动构建 “医药知识图谱搜索引擎”,加上手机交互界面,形成“神机医药”APP。以下是具体步骤和方法。

1、抽取知识本体(实例),形成知识记录

构建知识图谱第一步是,定义“知识本体”,也就是根据知识的特点,定义存储知识记录的格式。

对同一类的知识K(X),可用多个维度来描述,在关系数据库RDB中也就是记录的字段变量:

例如,对“疾病”可有:症状、检验方法、治疗手段等字段;

例如,对“药品”可有:适应病症、用法、成分、副作用、禁忌、注意事项等。

可见,对于一类的知识本体,可用统一的格式来描述,形成格式化记录(知识实例),不同类型的知识,有不同格式的记录,在知识图谱中,每个K(X)知识节点,都是一个独立的知识记录。

2、知识记录

“神机医药”APP通过对自由格式网页处理,得到半结构化知识记录,其中包括两种知识本体:“药品”和“疾病”,有两种格式的知识记录,每个都是一条独立的“知识记录”。

3、计算相关性

用“内容相似度计算”,对“知识记录”进行相关性计算,得到“知识记录”之间的相关度KR(X,Y),也是“节点”之间的连接权重,是0 – 100%之间的小数。

4、非对称性

相关度KR(X,Y)具有非对称性,KR(X,Y)≠ KR(Y,X)。

也就是说,知识K(X)对知识K(Y)的关联度,与知识K(Y)对知识K(X)的关联度不同,需要单独计算。

5、构建“医药知识图谱”

通过“内容相似度计算”,得到“药品”、“疾病”知识记录的相关度,由此得到关系结构图(知识图谱)。

将关系结构图保存,组成倒排序索引,构成“医药知识图谱”的关系表。

6、知识网络KN

每个知识K(X),都可能与很多其他知识K(Y)相关,相关度KR(X,Y)>0的知识形成“知识网络”KN(Knowledge Network)。

例如:在“图-3”中,有4个知识网络KN(i),i=1,2,3,4:

知识1、知识3、知识7,具有相关性, KN(1) = {知识1,知识3,知识7};

知识2、知识4、知识5,具有相关性, KN(2) = {知识2,知识4,知识5};

知识3、知识8, 具有相关性, KN(3) = {知识3,知识8};

知识4、知识6、知识7,具有相关性, KN(4) = {知识4,知识6,知识7}。

7、知识网络桥KNB

知识图谱最重要的用途是相似内容“推荐”,可根据知识之间的相关性进行智能化“推荐”,但这只能在一个“知识网络”KN(i)中进行,因为,只有在一个“知识网络”KN(i)中的知识节点具有“连线”,无法“推荐”其他“知识网络”KN(j)中的知识,由此形成了“知识壁垒”。

如何建立不同“知识网络”KN(i,j)之间的通道,打通“知识壁垒”?将不同的知识体系融会贯通,这就需要在各“知识网络”KN寻找通道。具体方法如下:

在各“知识网络”KN中,寻找相同的“知识”K(X),得到交集:

“知识交集”= KN(i)∩ KN( j ),

“知识交集”为不同“知识网络”KN( i - j )之间的连接“桥”,称之为“知识网络桥”KNB(Knowledge Network Bridge),KNB连接各个“知识网络”。

例如:在“图-3”中:

知识1、知识3、知识7,具有相关性, KN(1) = {知识1,知识3,知识7};

知识2、知识4、知识5,具有相关性, KN(2) = {知识2,知识4,知识5};

知识3、知识8, 具有相关性, KN(3) = {知识3,知识8};

知识4、知识6、知识7,具有相关性, KN(4) = {知识4,知识6,知识7}。

KN 1与KN 3存在交集KN 1 ∩ KN 3 = {“知识3”},KN 1与KN 3通过“知识3”进行连接,“知识3”是KN 1与KN 3连接的“桥”KNB(1-3);

KN 2与KN 4存在交集KN 2 ∩ KN 4 = {“知识4”},KN 2与KN 4通过“知识4”进行连接,“知识4”是KN 2与KN 4连接的“桥”KNB(2-4)。

8、知识融合

“知识网络桥”KNB连接不同的“知识”体系,因此,“知识网络桥”KNB可以打破“知识壁垒”,使不同体系的知识相互融会贯通。

科技领域很多重要进步,正是因为将其他“知识体系”的引入到本“知识体系”,推动技术进步。

9、知识系统组成知识神经元网络

首先,将众多分散、独立的“知识”连接起来,组成相互联通的“知识网络”KN。

其次,将众多的“知识网络”KN用“知识网络桥”KNB连接起来,组成“知识网络系统”KNS(Knowledge Network System),将分散的知识有机地连接起来,便于相关主题知识聚类和自动搜索。

在“知识网络系统”KNS中,每个问题的“解”都是一组“知识集合”组成的“知识网络”KN。

例如在通过“语义计算”,确定连接关系如下:

{ 药品1,药品2,病症3,病症5}关联,KN 1={ 药品1,药品2,病症3,病症5};

{ 药品2,病症1、病症2、病症3}关联,KN 2={ 药品2,病症1,病症2,病症3}。

在KN 1、KN 2中,都存在“药品2”和“病症3”,交集:

KN 1 ∩ KN 2 = {“药品2”,“病症3”},

KN 1与KN 2通过“药品2”、“病症3”进行关联,KNB={药品2、病症3}。

从KN 1与KN 2的关联可知,在看似相互独立的知识体系之间,存在复杂的关联。人类的知识系统是由众多相互连通的“知识网络”组成得多回路复杂的知识系统,由此构成“知识神经元网络”。而恰恰正是因为在独立的知识之间存在复杂的关联,因此,普通人不经过长期的强化训练,很难形成解决具体问题的系统知识。

三、知识图谱搜索

“神机医药”APP是基于“语义计算”构建的知识图谱搜索引擎,在网上搜集了:

15606条“药品”信息;

14172条“疾病”信息;

5756条“症状”信息;

12万条“问答”信息。

。由于爬取网页信息本身不规范,信息不规范,因此,没有进行完全的规范“知识本体”设计(知识格式化)。

1、“语义计算”

构建知识图谱的第一步是“语义计算”。

(1)“药品”与“疾病”相关性语义计算

通过对15606条“药品”说明书文本“语义计算”,抽取对应“疾病”的语义;再与14172条“疾病”信息文本、5756条“症状”信息文本进行“语义计算”,得到:

15606 X (14172 + 5756)个“药品”与“疾病”、“症状”的相关度。

(2)“药品”与“药品”相关性语义计算

通过对15606 条“药品”说明书文本的“语义计算”,抽取对应“疾病”的“语义”,分别与其他“药品”信息进行“语义计算”,得到:

15606 X(15606 -1)个“药品”的相关度。

(3)“疾病”与“疾病”相关性语义计算

通过对14172条“疾病”信息、5756条“症状”信息进行“语义计算”,得到:

(14172 + 5756)X (14172 + 5756 – 1 )个“疾病”的相关度。

(4)“问答”与“药品”、“疾病”、“疾病”相关性语义计算

通过对12万条“问答”,与14172条“疾病”信息、15606条“药品”信息、5756条“症状”信息进行“语义计算”,得到:

12万X(14172+15606+5756)个“问答”与“药品”、“疾病”、“疾病”的相关度。

2、构建“语义网络”

通过上述“语义计算”,得到“药品与疾病”、“药品与药品”、“疾病与疾病”、“问答与药品、疾病”相关度,由此构成医药知识相关“语义网络”。

3、医药知识图谱“神机医药”APP

在华为应用商店,搜索“神机医药”进行下载APP,安装后,在手机桌面出现“神机医药”APP图标,点击图标,进入“神机医药”APP。

点击搜索框,进入搜索页面,

选择“药品”或“疾病”,在搜索框内输入查询的关键词(或选择历史搜索关键词),搜索包含关键词的“药品”或“疾病”。

如,选择“药品”,在搜索框内输入“干眼症”, 搜索出“知识记录”文本中,包含“干眼症”的药品,

如,选择“卡波姆滴眼液”,屏幕上显示详细信息,

上面显示“相关药品”(关联药品)、“相关疾病”(该药品治疗的疾病)。这是通过“语义计算”得到“药品”与“药品”之间的相关性,确定了“卡波姆滴眼液”与其他“药品”的相关度。

点击“相关药品”,

屏幕上出现与其相关的药品,其中,“复方门冬维甘滴眼液”、“七叶洋地黄双苔滴眼液”、“维生素C”、“鱼肝油”等,都是与“卡波姆滴眼液”治疗病症相关的药品。

点击“相关问答”,屏幕出现:

四、智能问答

1、目前的“智能问答”

目前在各大“电商”网站上看到的所谓“智能问答”,其实没有任何“智能”,都是模式化问答。事先准备“问题”和匹配的“答案”,用户选择事先准备好的问题,计算机给出实现准备好的答案,没有任何智能而言。

2、“语义计算 - 知识图谱”与“智能问答”

“语义计算 – 知识图谱”不同于各大“电商”网站上的自动问答。从“神机医药”APP可以看出,与现在各大“电商”网站上所谓的“智能问答”比较,存在以下区别:

(1)问题

目前,各大“电商”网站上所谓的“智能问答”没有任何“智能”而言,其中的“问题”,都是针对用户经常提问问题的整理、归纳,而用户提出的问题五花八门,如果不是事先准备好的提问,“智能问答”无法进行回答。

“神机医药”上搜集了12万个医生问答,但并没有像“电商”网站上所谓的“智能问答”给出12万个“提问”,而是根据用户当前阅读浏览的内容(语义),通过“知识图谱”,自动地给出相关的问答。

(2)答案

虽然搜集的12万个医生问答,都是医生根据用户的提问所做的回答,是“一对一”的问答,但“神机医药”通过对医生回答进行“语义计算”,抽取“语义”,再通过“语义计算”与“药品”、“疾病”、“症状”描述文本进行“语义计算”,得到相关性,可以将12万“医生回答”应用到:15606条“药品”、14172条“疾病”和5756条“症状”中,计算机可以自动回答提问的任何问题,而不是“一对一解答问题”。

从“神机医药”可以看出,“语义计算 - 知识图谱”可以做到真正的“智能问答”,无需实现准备模式化的提问、也无需事先指定回答,“知识图谱搜索引擎”可根据提问的只言片语(关键词),给出回答问题的“解集合”,再通过“知识图谱”的语义计算得到的“相关度”,迅速在现有回答知识中,最符合问题的回答。

六、结束语

《神机医药》app,通过“语义计算”,形成“语义网络”,进一步通过“知识网络桥”KNB打通不同“语义网络”,构建知识图谱搜索引擎。改变了传统“关键词搜索引擎”的结构,将用户输入关键词的搜索引擎“被动搜索”,变成了知识图谱的“主动搜索”,大幅度搜索提高了搜索效率,使搜索引擎更加“智能化”。

在“智能问答”方面,“知识图谱”可以根据语义计算,快速、动态地寻找最优答案,准确回答用户提出的问题。

欢迎使用Markdown编辑器

你好! 这是你第一次使用Markdown编辑器所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。

新的改变

我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:

全新的界面设计,将会带来全新的写作体验;在创作中心设置你喜爱的代码高亮样式,Markdown将代码片显示选择的高亮样式进行展示;增加了图片拖拽功能,你可以将本地的图片直接拖拽到编辑区域直接展示;全新的KaTeX数学公式语法;增加了支持甘特图的mermaid语法1功能;增加了多屏幕编辑Markdown文章功能;增加了焦点写作模式、预览模式、简洁写作模式、左右区域同步滚轮设置等功能,功能按钮位于编辑区域与预览区域中间;增加了检查列表功能。

功能快捷键

撤销:Ctrl/Command+Z

重做:Ctrl/Command+Y

加粗:Ctrl/Command+B

斜体:Ctrl/Command+I

标题:Ctrl/Command+Shift+H

无序列表:Ctrl/Command+Shift+U

有序列表:Ctrl/Command+Shift+O

检查列表:Ctrl/Command+Shift+C

插入代码:Ctrl/Command+Shift+K

插入链接:Ctrl/Command+Shift+L

插入图片:Ctrl/Command+Shift+G

查找:Ctrl/Command+F

替换:Ctrl/Command+G

合理的创建标题,有助于目录的生成

直接输入1次#,并按下space后,将生成1级标题。

输入2次#,并按下space后,将生成2级标题。

以此类推,我们支持6级标题。有助于使用TOC语法后生成一个完美的目录。

如何改变文本的样式

强调文本强调文本

加粗文本加粗文本

标记文本

删除文本

引用文本

H2O is是液体。

210 运算结果是 1024.

插入链接与图片

链接: link.

图片:

带尺寸的图片:

居中的图片:

居中并且带尺寸的图片:

当然,我们为了让用户更加便捷,我们增加了图片拖拽功能。

如何插入一段漂亮的代码片

去博客设置页面,选择一款你喜欢的代码片高亮样式,下面展示同样高亮的代码片.

// An highlighted blockvar foo = 'bar';

生成一个适合你的列表

项目 项目 项目 项目1项目2项目3计划任务完成任务

创建一个表格

一个简单的表格是这么创建的:

设定内容居中、居左、居右

使用:---------:居中

使用:----------居左

使用----------:居右

SmartyPants

SmartyPants将ASCII标点字符转换为“智能”印刷标点HTML实体。例如:

创建一个自定义列表

MarkdownText-to-HTMLconversion tool AuthorsJohn Luke

如何创建一个注脚

一个具有注脚的文本。2

注释也是必不可少的

Markdown将文本转换为 HTML。

KaTeX数学公式

您可以使用渲染LaTeX数学表达式 KaTeX:

Gamma公式展示 Γ(n)=(n−1)!∀n∈N\Gamma(n) = (n-1)!\quad\forall n\in\mathbb NΓ(n)=(n−1)!∀n∈N 是通过欧拉积分

Γ(z)=∫0∞tz−1e−tdt.\Gamma(z) = \int_0^\infty t^{z-1}e^{-t}dt\,. Γ(z)=∫0∞​tz−1e−tdt.

你可以找到更多关于的信息LaTeX数学表达式here.

新的甘特图功能,丰富你的文章

关于甘特图语法,参考 这儿,

UML 图表

可以使用UML图表进行渲染。 Mermaid. 例如下面产生的一个序列图:

这将产生一个流程图。:

关于Mermaid语法,参考 这儿,

FLowchart流程图

我们依旧会支持flowchart的流程图:

关于Flowchart流程图语法,参考 这儿.

导出与导入

导出

如果你想尝试使用此编辑器, 你可以在此篇文章任意编辑。当你完成了一篇文章的写作, 在上方工具栏找到文章导出,生成一个.md文件或者.html文件进行本地保存。

导入

如果你想加载一篇你写过的.md文件,在上方工具栏可以选择导入功能进行对应扩展名的文件导入,

继续你的创作。

mermaid语法说明 ↩︎

注脚的解释 ↩︎

如果觉得《语义计算 知识图谱与智能问答(医药常识问答实例)》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。