NLP 通过从非结构化文本中提取、组织和利用结构化信息来与知识图谱交互。知识图谱以图的形式表示实体(如人、地点或概念)及其关系,而 NLP 技术处理自然语言以识别这些实体和连接。例如,NLP 中的命名实体识别(NER)可以识别句子中的“巴黎”是一个城市,而关系提取可以确定“巴黎是法国的首都”。然后,这些数据可以被构建成知识图谱,为“巴黎”和“法国”创建节点,并通过“capital_of”边连接。spaCy 或 Stanford CoreNLP 等工具通常处理 NLP 部分,而 Neo4j 等图数据库或 RDF 三元组存储等框架管理知识图谱的存储。
知识图谱还通过提供上下文和关系数据来增强 NLP 任务。例如,问答系统可以使用知识图谱来解决歧义。如果用户询问“谁创立了微软?”,系统可能会从图谱中检索出“保罗·艾伦”和“比尔·盖茨”,即使输入文本只提到了“两位创始人”。类似地,实体链接——将文本中的歧义术语映射到唯一的图谱节点的过程——依赖于知识图谱。例如,句子中的“Apple”可能指代公司或水果;包含实体元数据(例如,“Apple Inc.”与“apple fruit”)的知识图谱有助于消歧。像 Wikidata 或 DBpedia 这样的库可以用作大规模的公共知识图谱。
这种交互是双向的:NLP 用结构化数据填充知识图谱,而知识图谱提高 NLP 模型的性能。例如,使用通过知识图谱嵌入(如实体类型或关系)增强的文本训练像 BERT 这样的语言模型,可以提高其对上下文的理解。反之,当新的数据通过 NLP 流水线处理(例如新闻文章或研究论文)时,提取的信息会更新知识图谱。一个实际的应用案例是在医疗保健领域:NLP 从临床笔记中提取药物-疾病关系,并将其添加到医疗知识图谱中。随后,该图谱可以帮助 NLP 模型通过遍历连接的节点来回答复杂查询,例如“哪些药物与布洛芬相互作用?”。这种提取和应用循环使得 NLP 和知识图谱成为相互增强的工具。