前言
目前许多企业专业领域的知识库构建缺乏对现有领域知识的清晰拆分与理解。想要落地私域多模态大模型的应用,往往需要将现有的知识库转换为知识图谱。知识图谱不论是对业务还是对各个员工来说,都是对业务清晰认识了解的有力工具。
但是构建知识图谱绕不开对现有业务的深入理解,构建的过程比较像构建一个数据仓库,也是对业务的实际拆解重构过程。现在通过和 LangChain 的集成大大提高了知识图谱的应用空间,能够适用于数据并非全面充裕的小型业务场景。
一、知识图谱的基础概念
知识图谱的基础设计理念就是万物互联,可以想象结合业务去不断分裂不同业务的思维导图,用图来描述每一条业务线关系到的人或物。以电影数据库为例:
| 电影名 | 导演 | 演员 | 类型 | 年份 |
|---|---|---|---|---|
| 盗梦空间 | 克里斯托弗·诺兰 | 莱昂纳多·迪卡普里奥 | 科幻、动作 | 2010 |
| 泰坦尼克号 | 詹姆斯·卡梅隆 | 凯特·温丝莱特 | 爱情、剧情 | 1997 |
| 敢死队 | 西尔维斯特·史泰龙 | 杰森·斯坦森 | 动作 | 2010 |
根据数据集,我们可以识别出它们直接的特征名称:
实体:
- 电影(如《盗梦空间》)
- 导演(如'克里斯托弗·诺兰')
- 演员(如'莱昂纳多·迪卡普里奥')
关系:
- 导演 - 执导 - 电影
- 演员 - 出演 - 电影
- 电影 - 属于 - 类型
属性
- 年份:《盗梦空间》->2010。
- 类型:'科幻'、'爱情'。
我们将上述的特征可以映射为知识图谱的实体,也称之为一个节点,知识图谱的最小构成单位。
1.1 实体(Nodes)
实体是知识图谱的基本单元,通常代表具体的对象或概念。在我们的电影知识图谱中,实体可以分为以下几类:
- 电影:每部电影都是一个实体。例如,《盗梦空间》、《泰坦尼克号》和《敢死队》都作为电影实体存在。
- 导演:电影的导演也是一个重要的实体,如'克里斯托弗·诺兰'和'詹姆斯·卡梅隆'。
- 演员:参与电影表演的演员是另一个重要的实体,比如'莱昂纳多·迪卡普里奥'和'凯特·温丝莱特'。
其中关系我们可以映射为描述每一个节点关联的边。
1.2 关系(Edges)
关系描述了实体之间的联系。我们在电影知识图谱中可以定义以下几种主要关系:
- 导演 - 执导 - 电影:这表示某位导演执导了一部电影。例如,克里斯托弗·诺兰执导了《盗梦空间》。
- 演员 - 出演 - 电影:这表示某位演员在一部电影中出演了角色。例如,莱昂纳多·迪卡普里奥在《盗梦空间》中出演。
- 电影 - 属于 - 类型:这表示某部电影属于某种类型,比如《泰坦尼克号》属于爱情和剧情类型。
1.3 属性(Attributes)
属性是对实体特征的描述,帮助进一步丰富知识。例如,在我们的电影知识图谱中,电影的属性包括:
- 年份:电影的上映年份,如《盗梦空间》的年份是 2010。
- 类型:电影的类型,如'科幻'、'爱情'等。


