一味宠爱 知识图谱:一种从文本中挖掘信息的强大数据科学技术( 四 )


关系/谓词提取这将是本文的一个非常有趣的方面 。 我们的假设是谓词实际上是句子中的主要动词 。
例如 , 在句子“SixtyHollywoodmusicalswerereleasedin1929”中 , 动词是“releasedin” , 这就是我们将要用作该句子所产生的三元组的谓词 。 下面的函数能够从句子中捕获此类谓语 。 在这里 , 我使用过spaCy基于规则的匹配:
函数中定义的模式试图在句子中找到根词或主要动词 。 识别出根后 , 该模式将检查是否紧跟着介词(“prep”)或代理词 。 如果是 , 则将其添加到ROOT词中 。
让我向你展示一下此功能:
Output:
同样 , 让我们??从所有Wikipedia句子中获取关系:
让我们看一下我们刚刚提取的最常见的关系或谓词:
Output:
建立知识图谱最后 , 我们将从提取的实体(主语-宾语对)和谓词(实体之间的关系)创建知识图谱 。
让我们创建一个实体和谓词的dataframe:
接下来 , 我们将使用networkx库从此dataframe创建网络 。 节点将代表实体 , 节点之间的边或连接将代表节点之间的关系 。
这将是有向图 。 换句话说 , 任何连接的节点对之间的关??系不是双向的 , 它只是从一个节点到另一个节点 。 例如 , “Johneatspasta”:
绘制这个网络:
Output:
事实证明 , 我们已经创建了一个具有所有关系的图形 。 很难想象具有许多关系或谓词的图 。
因此 , 建议仅使用一些重要的关系来可视化图形 。 我每次只建立一种关系 。 让我们从“composedby”的关系开始:
Output:
看看更多的关系 。
由于写作在任何电影中都扮演着重要的角色 , 因此我想形象化“writtenby”关系的图表:
Output:
我们来看看另一个重要谓词的知识图谱 , 即“releasedin”:
Output:
结语在本文中 , 我们学习了如何以三元组的形式从给定文本中提取信息并从中构建知识图谱 。
但是 , 我们限制自己使用仅包含2个实体的句子 。 即便如此 , 我们仍然能够构建内容丰富的知识图谱 。


推荐阅读