86 lines
2.8 KiB
Python
86 lines
2.8 KiB
Python
import os, re
|
|
|
|
bases = {
|
|
"A-内卷": "/app/working/workspaces/default/novels/r2-xi-tong-nei-juan",
|
|
"B-替身": "/app/working/workspaces/default/novels/r2-quan-ji-di-ti-shen",
|
|
"C-考研": "/app/working/workspaces/default/novels/r2-quan-ban-kao-yan",
|
|
"D-修脚": "/app/working/workspaces/default/novels/r2-ai-xiu-jiao",
|
|
}
|
|
|
|
def get_num(f):
|
|
m = re.search(r"第(\\d+)章", f)
|
|
return int(m.group(1)) if m else 99
|
|
|
|
print("=" * 70)
|
|
print("第二轮4部短故事 -- 最终质量验证")
|
|
print("=" * 70)
|
|
|
|
for name, base in bases.items():
|
|
files = sorted(
|
|
[f for f in os.listdir(base) if f.endswith(".md") and f != "README.md"],
|
|
key=get_num
|
|
)
|
|
all_text = "".join(open(os.path.join(base, f)).read() for f in files)
|
|
sizes = [len(open(os.path.join(base, f)).read().encode("utf-8")) for f in files]
|
|
hanzi = len(re.findall(r"[\\u4e00-\\u9fff]", all_text))
|
|
|
|
# AI味
|
|
r = len(re.findall(r"燃点|【燃|(燃", all_text))
|
|
w = len(re.findall(r"第[一二三四五六七八九十百]+章.*完", all_text))
|
|
s = len(re.findall(r"深吸一口气|深呼一口气", all_text))
|
|
wo = len(re.findall(r"握紧|攥紧|捏紧", all_text))
|
|
d = len(re.findall(r"^\\s*——+\\s*$", all_text, re.MULTILINE))
|
|
m = len(re.findall(r"不对.*系统|这不是.*小说|作者注", all_text))
|
|
q = len(re.findall(r"(全书完)|(全文完)", all_text))
|
|
|
|
print()
|
|
print("-" * 60)
|
|
print(name)
|
|
print("-" * 60)
|
|
avg = sum(sizes) // 15 if len(sizes) == 15 else 0
|
|
print(f" 汉字:~{hanzi} | 均:{avg}b | 最短:{min(sizes)}b | 最长:{max(sizes)}b")
|
|
print(f" 15章完整: {'OK' if len(files)==15 else 'ISSUE'}")
|
|
|
|
flags = []
|
|
if r: flags.append(f"燃点({r})")
|
|
if w: flags.append(f"章末标({w})")
|
|
if s >= 3: flags.append(f"深吸气({s})")
|
|
if wo >= 5: flags.append(f"握紧({wo})")
|
|
if d: flags.append(f"——行({d})")
|
|
if m: flags.append(f"meta自嘲({m})")
|
|
if q: flags.append(f"全书完({q})")
|
|
|
|
if flags:
|
|
print(f" AI味残留: ⚠️ {' | '.join(flags)}")
|
|
else:
|
|
print(f" AI味残留: ✅ 零残留")
|
|
|
|
if min(sizes) < 1200:
|
|
print(f" 章节完整度: ⚠️ 最短仅{min(sizes)}b")
|
|
else:
|
|
print(f" 章节完整度: ✅ 全部>=1200b")
|
|
|
|
score = 100
|
|
score -= r * 15
|
|
score -= w * 15
|
|
if s >= 3: score -= 10
|
|
if wo >= 5: score -= 10
|
|
score -= d * 5
|
|
score -= m * 10
|
|
score -= q * 15
|
|
if min(sizes) < 1200: score -= 5
|
|
print(f" 最终评分: {max(score, 0)}/100")
|
|
if score >= 90:
|
|
print(" 评级: S -- 可直接投番茄")
|
|
elif score >= 75:
|
|
print(" 评级: A -- 微调后可投")
|
|
elif score >= 60:
|
|
print(" 评级: B -- 需要修改")
|
|
else:
|
|
print(" 评级: C -- 不建议投")
|
|
|
|
print()
|
|
print("=" * 70)
|
|
print("验证完成")
|
|
print("=" * 70)
|