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


要从文本构建知识图谱 , 重要的是使我们的机器能够理解自然语言 。 这可以通过使用NLP技术来完成 , 例如句子分段 , 依存关系分析 , 词性标记和实体识别 。 让我们更详细地讨论这些 。
句子分割构建知识图谱的第一步是将文本文档或文章拆分为句子 。 然后 , 我们将仅列出那些恰好具有1个主语和1个宾语的句子 。 让我们看下面的示例文本:
“IndiantennisplayerSumitNagalmovedupsixplacesfrom135toacareer-best129inthelatestmen’ssinglesranking.The22-year-oldrecentlywontheATPChallengertournament.HemadehisGrandSlamdebutagainstFedererinthe2019USOpen.Nagalwonthefirstset.”
让我们将以上段落拆分为句子:
IndiantennisplayerSumitNagalmovedupsixplacesfrom135toacareer-best129inthelatestmen’ssinglesrankingThe22-year-oldrecentlywontheATPChallengertournamentHemadehisGrandSlamdebutagainstFedererinthe2019USOpenNagalwonthefirstset在这四个句子中 , 我们将选择第二个和第四个句子 , 因为它们每个包含1个主语和1个宾语 。 在第二句中 , 主语为“22-year-old” , 宾语为“ATPChallengertournament” 。 在第四句中 , 主语是“Nagal” , “firstset”是宾语:
实体提取从句子中提取单个单词实体并不是一项艰巨的任务 。 我们可以借助词性(POS)标签轻松地做到这一点 。 名词和专有名词将是我们的实体 。
但是 , 当一个实体跨越多个单词时 , 仅靠POS标签是不够的 。 我们需要解析句子的依存关系树 。
你可以在以下文章中阅读有关依赖项解析的更多信息[^1] 。
让我们获取所选择的一句句子的依赖项标签 。 我将使用流行的spaCy库执行此任务:
Output:
根据依赖性分析器 , 此句子中的主语(nsubj)为“old” 。 那不是想要的实体 。 我们想提取“22-year-old” 。
“22-year”的依赖项标签是amod , 这意味着它是“old”的修饰语 。 因此 , 我们应该定义一个规则来提取这些实体 。
规则可以是这样的:提取主语/宾语及其修饰符 , 还提取它们之间的标点符号 。
但是 , 然后看看句子中的宾语(dobj) 。 这只是“tournament” , 而不是“ATPChallengertournament” 。 在这里 , 我们没有修饰词 , 但有复合词 。
复合词是那些共同构成一个具有不同含义的新术语的词 。 因此 , 我们可以将上述规则更新为?-提取主语/宾语及其修饰词 , 复合词 , 并提取它们之间的标点符号 。
简而言之 , 我们将使用依赖性解析来提取实体 。
提取关系实体提取是完成工作的一半 。 要构建知识图谱 , 我们需要边缘将节点(实体)彼此连接 。 这些边缘是一对节点之间的关系 。
让我们回到上一节中的示例 。 我们选择了几个句子来构建知识图谱:
两个句子具有相同的关系“won” 。 让我们看看如何提取这些关系 。 我们将再次使用依赖项解析:
Output:
要提取该关系 , 我们必须找到句子的根(也是句子的动词) 。 因此 , 从该句子中提取的关系将是“won” 。 最后 , 来自这两个句子的知识图谱将如下所示:


推荐阅读