ocr opなし → table(引数だけで決まる op —— 画像やデータの入力を取らない)import fullseye as fs; fs.ledger.ocr_score(read_text, true_text) -> 'dict' (実装を直接呼ぶなら import ocrclassic; ocrclassic.ocr_score(read_text, true_text) -> 'dict'、台帳から引くなら opssymbol.get("ocr_score"))読み取り結果を真値と Levenshtein 整列で採点し、誤読と棄却を分けて数える(table)。
整列(置換・挿入・削除の費用 1)の後、整列した各対を数える:
correct —— 同じ字rejected —— 真値の字に対して "?"(棄却: 安全側。人が見れば済む)substituted —— 真値と違う字(誤読: 危険側。検査では見逃しになる)inserted —— 真値に無い字が読まれた("?" の挿入も含む)deleted —— 真値の字が読まれなかった誤読と棄却は決して 1 つの率に畳まない。率は真値の字数で割る。 Misreads and rejects are never folded into one rate. Rates are per true character.
py -3.11 examples/poc_symbol_lot_ocr.pytable を入力に取れる)render_symbol · symbol_read_trials · symbol_read_pod · ocr_classify · ocr_read_line · ocr_read_trials
ocr)ocr_font · ocr_render_text · ocr_segment_line · ocr_features · ocr_train · ocr_classify · ocr_read_line · ocr_read_trials
Provenance: ocrclassic.py — SYMBOL operator registry. この per-op ノートは tools/opdocs.py md が自動生成(手編集しない)。
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.