cjkfold 是什么?修复 PDF 提取文本中的 CJK 形近字,让检索和匹配恢复正常。

cdcailf/cjkfold · GitHub
RAG 知识库
Star164
近 7 天新增0
编程语言Python
开源协议MIT
创建于2026-10-13
最近更新2026-10-15

中文导读

从 PDF 提取的中文文本常混入康熙部首等形近字,它们显示正常却导致搜索、检索和去重失败。cjkfold 用纯 Python 把这些字符折叠回统一汉字,并额外提供扫描工具报告不可见字符和兼容字符。适合处理 PDF 文本、构建检索或 RAG 管线的开发者。

根据 GitHub 公开数据,该项目的编程语言为 Python,开源协议为 MIT,创建于 2026-10-13,最近更新于 2026-10-15,目前有 164 个 Star。

项目介绍

从 PDF 中提取的中文文本,有时会混入一些看起来和普通汉字一模一样、但实际编码不同的字符,比如康熙部首和 CJK 部首补充块中的字符。这些字符不会引发报错,显示也正常,但会导致字符串比较、关键词搜索、向量检索和去重等下游任务悄悄失败。

cjkfold 是一个纯 Python 库,专门把这些形近字折叠回对应的统一汉字。它不依赖任何运行时库,提供 fold、has_lookalikes、iter_lookalikes 等函数,以及 scan 命令行工具来报告文本中的形近字、兼容字符和不可见字符。

与 NFKC 不同,cjkfold 能处理 CJK 部首补充块中 NFKC 故意不映射的 113 个字符,同时刻意不修改全角标点和连字,避免影响文本的存储和显示。

主要功能

适合谁用

需要处理 PDF 提取文本、构建检索或 RAG 系统的开发者,以及任何遇到中文文本匹配失败问题的用户。

快速上手

  1. 安装:pip install cjkfold
  2. 在 Python 中导入并使用:from cjkfold import fold; fold("标准颜⾊值与⻆色按钮")
  3. 使用命令行扫描文件:cjkfold scan document.txt
  4. 如需同时进行 NFKC 规范化:import unicodedata; clean = fold(unicodedata.normalize("NFKC", text))

同类项目

自托管、可扩展的 AI 对话界面,支持 Ollama 与 OpenAI 兼容 API
★ 15.6万 · Python · 更新于 2026-10-16
构建智能体与 LLM 应用的开发框架
★ 14.8万 · Python · 更新于 2026-10-15
100+ 开源 AI Agent、Agent Skills 与 RAG 应用合集
★ 14.2万 · Python · 更新于 2026-10-15
把代码库与文档变成可查询的知识图谱
★ 12.7万 · Python · 更新于 2026-10-14
为 AI 编程助手提供跨会话持久记忆的压缩系统
★ 10.1万 · TypeScript · 更新于 2026-10-16
开源 RAG 引擎,融合 Agent 能力为 LLM 构建上下文层
★ 9.2万 · Go · 更新于 2026-10-15