Clean Text Toolkit — 清理文本工具包
v0.1.0本地文本清理和检查工具包。提取结构化项目(URLs、emails、phones、IPs、dates、hashtags、money),使用自定义占位符隐藏个人身份信息(PII)(email、phone、信用卡带Luhn检查、SSN、JWT、AWS keys、UUIDs),规范化文本(CRLF/BOM/智能引号/空白字符/制表符/大小写/Unicode NFC),行工具(计数/去重/排序/随机/头/尾),带有停用词的词频统计,并具有三种模式的文本差异比较(unified / side-by-side / HTML)。纯Python 3标准库,无第三方依赖,无远程调用。支持流式处理;100k行去重仅需不到0.1秒。
运行时依赖
版本
clean-text-toolkit 的首个公开发布。
安装命令
点击复制技能文档
clean-text-toolkit v0.1.0 这是一个小型、诚实的本地工具包,用于处理工作代理经常执行的任务:读取某人发送的文本,找到结构化的部分,清理它,编辑掉秘密,并将其转发到下游。 它仅使用Python 3标准库构建。没有pandas,没有nltk,没有pip安装,没有远程调用。 这个技能是clean-csv-toolkit的伴侣:后者处理结构化的表格数据,而这个技能处理非结构化的文本。
这个技能可以做以下事情: scripts/extract.py —— 从任何文本文件中提取结构化的项目。 支持的类型:url、email、phone、ipv4、ipv6、hashtag、mention、hex-color、money、iso-date。 输出到stdout(每行一个或JSON),或到.txt/.json/.jsonl文件。 可选参数:--unique、--sort、--with-line(在源行号前添加前缀)。
scripts/normalize.py —— 清理混乱的文本。 可链式的转换按照命令行顺序应用:--trim、--collapse-spaces、--strip-blank、--to-unix、--to-crlf、--dehyphenate(重新连接OCR/PDF断行)、--unsmart(智能引号/破折号转换为ASCII)、--strip-bom、--strip-zwsp(零宽度空格和连接符)、--tabs-to-spaces N、--spaces-to-tabs N、--lower/--upper/--title、--normalize-unicode NFC|NFD|NFKC|NFKD。
scripts/redact.py —— 通过用占位符代替类似PII的模式来匿名文本。 支持的类型:email、phone、ipv4、ipv6、url、credit-card(使用Luhn校验和来抑制假阳性)、ssn-us、uuid、hex-token(32+十六进制字符,通常用于令牌/哈希)、aws-access-key(AKIA...)、jwt(三个base64url段,带有eyJ头)。 --keep-counts使相同的值始终得到相同的占位符;--preserve-length将占位符填充/截断到原始长度。
scripts/lines.py —— 面向行的实用程序。 --op count | dedupe | sort | shuffle | head | tail。 支持流式传输的count、head、tail。 dedupe和sort在内存中占用O(N)的空间,但每行都很小,因此在笔记本电脑上可以处理1 M行。 --case-insensitive、--keep first|last、--numeric、--reverse、--seed用于确定性洗牌。
scripts/wordcount.py —— 单词/字符/行/句子统计。 可选参数:--top N用于最常见的单词,--stopwords PATH,--min-length N,--ignore-case,--regex PATTERN(默认[A-Za-z']+')。
scripts/diff_text.py —— 三种模式的文本差异比较,使用stdlib difflib。 --mode unified(默认)、--mode side(自定义两列布局)、--mode html(写入带有红/绿色彩的完整HTML文件)。 --ignore-case、--ignore-whitespace、--context N。
scripts/check_deps.sh —— 验证python3是否可用。
这个技能不做以下事情: 它不调用任何LLM、Web服务或远程API。 它不加载整个文件到内存,除非操作真正需要整个文件(全内容归一化、排序和写入、差异比较)。 支持流式传输的操作(extract、lines --op count|head|tail、wordcount用于字符/行计数器)每次读取一行。 它不在调用者提供的输入/输出路径之外写入任何内容。
快速入门:
- 从日志文件中提取每个email:
- 找到每个URL并标记源行:
- 清理混乱的OCR转储:
转换以命令行顺序运行。
- 在共享转录之前编辑PII:
信用卡匹配使用Luhn校验和进行验证,因此16个随机数字不会触发假阳性。
- 行实用程序:
- 单词计数: