【导读】文本挖掘指的是从文本数据中获取有价值的信息和知识,它是数据挖掘中的一种方法。文本挖掘中最重要最基本的应用是实现文本的分类和聚类,前者是有监督的挖掘算法,后者是无监督的挖掘算法。文本挖掘是一个多学科混杂的领域,涵盖了多种技术,包括数据挖掘技术、信息抽取、信息检索,机器学习、自然语言处理、计算语言学、统计数据分析、线性几何、概率理论甚至还有图论。本文主要介绍了基于Grakn的知识图谱文本挖掘的一种方法-超越文本挖掘。
文本是用于存储关于我们生活的世界的大量科学知识的媒介。然而,随着其规模和吞吐量的不断增长; 分析这种非结构化数据已成为一项无比乏味的任务。这导致了文本挖掘和自然语言处理(NLP)技术和工具的兴起,成为检测和处理大量自然文本数据的必要条件。
Text-Mining是从非结构化机器可读的文本中自动提取结构化语义信息。识别和进一步分析这些明确的概念和关系有助于以可扩展和有效的方式发现文本中包含的多种见解。
一些各种文本挖掘/ NLP技术包括:结构抽取,标记化,首字母缩略词标准化,词性还原,分解和识别语言,句子,实体,关系,短语和段落。
但是,一旦我们拥有这种所谓的“结构语义信息”,我们该怎么做呢?这些文本挖掘技术是否只是产生了我们试图揭示的见解?
事情并非那么简单。即使在从文本中提取一些信息之后,还有很长的路要走,然后将其转化为知识,然后转化为有价值的见解。这种见解可能是一种新的发现,或者以我们对我们的领域的现有知识中创建新链接的形式确认和验证先前的假设。让我们看看为什么超越文本挖掘不是一件容易的事。
超越文本挖掘的挑战是什么?
超越文本挖掘的挑战是什么?
在使用大量NLP工具的同时,我发现文本挖掘/ NLP工具的输出与我正在寻找的见解之间存在一些挑战。这些可归纳如下:
1. 难以摄取和集成文本挖掘输出的复杂网络
文本挖掘单个文本实例很容易。我们也可以阅读文本并自己提取其中包含的知识。但是,当我们的语料库中有数百,数千或数百万个独立文本实例时,我们该怎么做。在这种情况下,发现和理解每个文本中提取的知识(文本挖掘输出)之间的关系变得非常困难。为了能够进行这样的分析,我们需要将所有输出集成在一个地方 - 这并不像听起来那么容易。
2. 难以将从文本中提取的知识与现有知识联系起来
第二,我们不仅要分析从文本中提取的知识,还要超越它,看看提取的信息如何与我们拥有的所有其他数据相关。这些数据将有自己的格式或结构; 无法将其与我们原来的NLP输出进行比较。这导致难以将各组不同和异构数据之间的关系进行上下文化。
3. 难以以可扩展和有效的方式研究见解
最后,由于可以提取的文本量很大,以可扩展的方式生成或研究见解变得非常繁琐。当然,可以针对单个文本实例手动发现有价值的见解,但是这种方法无法在数百万个文本实例中扩展。而且,在大多数情况下,手动执行此操作实际上是不可能的。那我们做什么?
我们如何应对这些挑战?
考虑到这一点,我们可以考虑应对这些挑战的解决方案。根据我的研究,我建议这种方法:
1. 将文本挖掘输出的复杂网络集成并摄取到一个集合中
为了解决第一个挑战,我们需要一种方法来轻松地将文本挖掘输出集成到一个集合中-换句话说,一个文本挖掘的知识图谱。
2. 强制规范化所有数据的显式结构
为了实现数据的智能分析和集成,同时保持数据完整性,我们需要对要分析的所有数据强加显式结构。这不仅有助于概念本身的背景化,还有助于它们之间的关系。这转化为具有更高级别的数据模型以包含各种类型的数据并且将它们的存在合并到知识图谱中。这样我们就可以在摄取时验证数据。数据模型将充当所有数据类型的保护伞,允许我们将其内部和之间的所有关系进行上下文化。
3. 使用自动推理发现新的见解
为了从我们的知识图谱中提取或推断尽可能多的信息,我们需要某种自动推理工具来在整个数据中传播我们的域专业知识。这将使我们能够从我们的知识图谱中提出问题,并通过他们的解释得到正确的答案 - 其他传统方法将失败。
在确定了之前列出的挑战的解决方案之后,我想知道是否有任何一种技术,包含所有这三点?
好吧,幸运的是,Grakn 解决了所有这些问题。
如果您不熟悉它,Grakn是一个知识图谱形式的智能数据库,用于组织复杂的数据网络。它包含一个基于超图的知识表示系统; 实现任何类型复杂网络的建模。然后,该知识表示系统由自动推理引擎解释,该引擎实时地进行推理。该软件以灵活且易于理解的查询语言(Graql)的形式向用户公开。
构建文本挖掘的知识图谱
但是我们如何使用Grakn实际构建文本挖掘的知识图谱?
步骤1:识别文本
要开始,我们首先需要知道我们正在挖掘并想要存储的文本。在本文中,我想专注于生物医学数据。因此,我看到的非结构化文本数据类型包括:
1. 医学文献
2. 诊断测试报告
3. 电子健康记录
4. 病史医学史
5. 临床报告
在上面列出的文本语料库中。我选择专门研究医学文献。具体来说,PubMed的文章摘要。
第2步:识别文本挖掘/ NLP工具
在查看此空间时,我发现可以轻松集成斯坦福的CoreNLP API以允许我训练和挖掘文本。文本挖掘的脚本可以在我们的GitHub中找到。可以使用的其他工具可以包括:NLTK,TextBlob,gensim,spaCy,IBM Whatson NLU,PubTator,LitVar,NegBio,OpenNLP和BioCreative。
第3步:
为数据建模归功于CoreNLP,我们现在拥有原始文本挖掘数据,我们可以进行数据建模。为此,Grakn利用实体关系模型将每个概念分组为实体,属性或关系。这意味着我们所要做的就是将每个概念映射到模式概念类型,并识别它们之间的关系。让我们看一个例子来说明我们将如何做到这一点。
为了开始建模我们的CoreNLP输出,我们首先需要知道它实际上是什么样的。最基本的挖掘从一组文本中提取句子。这些句子具有情感,标记(构成句子)以及某些标记之间的关系。我们还获得了该工具识别的每种类型的置信度量。可视化表示如下:
我们可以看到,输出的结构已经是图形式的。传统方法努力将这些丰富的信息封装到表格中,然而这会消除整个信息维度并适得其反。保持这种类似图形的结构以构建我们从文本语料库中提取的所有内容的集成复杂知识图谱感觉更自然。我们可以轻松地将输出映射到Graql。
第4步:迁移到Grakn
现在我们已经拥有了数据和强加于此数据的结构,下一步是将其迁移到Grakn中以将其转换为知识。请注意,迁移有许多不同的方法,但在这里我想具体谈谈如何使用Java,NodeJS和Python。
为此,我们可以轻松地使用这些语言中的任何一种来插入符合我们建模的模式的提取信息的实例。下图说明如何插入的一个实例token与lemma和type成Grakn使用任何这三种语言:
要了解有关将数据迁移到Grakn的更多信息,请务必阅读本文。
第5步:发现和解释新的见解
迁移后,我们可以开始发现新的见解。发现见解是指寻找可能对我们正在努力实现的目标有价值的新数据。为了做到这一点,我们需要先看或要求一些东西。换句话说,我们从一个问题开始。这些问题的范围可以从文本内部询问,也可以是更复杂的问题,其中包括文本挖掘输出增强的其他数据。
让我们看一些例子,看看我们的文本挖掘知识图谱如何为它们提供答案:
问题1:从PubMed文章中提取了哪些知识?
答案1
我们得到的答案是从我们感兴趣的PubMed文章的摘要中挖掘的各种概念。上图显示了一个示例,其中提取的实体是:
1. 基因 - BRAF
2. 药物 - 曲美替尼
3. 药物 - 达拉菲尼
4. 疾病 - 黑色素瘤
5. 蛋白质 - MEK
我们也可以看到一些提取挖掘的关系:
6. 抑制 - 在BRAF和达拉菲尼之间
7. 抑制 - 介于MEK和曲美替尼之间
8. 治疗 - 在达拉菲尼和黑色素瘤之间
9. 治疗 - 曲美替尼与黑色素瘤之间的关系
由于在我们的CoreNLP工具上进行了训练,因此提取了这些实体和关系。有关这方面的更多信息,请点击此处。
现在让我们尝试提出一个更难的问题:
问题2:哪些PubMed文章提到了黑色素瘤和BRAF基因?
答案2
我们从Grakn收到的答案是所有与所提供条件相符的PubMed文章的列表。在精确医学领域中可以提出这种查询的一个很好的应用,我们希望将个体患者与其个人生物医学案例相关的医学文献联系起来。如果您对精准医学和知识图谱感兴趣,请查看本文。
这些查询很有用,但是现在它有问题 - 它如何利用我们的文本挖掘知识图谱来增强我们现有的知识?我们如何利用我们开采的内容扩展我们的见解并将其应用于生命科学的其他领域或领域?下一个问题显示了这一点:
问题3:哪种药物与黑色素瘤有关?
答案3
尽管Grakn为我们的问题提供了正确答案,但这些数据实际上从未被摄入Grakn--疾病和药物之间没有任何联系。那么,我们是如何得到这个相关答案的呢?
简而言之 - Grakn的自动推理器通过自动推理为我们创建了这个答案。由于这种推理是完全可以解释的,我们可以解释任何推断的概念,以了解它是如何被推断/创建的。您可以在下面看到Workbase中的解释。在下一节中,我将深入探讨如何创建允许Grakn推断这些关系的逻辑和规则。
解释我们的答案
我们在上面看到的关系是一阶逻辑的产物。这可以被建模为一个时和随后的场景。
在这种情况下,何时引用我们的文本挖掘知识图谱的子图 - 即,每当找到左边的子图时,就创建右边的关系。
这个逻辑在整个知识图谱中传播,创建了新的有价值的连接,这是通过Graql中的书面规则完成的。我上面用于推理的规则如下:
上述规则规定,当:
1. 存在一个带有抽象$ a的PubMed文章$ p
2. 抽象$ a中包含一个句子$ s
3. 存在从句子$ s中提取的具有“处理”类型的挖掘关系
4. 参与该挖掘的关系的标记有引理
5. 这些引理与药物和疾病具有相同的价值
如果这是真的,那么在药物和疾病之间建立治疗关系。我们还可以从上面的规则中看出它对疾病或药物是不可知的; 因此在每种药物和疾病之间建立了与给定条件相匹配的治疗关系。
应该注意的是,上面的规则演示了如何使用自动推理来创建对通过数据进行扩展的复杂洞察的高级抽象。它绝不会与最终用户应用的完整实现相比。
所有部件如何在一个架构中组合在一起?
现在,让我们后退一步,看看构建文本的所有组件是如何一起挖掘知识图谱的。
我们从可以来自多个来源和各种格式的文本开始。NLP工具用于挖掘文本并使用结构生成某种输出。该结构用于创建模式(高级数据模型)以在原始NLP输出上强制执行结构。完成后,我们使用Grakn的客户之一将NLP输出的实例迁移到Grakn中,确保每个插入都遵循模式。Grakn将其存储在其知识表示系统中,可以查询该系统以发现复杂概念或甚至测试假设。这些见解可以在图表中,甚至可以在推理引擎查询时创建; 例如,发现基因簇识别,蛋白质相互作用,基因 - 疾病关联,蛋白质 - 疾病关联,药物 - 疾病关联,患者匹配,甚至临床决策支持。
结论
因此,我们知道Text Mining在几个领域都非常有前景,在本文中我们专门研究了生物医学领域。我们理解,从提取文本信息到实际发现有用的东西,需要做很多工作。我希望已经证明Grakn可以帮助弥合这一差距。总之,Grakn有助于解决文本挖掘中超越文本挖掘的三个关键挑战。
原文链接:
https://blog.grakn.ai/text-mined-knowledge-graphs-beyond-text-mining-1ff207a7d850
-END-
专 · 知
专知,专业可信的人工智能知识分发,让认知协作更快更好!欢迎登录www.zhuanzhi.ai,注册登录专知,获取更多AI知识资料!
欢迎微信扫一扫加入专知人工智能知识星球群,获取最新AI专业干货知识教程视频资料和与专家交流咨询!
请加专知小助手微信(扫一扫如下二维码添加),加入专知人工智能主题群,咨询技术商务合作~
专知《深度学习:算法到实战》课程全部完成!560+位同学在学习,现在报名,限时优惠!网易云课堂人工智能畅销榜首位!
点击“阅读原文”,了解报名专知《深度学习:算法到实战》课程