Initial commit
This commit is contained in:
commit
f45881dc88
161 files changed
+21597
No files matched your search
@@ -0,0 +1,104 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
"""第一轮自查:故事1全面质量扫描"""
|
||||
import os, re
|
||||
|
||||
d = "/app/working/workspaces/default/novels/round3/01-越躺平越强"
|
||||
rr = re.compile(r'[\u4e00-\u9fff]')
|
||||
|
||||
files = sorted([f for f in os.listdir(d) if f.endswith('.md') and f.startswith('第')])
|
||||
all_text = ''
|
||||
for f in files:
|
||||
all_text += open(os.path.join(d, f), 'r', encoding='utf-8').read()
|
||||
|
||||
print("=" * 60)
|
||||
print("第一轮自查:8项全面质量扫描")
|
||||
print("=" * 60)
|
||||
|
||||
issues = []
|
||||
|
||||
print("\n[1/8] 章节完整性")
|
||||
print(f" 总章节:{len(files)}/15")
|
||||
for i, f in enumerate(files, 1):
|
||||
ok = f'第{i:02d}' in f or f'第{i:03d}' in f
|
||||
if not ok:
|
||||
issues.append(f"章节编号异常: {f}")
|
||||
print(f" ❌ {f}")
|
||||
else:
|
||||
print(f" ✅ {f}")
|
||||
|
||||
print("\n[2/8] 汉字字数检查")
|
||||
min_cn, min_f = 99999, ""
|
||||
for f in files:
|
||||
c = open(os.path.join(d, f), 'r', encoding='utf-8').read()
|
||||
cn = len(rr.findall(c))
|
||||
if cn < min_cn:
|
||||
min_cn, min_f = cn, f
|
||||
status = "✅" if cn >= 1800 else "❌" if cn < 1500 else "⚠️"
|
||||
print(f" {status} {f}: {cn}汉字")
|
||||
if min_cn < 1800:
|
||||
issues.append(f"最低字数不足: {min_f}({min_cn}汉字)")
|
||||
|
||||
print("\n[3/8] 敏感词检查")
|
||||
for w in ['公司', '集团', '企业', '被裁', '裁员', '辞退', '倒闭', '破产', '负债', '讨薪', '罢工', '劳资']:
|
||||
cnt = all_text.count(w)
|
||||
if cnt > 0:
|
||||
print(f" ⚠️ \"{w}\": {cnt}次")
|
||||
issues.append(f"敏感词\"{w}\"出现{cnt}次")
|
||||
else:
|
||||
print(f" ✅ \"{w}\": 0次")
|
||||
|
||||
print("\n[4/8] AI味残留检查")
|
||||
for w in ['燃点', '深吸一口气', '深吸了口气', '握紧', '攥紧', '不由得', '心头一', '暗暗',
|
||||
'咬了咬牙', '捏了一把汗', '倒吸一口', '陷入了沉思', '嘴角上扬', '冷峻', '凝重']:
|
||||
cnt = all_text.count(w)
|
||||
if cnt > 0:
|
||||
print(f" ⚠️ \"{w}\": {cnt}次")
|
||||
issues.append(f"AI味词\"{w}\"出现{cnt}次")
|
||||
else:
|
||||
print(f" ✅ \"{w}\": 0次")
|
||||
|
||||
print("\n[5/8] 段落长度检查")
|
||||
long_para = 0
|
||||
for f in files:
|
||||
c = open(os.path.join(d, f), 'r', encoding='utf-8').read()
|
||||
paras = [p for p in c.split('\n\n') if len(p.strip()) > 0]
|
||||
for p in paras:
|
||||
cn = len(rr.findall(p))
|
||||
if cn > 800:
|
||||
long_para += 1
|
||||
print(f" 超长段落(>800汉字): {long_para}处")
|
||||
if long_para > 5:
|
||||
issues.append(f"超长段落过多: {long_para}处")
|
||||
|
||||
print("\n[6/8] 标点规范检查")
|
||||
for w in ['。。。', '!!', '??', '、、', ',,,', '...']:
|
||||
cnt = all_text.count(w)
|
||||
if cnt > 0:
|
||||
print(f" ⚠️ \"{w}\": {cnt}次")
|
||||
issues.append(f"不规范标点\"{w}\"出现{cnt}次")
|
||||
else:
|
||||
print(f" ✅ \"{w}\": 0次")
|
||||
|
||||
print("\n[7/8] 独立行'——'检查")
|
||||
indent_lines = [l for l in all_text.split('\n') if l.strip() == '——']
|
||||
print(f" 独立行'——': {len(indent_lines)}处")
|
||||
if len(indent_lines) > 0:
|
||||
issues.append(f"独立行'——'{len(indent_lines)}处")
|
||||
|
||||
print("\n[8/8] 对话比例估算")
|
||||
dialog_chars = len(re.findall(r'「[^」]*」', all_text))
|
||||
total_cn = len(rr.findall(all_text))
|
||||
print(f" 对话汉字数: {dialog_chars}")
|
||||
print(f" 总汉字数: {total_cn}")
|
||||
ratio = dialog_chars / max(total_cn, 1)
|
||||
print(f" 对话占比: {ratio:.1%}")
|
||||
if ratio < 0.05:
|
||||
issues.append(f"对话占比过低: {ratio:.1%}")
|
||||
|
||||
print("\n" + "=" * 60)
|
||||
print(f"自查结果:共发现 {len(issues)} 个问题")
|
||||
for i, issue in enumerate(issues, 1):
|
||||
print(f" {i}. {issue}")
|
||||
if not issues:
|
||||
print(" ✅ 全部通过,无问题!")
|
||||
print("=" * 60)
|
||||
Reference in new issue
Block a user