Paper A v13 rev9.1: HC-meaning + same-pair table + interview/framing rebalance, plus typesetting polish
Respond to a second hostile GPT-5.5 reviewer pass on rev9. Four substantive changes plus accumulated typesetting polish. Reviewer points addressed: - HC != reuse (Fatal 1): new Sec III-F "What HC Means and Does Not Mean" states plainly that HC denotes an extreme within-accountant repetition pattern that is rare between unrelated accountants, not a reuse label; reuse is one interpretation, carried at Firm A by byte-identity + context, never implied by HC alone; no reuse claim is made for Firms B/C/D. - Any-pair construction (Fatal 2): new Table VI gives the per-signature HC flag rate by firm under the deployed any-pair rule vs the strict same-pair rule (cosine and dHash from the same partner). Same-pair lowers all rates but widens the firm gap: Firm A 57.3% vs baseline 5-9%, ratio 2.4-3.4x -> 6.4-10.8x, so the HC region is not an artefact of combining extrema from different pairs. Reproducible via samepair_hc.py (Hamming on stored dHash vectors). - Interviews (Fatal 3): Sec III-A now states the interviews are used only to contextualize, are corroborative not confirmatory and not independently reproducible; their one load-bearing use (Firm A as known-positive benchmark) lowers rather than raises the claim. Empirical claims rest on calibration + byte-identity, which stand without them. - Framing (Fatal 4, rebalance not relabel): contribution 3 elevated to the methodological core (label-free construction/characterization of an operating point without labels), explicitly demonstrated/stress-tested on audit signatures "rather than a finished, fully general framework." The audit finding is kept as a headline result, not demoted to a mere case study, and no general-framework claim is made. Typesetting polish (verified by rendering pages to images): - Unify scientific notation in Table II ([4x10^-6, 2.3x10^-5]). - Tighten Table II row labels to cut excessive wrapping (3 lines -> 2). - Fix duplicated figure captions (empty image alt-text so pandoc no longer auto-captions on top of the hand-written caption); unify caption punctuation. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Qn59FdF9JMyfFg3sjcUNNG
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
"""Table VI: HC flag rate by firm under any-pair (deployed) vs strict same-pair rule.
|
||||
same-pair dHash = Hamming distance between a signature's dHash and its cosine-closest
|
||||
same-accountant partner (closest_match_file). Reproduces from signature_analysis.db."""
|
||||
import sqlite3
|
||||
from collections import defaultdict
|
||||
DB="/Volumes/NV2/PDF-Processing/signature-analysis/signature_analysis.db"
|
||||
BIG4=('勤業眾信聯合','資誠聯合','安侯建業聯合','安永聯合')
|
||||
FM={'勤業眾信聯合':'A','安侯建業聯合':'B','資誠聯合':'C','安永聯合':'D'}
|
||||
con=sqlite3.connect(DB);cur=con.cursor()
|
||||
cur.execute("SELECT image_filename, dhash_vector FROM signatures WHERE dhash_vector IS NOT NULL")
|
||||
dh={fn:bytes(b) for fn,b in cur.fetchall()}
|
||||
ham=lambda a,b: bin(int.from_bytes(a,'big')^int.from_bytes(b,'big')).count('1')
|
||||
cur.execute(f"""SELECT excel_firm,max_similarity_to_same_accountant,min_dhash_independent,closest_match_file,image_filename
|
||||
FROM signatures WHERE is_valid=1 AND max_similarity_to_same_accountant IS NOT NULL
|
||||
AND min_dhash_independent IS NOT NULL AND excel_firm IN ({','.join('?'*4)})""",BIG4)
|
||||
st=defaultdict(lambda:[0,0,0])
|
||||
for firm,cos,mindh,cmf,imf in cur.fetchall():
|
||||
f=FM[firm]; st[f][0]+=1
|
||||
st[f][1]+= (cos>0.95 and mindh<=5)
|
||||
sp=ham(dh[imf],dh[cmf]) if (cmf in dh and imf in dh) else 99
|
||||
st[f][2]+= (cos>0.95 and sp<=5)
|
||||
con.close()
|
||||
print(f"{'firm':5}{'n':>8}{'any-pair%':>11}{'same-pair%':>12}")
|
||||
T=[0,0,0]
|
||||
for f in 'ABCD':
|
||||
n,a,s=st[f]; T=[T[0]+n,T[1]+a,T[2]+s]
|
||||
print(f"{f:5}{n:>8}{100*a/n:>10.1f}%{100*s/n:>11.1f}%")
|
||||
n,a,s=T; print(f"{'all':5}{n:>8}{100*a/n:>10.1f}%{100*s/n:>11.1f}%")
|
||||
Reference in New Issue
Block a user