graphRAG-结果解读
1、简介
前文中,graphRAG项目index索引建立完成后,会生成7个parquet文件。
为什么用 Parquet 格式保存知识图谱?
- 高效存储:
- 知识图谱中的数据通常是结构化的,包含大量的实体、关系、嵌入等。
- Parquet 的列式存储能够显著减少磁盘占用,同时提高读取效率。
- 快速读取:
- 查询阶段需要快速加载实体、关系、嵌入等数据到内存中。
- Parquet 支持按需加载所需的列,避免了不必要的数据读取。
- 兼容性好:
- Parquet 是一个开放的标准,广泛支持各种数据处理工具(如 Pandas、Spark、Hadoop)。
- GraphRAG 可以在 Python 中使用 Pandas 或其他工具轻松读取这些文件。
2、解读
parquet在Python中的读取和使用与CSV类似,可以直接读取以dataframe形式展示。
下面根据流程进行一一查看
2.1 文档
documents = pd.read_parquet("./output/create_final_documents.parquet")
documents
id | human_readable_id | title | text | text_unit_ids | |
---|---|---|---|---|---|
0 | 15f30077a469a205b2919e1b476dbae05a1c156d5d8295... | 1 | sushi.txt | # 苏轼:北宋文坛的璀璨巨星\n苏轼,这位北宋时期的传奇人物,于宋景祐三年十二月十九日(10... | [9cf74fd1963f3ea256ff5e08d48961c31a129e528543f... |
因为这里只上传的一个文档,所以这里的文档ID只有一个
2.2 文本单元
在默认的settings.yaml设置中,每个文本块的大小为1200
chunks:
size: 1200
overlap: 100
group_by_columns: [id]
查看文本单元数据
text_unit = pd.read_parquet("./output/create_final_text_units.parquet")
id | human_readable_id | text | n_tokens | document_ids | entity_ids | relationship_ids | |
---|---|---|---|---|---|---|---|
0 | 9cf74fd1963f3ea256ff5e08d48961c31a129e528543fc... | 1 | # 苏轼:北宋文坛的璀璨巨星\n苏轼,这位北宋时期的传奇人物,于宋景祐三年十二月十九日(10... | 1200 | [15f30077a469a205b2919e1b476dbae05a1c156d5d829... | [613785ab-9aa9-47e0-995d-eb061edf246f, bdac09f... | [0e32eb8a-015a-43c4-9b43-3602097b93ef, 35e7930... |
1 | a6053b30c0cdc69a23d7b0e55aa2c29a4200cf69ef4b9d... | 2 | ��步天下!”\n\n在欧阳修的极力称赞下,苏轼声名鹊起,一时间成为京城的焦点人物。他的每一... | 1200 | [15f30077a469a205b2919e1b476dbae05a1c156d5d829... | [613785ab-9aa9-47e0-995d-eb061edf246f, 021fcec... | [0e32eb8a-015a-43c4-9b43-3602097b93ef, 35e7930... |
2 | ad032814011ec3af535e738af040ecafe3572d4b86aeaf... | 3 | 1077年)四月至元丰二年(1079年)三月,苏轼在徐州任知州。期间,黄河在曹村决口,洪水泛... | 1200 | [15f30077a469a205b2919e1b476dbae05a1c156d5d829... | [613785ab-9aa9-47e0-995d-eb061edf246f, 0da3a33... | [5f0c99ed-026d-413e-b113-d55553510893, bef28eb... |
3 | 686ba4dd7e8a80c18f7e59e21bf5d4685c8016ec34e5c2... | 4 | 山游览,触景生情,写下了《赤壁赋》《后赤壁赋》和《念奴娇·赤壁怀古》等千古名作,借景抒情,寄... | 1200 | [15f30077a469a205b2919e1b476dbae05a1c156d5d829... | [613785ab-9aa9-47e0-995d-eb061edf246f, 0da3a33... | [5f0c99ed-026d-413e-b113-d55553510893, bb17a68... |
4 | 83dd38f6b525caf8b64eb7a32627a5e614c27067736e19... | 5 | 关注到杭州的水利问题。茅山有一条河专门容纳钱塘江潮水,盐桥有一条河专门容纳西湖水,但河道年久... | 1200 | [15f30077a469a205b2919e1b476dbae05a1c156d5d829... | [613785ab-9aa9-47e0-995d-eb061edf246f, 021fcec... | [35e7930d-c1ac-4488-b599-f229bbbb3803, bb17a68... |
5 | ad70dd7af670a36d9182e17f7c6c4f8b9514ee09d17e8f... | 6 | �年(1093年)九月,苏轼出任定州知州。然而,这一年高太后去世,哲宗开始亲政,新党再度掌权... | 1200 | [15f30077a469a205b2919e1b476dbae05a1c156d5d829... | [ee2b388d-de50-4dbf-aa48-c841b6ab5241, c174d9c... | [7ef02f35-156c-4b27-8e7b-6138b87b3a23, 786cb40... |
6 | e7ca4da204cfa950606820f22ea8e2813bb033ec8340ef... | 7 | 与哲思的交融\n苏轼的诗歌题材广泛,涵盖了社会现实、人生思考、自然景观等诸多方面。他对社会现... | 1186 | [15f30077a469a205b2919e1b476dbae05a1c156d5d829... | [613785ab-9aa9-47e0-995d-eb061edf246f, 6d039d0... | [ba864b0d-77d1-4d37-ae0f-48ab46b990a3, 6fce400... |
7 | a76034282881b48a0a48dfd1dbe4250763b7a86d11a7f4... | 8 | 现柔情之词扩展为表现豪情之词,将表现爱情之词扩展为表现性情之词,使词像诗一样可以充分展现作者... | 86 | [15f30077a469a205b2919e1b476dbae05a1c156d5d829... | None | None |
详细介绍了每个文本块的属性信息,包括当前文本单元的内容、长度、来自的文档、提取的实体、关系等内容
text_unit["entity_ids"][0]
array(['613785ab-9aa9-47e0-995d-eb061edf246f',
'bdac09fa-4a73-493f-af27-8905b1bcdf61',
'021fcecb-093d-4931-a038-2a2608995acf',
'1aa70862-6c06-4276-a91a-3f4eb0f6c452',
'3fb34cd3-d26c-452b-998f-fbaac8b443ae',
'024cf757-c6f1-4dd2-900a-cb5a3ddf5505',
'73ba0e35-cf96-4dad-84de-063a57789751',
'0740ba33-e6b1-4b61-9dd4-0fdba8abcf10',
'6139cffc-8001-4ffb-a62c-bb2937466dc5',
'8a0fed89-7f67-4c89-b8cd-2640431631f1',
'a7398d0e-577b-4f69-9c62-e1072cee75a2',
'8783c914-f61f-4165-a515-e19f6d3a22d5',
'cd3a0ff3-ed8c-4860-ac1f-29c197ecc03f',
'879dda40-923a-472f-aa35-aa0f627d1081'], dtype=object)
text_unit["relationship_ids"][0]
array(['0e32eb8a-015a-43c4-9b43-3602097b93ef',
'35e7930d-c1ac-4488-b599-f229bbbb3803',
'168ed71f-03fa-4ca3-ad92-73b1ce192775',
'3ed64ffc-1455-4123-bb54-8df7350deca4',
'bdb0618b-05a9-4640-be61-4667ee227d98',
'2212455d-fe57-4d9d-92ea-c090d6376168',
'a571abba-4265-4d00-baab-1b973d2bf383',
'9007dbbf-ab8f-4321-a13e-57470cd86c26',
'ff4a54f1-d6c9-4dae-aef3-ff7717da4a8d',
'a882ce9f-4c63-4135-97ad-65c5fe8a1caf',
'5dcbdaa0-6677-49aa-85ea-c12cc62c0465',
'2c996a6a-a845-4d3d-8584-4aee0d99a3ea',
'9d8a0375-2598-42fe-a239-8d4b77fb1639',
'f50d3dba-0100-4f2f-b26a-1e88a623eebe',
'e3512728-ca86-4606-aec1-6a1c1e8f3a7b',
'94439c77-9de1-40b8-aad3-b831be6f9981',
'00ff86ab-21f3-4939-8551-dffe6199b92c',
'd62dc549-c171-484f-86f7-03f635e0f206',
'90f4f273-f03a-4df5-ae45-c8d89538dffa'], dtype=object)
2.3 实体
在知识图谱中,每个实体都有其独特的标识符和属性(例如,姓名、类型、描述等)。这些属性和关系帮助我们理解实体在特定领域中的作用和上下文。实体识别是图谱构建的重要步骤之一。
实体在知识图谱中将被标识为节点,并且可以与其他节点(如其他姓名、著作、地点等)通过关系(如“写书”,“属于领域”)连接,形成知识图谱中的一个网络结构。同时,在知识图谱中,实体是基础组成单元,它们通过关系(relationship)连接,构成一个图的结构。实体和关系是构建知识图谱的两个基本元素。实体之间的连接关系定义了图谱中的知识和数据。
实体识别的作用
:实体识别(Entity Recognition)是指从文本中自动识别出这些重要的实体。在GraphRAG的索引阶段中,实体识别是构建知识图谱的第一步,目标是提取出文档中的核心实体,为后续的关系抽取、文本切分等操作打下基础。
实体识别的过程通常涉及:
- 命名实体识别(NER,Named Entity Recognition):这是一种自然语言处理(NLP)任务,用来识别文本中具有特定意义的实体,如人名、地点、日期等。
- 实体分类:在识别实体之后,还需要根据其属性对实体进行分类,例如将"苏轼"分类为"人名",将"庐山"分类为"地点"。
GraphRAG中的实体识别
在GraphRAG的索引过程中,实体识别是与文本切分和关系挖掘同时进行的。具体来说:
3. 实体识别:GraphRAG使用大语言模型(如GPT)识别文本中的实体,并根据其类型为每个实体赋予一个唯一标识符。
4. 实体嵌入:GraphRAG为每个实体生成语义嵌入,即一个高维向量,来描述该实体的语义。实体嵌入可以帮助模型理解实体在不同上下文中的意义和关系。
5. 关系挖掘:在识别实体之后,GraphRAG还会识别实体之间的关系,例如“作者是”、“属于”等。这些关系构成了知识图谱中的边,实体则是图谱中的节点。
entities = pd.read_parquet("./output/create_final_entities.parquet")
id | human_readable_id | title | type | description | text_unit_ids | |
---|---|---|---|---|---|---|
0 | 613785ab-9aa9-47e0-995d-eb061edf246f | 0 | 苏轼 | PERSON | 苏轼, also known as Su Shi, was a highly esteeme... | [9cf74fd1963f3ea256ff5e08d48961c31a129e528543f... |
1 | bdac09fa-4a73-493f-af27-8905b1bcdf61 | 1 | 苏洵 | PERSON | 苏洵是苏轼的父亲,古文名家,学识渊博,他悉心传授学识和品行给苏轼和苏辙 | [9cf74fd1963f3ea256ff5e08d48961c31a129e528543f... |
2 | 021fcecb-093d-4931-a038-2a2608995acf | 2 | 苏辙 | PERSON | 苏辙是苏轼的弟弟,与苏轼一同在父亲的教育下成长。他是北宋时期的文化名人,并在元祐六年担任尚书右丞。 | [9cf74fd1963f3ea256ff5e08d48961c31a129e528543f... |
3 | 1aa70862-6c06-4276-a91a-3f4eb0f6c452 | 3 | 欧阳修 | PERSON | 欧阳修是中国北宋时期的文学家,他在当时担任主考官的职务,极力称赞和支持苏轼的诗文,并预言其文... | [9cf74fd1963f3ea256ff5e08d48961c31a129e528543f... |
4 | 3fb34cd3-d26c-452b-998f-fbaac8b443ae | 4 | 梅尧臣 | PERSON | 梅尧臣是当时的小试官,对苏轼的才情高度赏识,并询问苏轼文章中句子的出处 | [9cf74fd1963f3ea256ff5e08d48961c31a129e528543f... |
... | ... | ... | ... | ... | ... | ... |
110 | 6d039d02-1ea2-4692-bb85-8460e5d1f2bf | 110 | 西林壁 | GEO | 《题西林壁》是苏轼的一首著名诗作,诗中通过描写庐山景色来揭示人们认识事物的局限性 | [e7ca4da204cfa950606820f22ea8e2813bb033ec8340e... |
111 | 3f2f715d-5bbf-42b7-80f4-626d47cbb5d9 | 111 | 庐山 | GEO | 庐山是中国江西省的一个著名山脉和风景区,在苏轼的《题西林壁》中提到 | [e7ca4da204cfa950606820f22ea8e2813bb033ec8340e... |
112 | ae6aec9a-f4f7-47c8-8187-40416472fa72 | 112 | 和子由渑池怀旧 | GEO | 《和子由渑池怀旧》是苏轼的一首著名诗作,诗中通过比喻人生经历为雪泥鸿爪,表达对人生无常的感慨 | [e7ca4da204cfa950606820f22ea8e2813bb033ec8340e... |
113 | 3fa8cbc5-7894-43c3-b8b7-0a9ce21fc131 | 113 | 北宋 | EVENT | 北宋是中国历史上的一个朝代,苏轼生活并创作于此时期 | [e7ca4da204cfa950606820f22ea8e2813bb033ec8340e... |
114 | ba8460aa-089e-44e1-8e60-6eea6ed3dbb7 | 114 | 苏诗 | [e7ca4da204cfa950606820f22ea8e2813bb033ec8340e... |
115 rows × 6 columns
解释
:
- id:我们为每个实体分配了唯一的标识符,这可以帮助在数据库中唯一地标识每个实体。
- human_readable_id:我们使用易于理解的名称来表示实体,便于后续的引用和查询。
- title:实体的标题或名称,如“苏轼”、“苏辙”等。
- type:标记实体的类型,分别是 “地点” 、 “人物"和"事件”。
- description:给出实体的简短描述,帮助我们理解这些实体是什么。
- text_unit_ids:列出了每个实体在 TEXT_UNIT_TABLE 中涉及的文本段。
2.4 节点
实体是一个单独的名称,没有进入到知识图谱中;当实体根据关系进入到知识图谱中后就成为了节点。
nodes = pd.read_parquet("./output/create_final_nodes.parquet")
id | human_readable_id | title | community | level | degree | x | y | |
---|---|---|---|---|---|---|---|---|
0 | 613785ab-9aa9-47e0-995d-eb061edf246f | 0 | 苏轼 | 1 | 0 | 77 | 0.0 | 0.0 |
1 | bdac09fa-4a73-493f-af27-8905b1bcdf61 | 1 | 苏洵 | 3 | 0 | 4 | 0.0 | 0.0 |
2 | 021fcecb-093d-4931-a038-2a2608995acf | 2 | 苏辙 | 3 | 0 | 5 | 0.0 | 0.0 |
3 | 1aa70862-6c06-4276-a91a-3f4eb0f6c452 | 3 | 欧阳修 | 0 | 0 | 2 | 0.0 | 0.0 |
4 | 3fb34cd3-d26c-452b-998f-fbaac8b443ae | 4 | 梅尧臣 | 0 | 0 | 3 | 0.0 | 0.0 |
... | ... | ... | ... | ... | ... | ... | ... | ... |
110 | 6d039d02-1ea2-4692-bb85-8460e5d1f2bf | 110 | 西林壁 | 1 | 0 | 1 | 0.0 | 0.0 |
111 | 3f2f715d-5bbf-42b7-80f4-626d47cbb5d9 | 111 | 庐山 | 1 | 0 | 1 | 0.0 | 0.0 |
112 | ae6aec9a-f4f7-47c8-8187-40416472fa72 | 112 | 和子由渑池怀旧 | 1 | 0 | 1 | 0.0 | 0.0 |
113 | 3fa8cbc5-7894-43c3-b8b7-0a9ce21fc131 | 113 | 北宋 | -1 | 0 | 0 | NaN | NaN |
114 | ba8460aa-089e-44e1-8e60-6eea6ed3dbb7 | 114 | 苏诗 | 1 | 0 | 1 | 0.0 | 0.0 |
115 rows × 8 columns
在这个表中:
- id: 每个实体的唯一标识符,可以是数字或字符串。
- human_readable_id: 人类可读的标识符,方便理解。
- title: 实体的标题或名称(如文本中的人物等)。
在GraphRAG中,节点中的community、level、degree和x、y具有以下含义: - community:表示节点所属的社区。社区是通过层次社区检测算法在图中识别出的节点簇,社区内的节点彼此之间连接紧密,但与其他社区的节点连接稀疏。在GraphRAG中,节点可能属于不同的社区,用一个整数ID来标识其所在的社区,如果节点未被分配到任何社区,则其community ID可能为-1。
- level:指的是社区的层次深度,即节点所在社区在整个社区层次结构中的位置。例如在具有严格层次结构的社区划分中,顶层社区的level可能为0,随着层次的细分,子社区的level值会逐渐增加。
- degree:代表节点的度,即与该节点直接相连的边的数量。在无向图中,度就是连接该节点的边的总数;在有向图中,度可细分为入度和出度,入度是指向该节点的边的数量,出度是从该节点出发指向其他节点的边的数量。节点的度越高,说明该节点在图中的连接越广泛,通常也意味着它在网络中可能具有更重要的地位或作用。
- x、y:用于节点的可视化布局。在对图进行可视化展示时,x和y分别表示节点在二维平面中的横坐标和纵坐标位置。如果没有启用图嵌入和UMAP等技术来确定节点位置,x和y的值通常为0。
2.5 关系
关系挖掘
(Relationship Extraction)是构建知识图谱过程中的一个关键环节,它旨在识别文本中不同实体之间的关系。关系挖掘通常是实体识别之后的第二步,目的是将各个实体连接起来,形成一个有意义的图谱结构。在GraphRAG中,关系挖掘的过程涉及多种技术手段,包括自然语言处理(NLP)、机器学习、深度学习等方法。
关系挖掘的目标
关系挖掘的目标是从文本中提取出实体之间的语义关系。这些关系可以是显式的,也可以是隐式的,通常关系的形式是“实体A和实体B之间的关系”。通过挖掘这些关系,最终构建起一个实体-关系-实体的三元组(Triple),这是知识图谱的基本构成单元。
关系挖掘不仅要识别出实体A和实体B,还要准确地抽取出它们之间的语义关系“是…的作者”。这些关系将用于构建知识图谱中的边。
示例文本中实体的关系挖掘过程
据此,我们可以进一步计算出实体的 level 和 degree 值。这两个指标通常用于描述实体在知识图谱中的重要性和连接度。它们的计算依赖于图中的实体和关系结构,通常通过图算法(如图中心性算法)来计算。这些指标可以帮助系统理解每个实体在知识图谱中的角色,从而优化查询和推理。
relationships = pd.read_parquet("./output/create_final_relationships.parquet")
id | human_readable_id | source | target | description | weight | combined_degree | text_unit_ids | |
---|---|---|---|---|---|---|---|---|
0 | 0e32eb8a-015a-43c4-9b43-3602097b93ef | 0 | 苏轼 | 苏洵 | 苏洵是苏轼的父亲,他教导苏轼成长。 | 18.0 | 81 | [9cf74fd1963f3ea256ff5e08d48961c31a129e528543f... |
1 | 35e7930d-c1ac-4488-b599-f229bbbb3803 | 1 | 苏轼 | 苏辙 | 苏轼和苏辙是兄弟,两人共同接受父亲的教育,并曾一起回乡为母亲奔丧。苏轼的弟弟苏辙后来担任了尚... | 22.0 | 82 | [9cf74fd1963f3ea256ff5e08d48961c31a129e528543f... |
2 | 168ed71f-03fa-4ca3-ad92-73b1ce192775 | 2 | 苏轼 | 欧阳修 | 欧阳修是主考官,称赞苏轼的诗文并预言其文章必独步天下 | 8.0 | 79 | [9cf74fd1963f3ea256ff5e08d48961c31a129e528543f... |
3 | 3ed64ffc-1455-4123-bb54-8df7350deca4 | 3 | 苏轼 | 梅尧臣 | 梅尧臣是小试官,高度赏识苏轼的才情 | 7.0 | 80 | [9cf74fd1963f3ea256ff5e08d48961c31a129e528543f... |
4 | bdb0618b-05a9-4640-be61-4667ee227d98 | 4 | 苏轼 | 长江 | 苏洵带苏轼顺流而下前往京城参加科举考试 | 6.0 | 79 | [9cf74fd1963f3ea256ff5e08d48961c31a129e528543f... |
... | ... | ... | ... | ... | ... | ... | ... | ... |
117 | 0c760c22-a6c1-4de2-8205-b79720fbf472 | 117 | SU SHI | SONG HUANGYOU | Su Shi's literary career flourished during the... | 1.0 | 24 | [ad70dd7af670a36d9182e17f7c6c4f8b9514ee09d17e8... |
118 | ba864b0d-77d1-4d37-ae0f-48ab46b990a3 | 118 | 苏轼 | 苏诗 | 苏轼创作了大量诗歌,反映社会现实和人生思考 | 8.0 | 78 | [e7ca4da204cfa950606820f22ea8e2813bb033ec8340e... |
119 | 6fce400e-3b1f-417e-803f-ef254db60ebb | 119 | 苏轼 | 西林壁 | 苏轼通过作《题西林壁》揭示了人们认识事物的局限性 | 7.0 | 78 | [e7ca4da204cfa950606820f22ea8e2813bb033ec8340e... |
120 | f2d752c3-375c-4b44-8c44-2020fe95e5dc | 120 | 苏轼 | 和子由渑池怀旧 | 苏轼通过作《和子由渑池怀旧》表达了对人生无常的感慨 | 7.0 | 78 | [e7ca4da204cfa950606820f22ea8e2813bb033ec8340e... |
121 | 79b6a035-30ab-41fe-a78f-b80bf7b76088 | 121 | 苏轼 | 庐山 | 苏轼在《题西林壁》中提到了庐山 | 7.0 | 78 | [e7ca4da204cfa950606820f22ea8e2813bb033ec8340e... |
122 rows × 8 columns
重点介绍下关系中的weight和combined_degree:
- weight(权重):表示关系的强度、重要性或连接的紧密程度等。比如在知识图谱中,如果节点代表不同的实体,边代表实体之间的关系,那么weight可以用来量化这种关系的某种属性。以“苹果”和“水果”这两个节点为例,它们之间可能存在“属于”的关系,若weight值较高,说明“苹果”属于“水果”这个关系在整个知识图谱的语义理解等方面比较重要;若weight值较低,可能意味着在当前的知识体系或数据集中,这种关系相对不那么突出。也可能在表示社交网络中用户之间的关系时,weight可以表示用户之间的亲密度、交流频率等。
- combined_degree(组合度):一般是综合考虑了与该关系相关的节点的度等因素而得出的一个指标。可能是将连接两个节点的边的入度和出度等进行某种形式的组合计算得到。比如在有向图中,一条边连接的两个节点,一个节点的出度和另一个节点的入度可能会被综合起来计算combined_degree,用于衡量这条边以及相关节点在图结构中的综合重要性或影响力。它能帮助分析关系两端节点的连接情况对该关系的整体作用,比单纯的节点度能更全面地反映关系在图中的特征。如果一个关系的combined_degree值较高,说明这条关系所涉及的节点在图中的连接情况比较复杂或广泛,可能在信息传播、图的结构稳定性等方面具有更重要的作用。
2.6 社区
communities = pd.read_parquet("./output/create_final_communities.parquet")
id | human_readable_id | community | parent | level | title | entity_ids | relationship_ids | text_unit_ids | period | size | |
---|---|---|---|---|---|---|---|---|---|---|---|
0 | fa441d74-418b-4087-abd6-c8b70733d6a5 | 0 | 0 | -1 | 0 | Community 0 | [6139cffc-8001-4ffb-a62c-bb2937466dc5, 3fb34cd... | [90f4f273-f03a-4df5-ae45-c8d89538dffa, d62dc54... | [9cf74fd1963f3ea256ff5e08d48961c31a129e528543f... | 2025-02-07 | 3 |
1 | d8e7c8bc-194f-4df0-a7c2-dc4ec06c35fb | 1 | 1 | -1 | 0 | Community 1 | [613785ab-9aa9-47e0-995d-eb061edf246f, 8783c91... | [0371a90d-6624-4657-a015-2cd3fbf3416b, 043ad5c... | [686ba4dd7e8a80c18f7e59e21bf5d4685c8016ec34e5c... | 2025-02-07 | 58 |
2 | cd09e926-d811-4bc3-8acc-20eecd7e6606 | 2 | 2 | -1 | 0 | Community 2 | [db829fec-9774-4d09-ba6a-786809540071, 9608d5c... | [52cc2d40-df68-48b7-9c49-3bcf68e6d52d, 753be4c... | [ad032814011ec3af535e738af040ecafe3572d4b86aea... | 2025-02-07 | 4 |
3 | 0b0fda0a-59da-4b77-9b65-496b3e8ca81e | 3 | 3 | -1 | 0 | Community 3 | [0740ba33-e6b1-4b61-9dd4-0fdba8abcf10, 021fcec... | [00ff86ab-21f3-4939-8551-dffe6199b92c, 94439c7... | [9cf74fd1963f3ea256ff5e08d48961c31a129e528543f... | 2025-02-07 | 7 |
4 | 0764b09a-b868-484d-80af-2d0b35b81633 | 4 | 4 | -1 | 0 | Community 4 | [8032ee03-6124-48fa-b3e9-de89a52aad58, c4b53ec... | [7e826192-043c-4422-a59b-5d86bfbc1666, 8c85cb5... | [a6053b30c0cdc69a23d7b0e55aa2c29a4200cf69ef4b9... | 2025-02-07 | 3 |
5 | a5f3a14c-bb40-45ac-9b8a-1ccb49d5a00e | 5 | 5 | -1 | 0 | Community 5 | [ffb22707-db0a-4f45-9aef-85fa95f96254, 61ac871... | [39e3c797-cfac-4111-bb5c-c432ddc29924, 5d707b2... | [a6053b30c0cdc69a23d7b0e55aa2c29a4200cf69ef4b9... | 2025-02-07 | 7 |
- id:社区的全局唯一标识符,采用UUID(通用唯一识别码)的格式,如 “fa441d74 - 418b - 4087 - abd6 - c8b70733d6a5”。这种格式确保了在整个系统或多个系统交互环境中,每个社区都能被准确无误地标识,避免了标识符重复的可能性,常用于跨模块、跨数据库的社区数据交互与整合。
- human_readable_id:以简单数字形式呈现,如 “0”“1”“2” 等,作为一种相对简洁且便于人类理解和识别的标识。它在特定的业务场景或用户界面中,可用于快速定位和区分不同社区,相较于复杂的UUID,更适合用户在浏览、筛选社区列表等操作时直观地辨别。
- community:在此输出格式中,其值与
human_readable_id
相同,代表该社区在特定数据结构或算法中的一种内部标识方式,用于系统内部对社区的快速索引和处理。例如,在某些基于数组或简单索引的数据操作中,以此作为索引值可快速定位到对应的社区数据。 - parent:值为 “-1” 表示这些社区在当前层次结构中没有父社区,即它们是顶级社区。若存在非 “-1” 的值,则应是其父社区的
id
,通过这种方式构建起社区的层次关系,有助于实现社区的层次化管理,比如进行层次化的数据分析、展示等操作。 - level:当前输出中所有顶级社区的
level
均为 “0”,表明这是层次结构的起始层级。随着社区的细分,如果存在子社区,其子社区的level
值将依次递增,用于清晰地界定每个社区在整个层次体系中的位置,方便进行层次遍历、层级查询等操作。 - title:采用 “Community + 数字” 的形式,如 “Community 0”“Community 1” 等,作为对社区内容的简要描述名称。虽然这种命名方式相对简单,但在数据集中能快速区分不同社区。在实际应用中,可能会根据社区的具体主题和内容替换为更具描述性的标题,以便用户更直观地了解社区的核心内容。
- entity_ids:以列表形式存储,每个元素是一个UUID,如 “[6139cffc - 8001 - 4ffb - a62c - bb2937466dc5, 3fb34cd…]”。是一个包含了与该社区相关联的实体标识符的集合。这些实体是构成社区的重要元素,通过entity_ids可以明确社区中包含哪些实体,以及这些实体与社区的关系。
- relationship_ids:同样以列表形式呈现,每个ID(如 “90f4f273 - f03a - 4df5 - ae45 - c8d89538dffa”)代表社区内实体之间的关系。包含了与该社区内实体之间关系的标识符。表示社区内实体之间的各种连接和关联关系,通过这些关系可以进一步理解社区内实体之间的相互作用和逻辑联系。
- text_unit_ids: 也是列表形式,每个ID(如 “9cf74fd1963f3ea256ff5e08d48961c31a129e528543f…”)对应与社区相关的文本单元。这些文本单元可能是文档片段、段落等,通过这些ID可以追溯社区知识的文本来源,了解社区构建所依据的具体文本内容。
- period:代表与社区相关的时间标记。
- size:为数值类型,如 “3”“58”“4” 等,表示社区的规模大小。是以社区内包含的实体数量作为衡量标准,直观地反映了社区在整个图结构中的占比和重要性程度,有助于快速了解不同社区的规模差异。
2.7 社区报告
根据社区算法的结果,可以将实体划分到不同社区,并基于每个社区的特点生成社区报告。每个社区报告将描述该社区的核心内容、关联的实体、关系以及社区的重要性等信息。
社区报告的基本内容
社区报告通常会包含以下几个方面的信息:
- 社区概述(Summary):总结社区的核心主题或共同特征。
- 核心实体(Entities):在该社区中,哪些实体是核心实体,即它们在该社区中的重要性较高。
- 重要关系(Relationships):该社区中的实体之间有哪些重要关系,关系的性质如何。
- 影响力与聚类分析(Influence and Clustering):社区内实体之间的相互影响和聚集情况。
- 社区排名与解释(Rank and Explanation):对社区中实体的排名,以及解释它们在社区中的位置或作用。
communities_reports = pd.read_parquet("./output/create_final_community_reports.parquet")
id | human_readable_id | community | parent | level | title | summary | full_content | rank | rank_explanation | findings | full_content_json | period | size | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 2f0522e98d6049958ee35fb88b7ebddc | 0 | 0 | -1 | 0 | Su Shi's Literary Circle | The community centers around prominent figures... | # Su Shi's Literary Circle\n\nThe community ce... | 7.5 | The impact severity rating is high due to the ... | [{'explanation': 'Su Shi is noted for citing t... | {\n "title": "Su Shi's Literary Circle",\n ... | 2025-02-07 | 3 |
1 | 933eeeb93bc4425a87b96d672a5e69b6 | 1 | 1 | -1 | 0 | Community of Su Shi and His Historical Influences | This community analysis revolves around the pr... | # Community of Su Shi and His Historical Influ... | 8.5 | The impact severity rating is high due to the ... | [{'explanation': '苏轼 (Su Shi) is celebrated fo... | {\n "title": "Community of Su Shi and His H... | 2025-02-07 | 58 |
2 | ced276aeaab74a52a3104d309cdac5bc | 2 | 2 | -1 | 0 | 黄州及其关联名胜 | 该社区围绕黄州展开,这是苏轼被贬谪的地方。在此期间,苏轼创作了许多著名作品。黄州及其周边的几... | # 黄州及其关联名胜\n\n该社区围绕黄州展开,这是苏轼被贬谪的地方。在此期间,苏轼创作了许... | 7.5 | 这个社区的重要性在于苏轼及其对中国文化与文学的重大贡献。 | [{'explanation': '黄州是苏轼被流放的地方,在此期间他创作了许多名作。这里对... | {\n "title": "黄州及其关联名胜",\n "summary": "该... | 2025-02-07 | 4 |
3 | 091d36af27ff462281c84fedf5432a9a | 3 | 3 | -1 | 0 | 苏洵家庭学者群体 | 该社区围绕苏洵及其两位儿子苏轼和苏辙展开,涵盖了他们的生活、教育以及他们在北宋时期的学术成就... | # 苏洵家庭学者群体\n\n该社区围绕苏洵及其两位儿子苏轼和苏辙展开,涵盖了他们的生活、教育... | 8.0 | 此社区中的人物在历史和文化上具备重大影响力,尤其通过二苏的文化传播。 | [{'explanation': '苏洵不仅是苏轼和苏辙的父亲,更是他们的启蒙导师。庆历八年... | {\n "title": "苏洵家庭学者群体",\n "summary": "该... | 2025-02-07 | 7 |
4 | b3a3afd68b0f4b2888f765bfd997f08e | 4 | 4 | -1 | 0 | Su Shi's Achievements during the Jiayou Era | The community revolves around the period known... | # Su Shi's Achievements during the Jiayou Era\... | 7.5 | The impact severity rating is relatively high ... | [{'explanation': 'The Jiayou era, part of the ... | {\n "title": "Su Shi's Achievements during ... | 2025-02-07 | 3 |
5 | 6422117f23594d28867cb1ef6f513833 | 5 | 5 | -1 | 0 | The Wutai Shi'an and Related Figures | The community centers around the historical ev... | # The Wutai Shi'an and Related Figures\n\nThe ... | 8.5 | The impact severity rating is high due to the ... | [{'explanation': 'The Wutai Shi'an is central ... | {\n "title": "The Wutai Shi'an and Related ... | 2025-02-07 | 7 |
以下是对该社区报告各字段信息的详细解读:
-
title:是对社区主题的概括性描述,如
Su Shi's Literary Circle
(苏轼的文学圈子)、黄州及其关联名胜
等。标题能够直观地传达社区的核心内容或研究对象,帮助用户快速了解社区的大致范畴。 -
summary:对社区内容的简要概括。例如,
The community centers around prominent figures...
(该社区围绕杰出人物展开……),它提炼了社区的关键信息,包括核心主题、重要事件或人物关系等,让读者在不查看详细内容的情况下,对社区有一个初步的认识。 -
full_content:社区内容的完整文本表述。以 markdown 格式呈现(如
# Su Shi's Literary Circle\n\nThe community ce...
),包含了比summary
更详细的关于社区的描述,可能涵盖了具体的历史事件、人物事迹、文化背景等内容,为深入了解社区提供全面信息。 -
rank:对社区的一个量化排名,通常基于一定的评估标准得出,如
7.5
、8.5
等。这个排名反映了社区在某个维度上的重要程度或影响力,可用于对不同社区进行比较和优先级排序。 -
rank_explanation:对社区排名原因的详细解释。例如,
The impact severity rating is high due to the...
(由于……影响严重程度评级较高),它说明了赋予该社区特定排名的依据,帮助用户理解排名背后的逻辑和考量因素。 -
findings:以列表形式呈现的关于社区的重要发现或结论。每个列表项是一个字典,包含
explanation
字段,详细阐述了具体的发现内容,如{'explanation': 'Su Shi is noted for citing t...'}
(苏轼以引用……而闻名),这些发现有助于深入挖掘社区的核心要点和独特之处。 -
full_content_json:以 JSON 格式存储的社区完整内容。它包含了社区的标题、摘要等信息,以结构化的方式呈现,方便在不同系统或模块之间进行数据交换和解析,同时也便于进行数据的进一步处理和分析。
-
period:表示与社区相关的时间范围或时间点,如
2025 - 02 - 07
。这可能代表社区所涉及事件发生的时间段、社区数据的生成时间等,对于分析社区在特定时间背景下的情况具有重要参考价值。 -
size:代表社区的规模大小,以数值形式体现(如
3
、58
、4
等)。这个数值可能表示社区内包含的实体数量、节点数量、相关文档数量等,反映了社区在整个数据集合中的占比和重要性程度。