拓冰建站拓冰建站
首页 / 资讯中心 / 正文

3 个场景跑通 GraphRAG 数据清洗:一条命令到图谱去噪的完整指南

3 个场景跑通 GraphRAG 数据清洗一条命令到图谱去噪的完整指南【免费下载链接】graphragA modular graph-based Retrieval-Augmented Generation (RAG) system项目地址: https://gitcode.com/GitHub_Trending/gr/graphrag实体表里混进一堆amp;乱码社区报告碎成一片——做 GraphRAG 数据清洗时这种翻车几乎人人遇到过。GraphRAG 是微软开源的模块化图结构检索增强生成系统内置了从文本净化到图结构去噪的完整数据预处理工具链。它到底在清洗什么这条工具链管四层文本层HTML 反转义、控制字符剔除、结构层字段类型与空值校验、分块层把长文切成固定长度的文本单元、图层剔除孤立节点和弱边。就像下厨前处理食材先冲洗、再挑骨、最后切均匀端上桌的菜才不用返工。落到代码上文本净化是clean_str结构校验是dict_has_keys_with_types和is_null分块在 graphrag-chunking 包图净化是stable_lcc加 prune_graph 配置段。从零跑通最小路径拿仓库git clone https://gitcode.com/GitHub_Trending/gr/graphrag准备一个放 .txt / .md 文件的 input 目录。执行graphrag init -d ./my-index -i ./input生成 settings.yaml 和 config.yaml 骨架。打开 settings.yaml调整清洗相关配置段。最小可用的片段长这样chunking: type: tokens size: 800 overlap: 100 cluster_graph: use_lcc: true max_cluster_size: 10 prune_graph: min_node_freq: 2执行graphrag index -i ./my-index终端会逐个打印每个工作流的运行状态到 output 目录检查 entities.parquet、relationships.parquet、communities.parquet这就是清洗后的知识图谱。文本净化这步不用你手动接线packages/graphrag/graphrag/index/utils/string.py 里的clean_str会在实体抽取时被统一调用负责 HTML 反转义和控制字符剔除。三种典型场景的正确姿势HTML 转义把实体名打碎了你会看到entities.parquet 里实体名全是amp;、#39;关系描述里也是乱码。工具在哪clean_str它在 graph_extractor.py 的抽取逻辑里被统一调用处理标准 HTML 实体并剥掉 \x00–\x1f 段控制字符。怎么配默认管道自动走这一步你自己写抽取逻辑时对 LLM 输出逐字段调clean_str即可。实体提取失败分块把关键句劈开了你会看到一句话被劈进两个 chunk实体名只抽出一半描述在词中间断开。工具在哪chunking 配置段默认 tokens 策略、size 1200、overlap 100定义见 packages/graphrag-chunking/graphrag_chunking/chunking_config.py。怎么配把size降到 600–800overlap保持 100让关键概念不被截断这是 GraphRAG chunking 配置里最常被调的两个值。社区检测噪声图谱里全是孤零零的小岛你会看到communities.parquet 挤满单节点社区社区报告全是废话。工具在哪packages/graphrag/graphrag/graphs/stable_lcc.py 的stable_lcc先归一化节点名反转义、转大写、去空白再只保留最大连通分量prune_graph 段的min_node_freq默认 2和min_edge_weight_pct默认 40继续剪掉一次性实体和弱边。怎么配cluster_graph.use_lcc保持 true默认值一次性实体多就把min_node_freq提到 3。参数怎么选参数默认值作用什么时候该调chunking.size1200每个 chunk 的 token 数关键句常被劈开就调小chunking.overlap100相邻 chunk 重叠 token 数概念被切到两段时调大cluster_graph.max_cluster_size10社区的最大规模社区报告太碎或太粗时调prune_graph.min_node_freq2节点保留的最小出现次数一次性实体泛滥时调大prune_graph.min_edge_weight_pct40.0边权保留的最小百分位弱关系噪声多时调大怎么确认清洗生效了在 output/entities.parquet 和 relationships.parquet 里搜amp;、#39;命中应为 0。对照 communities.parquet 的节点规模stable_lcc跑完孤立节点不该再进图同一实体也不该因大小写或空白差异拆成多个节点。对比调整前后的社区大小分布小孤岛社区应明显减少其余量化指标以你的语料实测为准。翻车速查 如果你遇到实体名里仍有 HTML 转义先查输入源文件是否二次转义从源头清洗别指望下游兜底。如果你遇到社区碎成几百个小片先检查prune_graph是否被关掉或min_edge_weight_pct设得过低而不是怀疑社区算法。如果你遇到同样数据重跑图结果不稳定先确认边表走了stable_lcc的归一化与去重见其 docstring 说明再考虑随机种子。接下来可以用内置示例语料完整跑一遍graphrag index把全链路走通。用grep -c amp; output/entities.parquet确认转义字符清零。按上表逐个调整参数对比前后 communities.parquet 的差异。完整参数说明见仓库内置的 Operation Dulce 示例数据集 配套的 docs/config 配置文档。【免费下载链接】graphragA modular graph-based Retrieval-Augmented Generation (RAG) system项目地址: https://gitcode.com/GitHub_Trending/gr/graphrag创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门