ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

GraphRAG 知识图谱数据清洗完整实操:3步把脏数据洗干净

GraphRAG 知识图谱数据清洗完整实操:3步把脏数据洗干净 GraphRAG 知识图谱数据清洗完整实操3步把脏数据洗干净【免费下载链接】graphragA modular graph-based Retrieval-Augmented Generation (RAG) system项目地址: https://gitcode.com/GitHub_Trending/gr/graphragGraphRAG 用原始文本构建知识图谱而图的质量取决于数据洗得干不干净。这篇文章沿着一条数据从入库到出图的路径走讲清楚文本标准化、字段校验、图结构降噪三步帮你把知识图谱的数据清洗做完整。1️⃣ 入库前先跑一遍脏数据自检清单原始数据常见三种脏法每类都对应一个下游后果文本乱码HTML 转义符、不可见控制字符、首尾空格。后果O#39;Reilly和OReilly会被抽成两个节点同一个实体被拆散描述和关系跟着碎片化。字段缺失或类型不对实体记录缺title字段里混进浮点数。后果空值直接进图下游操作当场报错一条坏记录污染一批结果。孤立节点和弱连接LLM 偶尔会抽取上下文里不成立的关系还有大量低频孤立节点。后果社区检测把图切碎社区报告变散全局检索的答案失去焦点。这三类能认出来清洗就成功了一半。2️⃣ 第1步文本标准化先把实体名洗成同一副面孔这一步做的事把实体名和关系描述里的 HTML 转义还原掉剥掉控制字符和首尾空格。去这里看packages/graphrag/graphrag/index/utils/string.py里的clean_str。它在packages/graphrag/graphrag/index/operations/extract_graph/graph_extractor.py中被调用每次从模型输出里解析出实体和关系时都会过一遍。from graphrag.index.utils.string import clean_str raw Operationamp;Dulce\x01 print(clean_str(raw)) # OperationDulce顺序是strip 去首尾空白html.unescape还原amp;这类实体再用正则清掉\x00-\x1f等不可见字符。同一实体不再以多种面目出现后面的去重和度数统计才真正生效。3️⃣ 第2步字段校验把残缺记录拦在图外面这一步做的事对每条抽取记录检查字段是否齐全、类型是否对得上不通过就丢弃不让它进图。去这里看packages/graphrag/graphrag/index/utils/dicts.py里的dict_has_keys_with_types传入一组字段类型配对缺字段或类型转不了就返回 Falsepackages/graphrag/graphrag/index/utils/is_null.py里的is_null则同时接住None和NaN。校验失败时先查这两处。口径建议必填字段按你自己的 schema 定通常是实体名、类型、描述。别把只在部分数据源里才有的字段也设为必填否则整批都会被拒。4️⃣ 第3步stable_lcc 加剪枝给图结构降噪这一步做的事图建好后把不连通的碎岛、低度节点、低权重边裁掉。去这里看packages/graphrag/graphrag/graphs/stable_lcc.py里的stable_lcc它在packages/graphrag/graphrag/index/operations/cluster_graph.py做社区检测前被调用——先归一化节点名只保留最大连通分量再对反向边去重、排序保证同一批边每次都产出同样的结果。想剪得更狠用packages/graphrag/graphrag/index/operations/prune_graph.py配置项定义在packages/graphrag/graphrag/config/models/prune_graph_config.pyprune_graph: min_node_freq: 1 min_node_degree: 2 min_edge_weight_pct: 40 lcc_only: truemin_node_degree: 2表示关联数不足 2 的节点会被移除min_edge_weight_pct: 40表示只保留权重排在前 60% 的边。拿不准就先用默认值剪太狠会把真实关系一起裁掉。5️⃣ 清洗后怎么验证一张对比表四个调参位维度清洗前清洗后同名实体OReilly与O#39;Reilly各是一个节点归一化后合并描述集中在同一节点残缺记录空值进图下游报错在校验层被拦下孤立节点与弱边碎岛把社区切碎报告发散按度数与权重阈值剪枝检索体验噪声实体混入答案容易跑偏实体图更干净社区报告更聚焦调参位分块size默认 1200、overlap默认 100定义在packages/graphrag-chunking/graphrag_chunking/chunking_config.py上下文窗口小的模型把 size 调下来必填字段按业务 schema 定宁少勿滥剪枝阈值社区结果里还看到孤立节点时把min_node_degree往上抬一档验证习惯每次清洗完打开 output 下的entities.parquet和community_reports.parquet确认没误伤重要实体动手之前三步走完脏数据就不会以原样进图了。最省事的验证办法拿官方示例数据集 Operation Dulce 完整跑一遍管道对比清洗前后的实体和关系产出效果比任何理论都直观。【免费下载链接】graphragA modular graph-based Retrieval-Augmented Generation (RAG) system项目地址: https://gitcode.com/GitHub_Trending/gr/graphrag创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表