跳到主要内容

lieflat-gongwen

收藏0

基于真实公文全量统计的公文写作 skill。分公文族与党建族两族,覆盖调研报告/领导讲话/工作意见/经验材料/工作方案/经验总结六类公文族文体,加千字级党建/基层经验材料一类,提供可验收的数值参数、骨架公式、标题技法和自动化自检脚本。触发场景:"写一篇调研报告""起草领导讲话""写份工作意见""写篇党建经验材料""把材料写成经验总结""让这篇稿子更有公文味""检查这篇公文的参数对不对"。

让 AI 安装

DDDZZ最新版本 0.1.0更新于 2026-11-03下载 0 次

scripts/strip_meta.py

2.0 KB
1#!/usr/bin/env python3
2"""剥离 _meta 数据文件中的逐字原文字段,保留纯数值统计。
3
4版权面在文本字段(标题、机构、首末句、提领句),不在数值字段。
5剥完的文件仍可支撑参数复算,但无法反查源篇目。
6
7用法: python3 strip_meta.py # 原地改写
8 python3 strip_meta.py --dry-run # 只报告
9"""
10import json, sys
11from pathlib import Path
12
13ROOT = Path(__file__).resolve().parent.parent
14
15# 文件 → 要剥掉的字段
16STRIP = {
17 '公文语料/_meta/all_pieces.json': ['title', 'org', 'first_sent', 'last_sent', 'h1_list'],
18 '党建语料/_meta/l2_struct.json': ['title', 'leads', 'subs'],
19}
20# 剥完只剩计数字段、信息量不足以独立存在的文件
21DELETE = ['党建语料/_meta/l2_leads.json']
22
23
24def strip_file(rel, fields, dry):
25 path = ROOT / rel
26 if not path.exists():
27 print(f' 跳过(不存在): {rel}')
28 return
29 items = json.loads(path.read_text(encoding='utf-8'))
30 removed = {f: 0 for f in fields}
31 for it in items:
32 for f in fields:
33 if f in it:
34 del it[f]
35 removed[f] += 1
36 kept = sorted(items[0].keys()) if items else []
37 print(f' {rel}')
38 print(f' 剥离 {len(items)} 条 × {[f + "×" + str(n) for f, n in removed.items()]}')
39 print(f' 保留字段: {kept}')
40 if not dry:
41 path.write_text(json.dumps(items, ensure_ascii=False, indent=1) + '\n',
42 encoding='utf-8')
43
44
45def main():
46 dry = '--dry-run' in sys.argv
47 print('剥离逐字原文字段:' if not dry else '(dry-run)将剥离:')
48 for rel, fields in STRIP.items():
49 strip_file(rel, fields, dry)
50 print('\n整体删除(剥完无剩余信息):')
51 for rel in DELETE:
52 path = ROOT / rel
53 print(f' {rel} {"(不存在)" if not path.exists() else ""}')
54 if not dry and path.exists():
55 path.unlink()
56
57
58if __name__ == '__main__':
59 main()

文件内容是平台检查时读出的文本,只供查看。平台不会运行包里的任何脚本或程序。