新增: DeepSeek 全部 33 篇官方论文(原文 PDF 走 Git LFS + 中文精读笔记与索引)
This commit is contained in:
@@ -0,0 +1,81 @@
|
||||
"""Strict final check of the DeepSeek paper collection.
|
||||
|
||||
Usage: python final_check.py <plan.json> <base_dir>
|
||||
"""
|
||||
import json
|
||||
import os
|
||||
import re
|
||||
import sys
|
||||
|
||||
plan = json.load(open(sys.argv[1], encoding='utf-8'))
|
||||
base = sys.argv[2]
|
||||
problems = []
|
||||
tot_cjk = 0
|
||||
tot_pdf = 0
|
||||
|
||||
for p in plan:
|
||||
tag = p['id']
|
||||
pdf = os.path.join(base, p['pdf_path'])
|
||||
md = os.path.join(base, p['md_path'])
|
||||
# PDF
|
||||
if not os.path.exists(pdf):
|
||||
problems.append((tag, 'PDF missing'))
|
||||
else:
|
||||
with open(pdf, 'rb') as f:
|
||||
head = f.read(5)
|
||||
size = os.path.getsize(pdf)
|
||||
tot_pdf += size
|
||||
if head[:4] != b'%PDF':
|
||||
problems.append((tag, 'PDF header invalid: %r' % head))
|
||||
if size < 20000:
|
||||
problems.append((tag, 'PDF too small: %d' % size))
|
||||
# MD
|
||||
if not os.path.exists(md):
|
||||
problems.append((tag, 'MD missing'))
|
||||
continue
|
||||
t = open(md, encoding='utf-8').read()
|
||||
cjk = len(re.findall(r'[\u4e00-\u9fff]', t))
|
||||
tot_cjk += cjk
|
||||
if not t.lstrip().startswith('# '):
|
||||
problems.append((tag, 'no H1 heading'))
|
||||
for sec in ['## 一、', '## 二、', '## 三、', '## 四、', '## 五、', '## 六、']:
|
||||
if sec not in t:
|
||||
problems.append((tag, 'missing section %s' % sec))
|
||||
if cjk < 1200:
|
||||
problems.append((tag, 'too little Chinese text: %d' % cjk))
|
||||
if p['id'] not in t:
|
||||
problems.append((tag, 'arXiv id not referenced in MD'))
|
||||
if 'arxiv.org/abs/' + p['id'] not in t:
|
||||
problems.append((tag, 'abs link missing in MD'))
|
||||
# relative pdf link resolves
|
||||
m = re.search(r'\]\(\./([^)]+\.pdf)\)', t)
|
||||
if not m:
|
||||
problems.append((tag, 'no relative PDF link'))
|
||||
else:
|
||||
target = os.path.join(os.path.dirname(md), m.group(1))
|
||||
if not os.path.exists(target):
|
||||
problems.append((tag, 'relative PDF link broken: %s' % m.group(1)))
|
||||
elif target != pdf.replace('/', os.sep) and os.path.basename(target) != os.path.basename(pdf):
|
||||
problems.append((tag, 'PDF link points elsewhere: %s' % m.group(1)))
|
||||
|
||||
# README
|
||||
rd = os.path.join(base, 'README.md')
|
||||
if not os.path.exists(rd):
|
||||
problems.append(('README', 'missing'))
|
||||
else:
|
||||
rt = open(rd, encoding='utf-8').read()
|
||||
if '(待生成)' in rt:
|
||||
problems.append(('README', 'still contains 待生成 placeholder'))
|
||||
listed = len(re.findall(r'\| \d+ \| \[', rt))
|
||||
if listed != len(plan):
|
||||
problems.append(('README', 'overview rows %d != %d' % (listed, len(plan))))
|
||||
for p in plan:
|
||||
if p['stem'] not in rt:
|
||||
problems.append(('README', 'missing entry ' + p['stem']))
|
||||
|
||||
print('papers checked :', len(plan))
|
||||
print('total PDF bytes : %.1f MB' % (tot_pdf / 1024 / 1024))
|
||||
print('total Chinese chars :', tot_cjk)
|
||||
print('problems :', len(problems))
|
||||
for t, m in problems:
|
||||
print(' !', t, m)
|
||||
Reference in New Issue
Block a user