**① 확인 대기 가르기** — 「다 사유 있음」으로 뭉쳐 있던 것을 갈래로 나눠 **무엇이 진짜 할 일인지** 보이게 함
㉮ **영영 할 일 아님 41** — 「일당」은 품의 단위 · 작업조 표(넣으면 호표가 사라짐) · 「인/조」 ·
사람 판정으로 닫힌 표 성격 7 · 비목 구성표 7 따위. **집계에서 갈라 둠**(다음 바퀴에 또 안 세어짐)
㉯ **남이 고쳐야 풀림 23** — [주] 17(코덱스 md 읽기 넓히기) · 밑수 5(마스터가 맞고 md 가 덜 읽음) ·
F0333 원문 md 의심(코덱스 PDF 대조)
㉰ **사용자 판단 필요 11** — ⚠ 아래 셋이 제근 9-21 같은 자리
· F0046·F0068 마스터 밑수가 「1인」 — 「인」은 밑수가 아니라는 2026-09-09 판정과 어긋남
· F0076 「1km」는 반쪽 — 원문은 「인/1일 1km당」으로 분모가 둘
· 그 밖 부록 표 셋(떼어 낼지) · F0405 증가율표 성격 · 토량환산계수 2 · 이형철근 범위 · rebar 1
**② 「당」 없이 몫으로만 적힌 자리를 읽게 함** — 「(인/100㎡)」·「(인/ha)」·「(인/㎡)」·「(대/ton)」.
⚠ 이 구멍으로 다섯 표가 「원문 부재」로 **잘못 세어지고 있었음**(실은 원문이 적어 둔 것).
가림을 넓히고 그 다섯을 사람 판정으로 채움 ⇒ 밑수 확보 246 → **251** · 미확보 84 → 79
(원문 부재 69 + 미판독 10)
시험 — 장부 비교에서 **사람이 적은 메모 칸**(`why`·`class`·`class_why`)을 빼도록 함(자료가 아니라 설명)
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QsGw1Dz9HmhuAxGisxmDPF
324 lines
22 KiB
Python
324 lines
22 KiB
Python
"""공종 마스터 — **사람이 가른 표 형태** (2026-09-13 축 C 1장 · 미판정 표 판정).
|
||
|
||
자동 판정(`detect_form`)이 못 가르거나(undetermined 76표) 잘못 가른 표만 싣는다.
|
||
표마다 **왜 그렇게 갈랐는지 한 줄** — 원문 `(산림청고시 제2025-82호) 산림사업 표준품셈.md`.
|
||
|
||
⚠⚠ 뒤집히면 20배 틀림 — `productivity`(1÷값) / `requirement`(값÷밑수)는 **표 머리와 표 바로 위
|
||
본문의 단위 표현**으로만 가른다. 행 이름·비고의 직종 이름에 끌려 읽지 않는다.
|
||
⚠ **못 가른 표는 싣지 않는다** — undetermined 로 남는다.
|
||
2026-09-17 안티그래비티 원문 대조로 **마지막 14표를 가름** — 산림 미판정이 0 이 됐다.
|
||
⚠ `coefficient`·`reference` 로 가른 표는 일위대가 줄로 안 읽힌다(자원 축이 건너뜀) — 시공능력
|
||
공식 계수는 형태와 상관없이 공식 읽기가 표를 직접 본다.
|
||
⚠ 표 번호는 원천 차례로 매긴 것이라 **절 번호를 함께 대조**한다 — 어긋나면 빌드를 멈춘다.
|
||
"""
|
||
|
||
from __future__ import annotations
|
||
|
||
#: 표 번호 → (절 번호, 형태, 까닭).
|
||
FORM_JUDGMENTS: dict[str, tuple[str, str, str]] = {
|
||
# ── 제2장 재료 기준 ─────────────────────────────────────────────
|
||
"F0044": (
|
||
"2-1-1",
|
||
"reference",
|
||
"기계별 주연료(ℓ/일·대)·잡품(%) — 행이 자원이 아니라 기계, 재료비 산출 기준",
|
||
),
|
||
"F0045": ("2-1-1", "reference", "위와 같은 모양(2드럼 케이블윈치)"),
|
||
"F0047": (
|
||
"2-1-2",
|
||
"reference",
|
||
"기계별 경유(ℓ/일·대)·잡품(%) — [주]③ 「1일당 소요량」, 행이 기계",
|
||
),
|
||
"F0048": ("2-1-3", "reference", "머리 「소요비용(원)」 — 품이 아니라 교체 1회당 금액"),
|
||
"F0054": ("2-1-5", "requirement", "본문 「(본당)」 + 행 「소금처리량(g)」 — 본당 재료 소요량"),
|
||
"F0063": (
|
||
"2-1-13",
|
||
"reference",
|
||
"「소모율 0.00125개/hr」 — 기계 시간당 소모품, 공종 밑수가 아님",
|
||
),
|
||
# ── 제5장 조림·녹화 ─────────────────────────────────────────────
|
||
"F0100": ("5-3-1", "reference", "수종별 묘목 규격(소·중·대묘) 표"),
|
||
"F0101": ("5-3-1", "reference", "간장·근원경 규격 기준 표"),
|
||
"F0105": ("5-3-4", "coefficient", "지주목 미설치 감률 「인력품의 10%·20%」"),
|
||
"F0107": ("5-3-5", "coefficient", "위와 같은 감률(흉고직경 표)"),
|
||
"F0137": ("5-24-2", "reference", "머리 「종자배합비율(%)」 조견표"),
|
||
"F0138": ("5-24-2", "reference", "위와 같은 조견표(기타 적용지역)"),
|
||
"F0146": ("5-29", "coefficient", "행이 K(버킷계수)·f·E·Cm — 굴착기 작업량 공식 계수"),
|
||
# ── 제7장 수확·운재 ─────────────────────────────────────────────
|
||
"F0187": ("7-9-2", "coefficient", "본문 「(단위 : %)」 — 집재재적·거리별 수집량 증가율"),
|
||
"F0189": ("7-11", "productivity", "표 바로 위 「(㎥/1대, 1일)」 — 대당 일 작업량"),
|
||
"F0190": ("7-11", "productivity", "위와 같음(최대집재거리 80m 이하)"),
|
||
"F0194": ("7-13", "reference", "검척 산출 예시(말구직경×개수) 표"),
|
||
"F0196": (
|
||
"7-15-1",
|
||
"productivity",
|
||
"표 바로 위 「(㎥/1대, 1일)」 — 「운반량」 줄이 작업량, 「회수」 줄은 참고",
|
||
),
|
||
"F0197": (
|
||
"7-15-2",
|
||
"productivity",
|
||
"표 바로 위 「(㎥/1대, 1일)」 — 「운재량」 줄이 작업량, [주]① 1대 1일",
|
||
),
|
||
"F0198": ("7-16", "productivity", "표 바로 위 「(㎥/1대, 1일)」 — 「운반량」 줄이 작업량"),
|
||
"F0199": ("7-17", "productivity", "표 바로 위 「(㎥/1대, 1일)」 — 「운반량」 줄이 작업량"),
|
||
"F0200": ("7-18", "productivity", "표 바로 위 「(㎥/1대, 1일)」 — 「운반량」 줄이 작업량"),
|
||
# ── 제8장 방제 ──────────────────────────────────────────────────
|
||
"F0205": ("8-2-1", "reference", "약제 이름·제형 목록"),
|
||
"F0208": ("8-2-2", "reference", "선정약제 목록 + 원액 주입량(㎖/㎝) 기준 — 품 표는 따로 있음"),
|
||
"F0212": ("8-2-3", "reference", "위와 같은 선정약제 목록"),
|
||
"F0216": ("8-2-4", "reference", "위와 같은 선정약제 목록"),
|
||
"F0218": ("8-2-5", "reference", "위와 같은 선정약제 목록"),
|
||
"F0453": (
|
||
# 2026-09-14 절 8-2-3 → 14-2 — 원본이 [주] 「…8-2-3 굴착기(2025)」…」 를 절로 읽던 것을
|
||
# 앞 절 이어받기로 고치자 부록 앞 마지막 절(14-2)로 옮겨 감. 부록엔 절 번호가 없어 여전히
|
||
# 제자리가 아님 — 참고표라 값에 안 닿음.
|
||
"14-2",
|
||
"reference",
|
||
"〔부록 2〕 산림사업별 적용 가능 공종 목록 — 절 경계가 밀려 붙음",
|
||
),
|
||
"F0220": (
|
||
"8-3",
|
||
"productivity",
|
||
"머리 「벌목조재 (㎥/인)·무더기 훈증 (RM/인)·그루터기 박피 (본/인)」 — 인당 작업량",
|
||
),
|
||
"F0221": ("8-3", "coefficient", "본문 「(단위: %)」 — 수종·직경별 지조율"),
|
||
"F0222": ("8-3", "coefficient", "머리 「비율(수간재적의 %)」 — 근주재적 산정율"),
|
||
"F0227": ("8-6-1", "reference", "기종별 희석배수별 약제량(L, 1회) — 살포 계산표"),
|
||
"F0231": ("8-6-3", "reference", "희석배수별 약제소요량(㎖) — 물의 양 대비 계산표"),
|
||
# ── 제9장 토공 — 시공능력 공식 계수 ────────────────────────────
|
||
"F0281": ("9-15-1", "coefficient", "행이 K·f·E·Cm — [주]② Q1=3600×q×K×f×E/Cm"),
|
||
"F0282": ("9-15-2", "coefficient", "행이 T·L·E·q — 불도저 작업량 공식 계수"),
|
||
"F0284": ("9-16-2", "coefficient", "행이 V·W·E·D — [주]② Q=1000×V×W×E×D×f/N"),
|
||
"F0285": ("9-16-3", "coefficient", "흡입준비·운반·흡입·대기 시간 — 살수차 사이클 시간"),
|
||
"F0287": ("9-18", "coefficient", "행이 K·f·E·Cm — [주]① Q1=3600×q×K×f×E/Cm"),
|
||
"F0295": ("9-22", "coefficient", "행이 K·f·E·Cm — [주]③ Q1=3600×q×K×f×E/Cm"),
|
||
# ── 제10장 운반 ─────────────────────────────────────────────────
|
||
"F0300": ("10-3-3", "reference", "「운반비·하차비」 적용 항목 — 값이 없는 구성 안내"),
|
||
"F0301": ("10-4", "coefficient", "t1·t2·t3·t4 — 트레일러 운반 사이클 시간"),
|
||
"F0308": ("10-7-4", "coefficient", "1사이클당 운반량 q — 모노레일 공식 계수"),
|
||
"F0309": ("10-7-4", "coefficient", "본문 「(단위: 분/1회당)」 — 적재·짐부리기 시간"),
|
||
"F0316": ("10-9-1", "reference", "규격별 1회당 표준 운반량(kg·개·㎡) — 적재 기준"),
|
||
"F0319": ("10-11", "coefficient", "행이 L·E·q0 — [주]② q=3.2×e, Cm 공식 계수"),
|
||
"F0320": ("10-12-1", "coefficient", "행이 K·E0·Cm — 굴착기 적재 공식 계수"),
|
||
"F0321": ("10-12-1", "coefficient", "적재·t2·적하 시간 — 덤프트럭 사이클 공식 계수"),
|
||
"F0324": (
|
||
"10-13-2",
|
||
"reference",
|
||
"드론운반 단가산출 항목(준비시간·왕복비행시간 식) — [주] 일본 산출 예",
|
||
),
|
||
# ── 제11·12장 ───────────────────────────────────────────────────
|
||
"F0328": ("11-4", "coefficient", "행이 q·k·f·E — [주]① Q=3600×q×k×f×E/Cm"),
|
||
# 2026-09-14 절 12-2 → 12-17-1 — 원본이 펌프카 타설 [주] 「…12-2 표면 마무리를 따른다.」 를
|
||
# 절 제목으로 읽어 12-2 에 붙어 있던 표(빌더가 앞 절 이어받기로 고침). 형태 판정은 그대로.
|
||
"F0358": ("12-17-1", "reference", "시설유형 Type-Ⅰ~Ⅳ 적용 기준 설명"),
|
||
"F0360": ("12-17-1", "reference", "현장조건 Type-Ⅰ~Ⅲ 적용 기준 설명"),
|
||
"F0385": (
|
||
"12-34-1",
|
||
"requirement",
|
||
"인력(인)·기계(대, Q=5.4㎥/hr) 소요량 표 — 「별도계상」 은 레미콘 자재 줄 비고일 뿐",
|
||
),
|
||
"F0388": (
|
||
"12-34-4",
|
||
"sub_requirement",
|
||
"신축이음 채움재 — 필요수량·고철대 감 3% 가 적힌 실값 표",
|
||
),
|
||
"F0390": (
|
||
"12-36",
|
||
"sub_requirement",
|
||
"P.C BOX 설치 — 미장공 0.14인·보통인부 0.05인 실값 표",
|
||
),
|
||
"F0392": ("12-38-1", "coefficient", "사용횟수별 잔존율(12회 25%·25회 10%)"),
|
||
"F0394": ("12-38-2", "coefficient", "부자재 요율 「주자재비의 24%·52%·79%」"),
|
||
"F0396": ("12-38-3", "reference", "설치 유형(복잡·보통·간단) 적용 시설 설명"),
|
||
# ── 제13장 구조물 ───────────────────────────────────────────────
|
||
"F0400": ("13-2-3", "reference", "큰돌 직경별 뒷길이 기준(㎝)"),
|
||
"F0406": (
|
||
"13-4-1", # 2026-09-17 절 바로잡음 — [주]④ 인용을 13-3 제목으로 읽었던 것(표는 13-4-1 메쌓기 아래)
|
||
"reference",
|
||
"〈돌쌓기의 개수 및 중량의 표준〉 — [주] 인력 돌쌓기·돌붙임 기준",
|
||
),
|
||
"F0408": (
|
||
"13-4-3",
|
||
"sub_requirement",
|
||
"고임돌 소요량(㎥/㎡) — 석재 투입 체적 실값(B08 고임돌표가 이미 읽음)",
|
||
),
|
||
"F0410": (
|
||
"13-4-4",
|
||
"sub_requirement",
|
||
"찰쌓기 뒷채움 콘크리트(㎥/㎡) — 레미콘 실값(B08 채움표가 이미 읽음)",
|
||
),
|
||
"F0411": ("13-4-4", "reference", "[주]⑨ 성토 뒤채움 조약돌 두께(㎝) 기준"),
|
||
"F0412": (
|
||
"13-4-4",
|
||
"reference",
|
||
"[주]⑩ 뒷길이 표준(㎝) — 자동 판정이 「(m)」에 걸려 소요량형으로 오판",
|
||
),
|
||
"F0413": (
|
||
"13-4-4",
|
||
"reference",
|
||
"[주]⑪ 표준경사(1:n) — 자동 판정이 소요량형으로 오판, 찰쌓기(인력)를 막음",
|
||
),
|
||
"F0429": ("13-10-2", "coefficient", "[주]⑥ 관입률별 계수"),
|
||
"F0439": ("13-12-2", "coefficient", "[주]⑦ 높이·기울기 할증(%)"),
|
||
"F0446": ("13-15-2", "reference", "작업조건(어려운·쉬운) 구분 기준"),
|
||
# ── 미판정 14 — 2026-09-17 안티그래비티 원문 대조 규명(브레인 넘김) ─────────────
|
||
# `산림품셈_form_미판정_14개_원문대조_규명.json` · 머리 소실 9 · 혼합 3 · 공식 1 · 글값 1.
|
||
# ⚠ 여기까지가 산림 미판정 전부다 — 다 채우면 `form_undetermined` 가 0 이 된다.
|
||
"F0140": (
|
||
"5-26-1",
|
||
"requirement",
|
||
"머리 소실 — 윗 2줄 막갈이깊이(cm)를 열 머리로 되살림, 토성×깊이별 보통인부(992㎡당)",
|
||
),
|
||
"F0141": ("5-26-2", "requirement", "위와 같은 모양(흙부수기) — 토성×깊이별 보통인부(992㎡당)"),
|
||
"F0142": (
|
||
"5-26-3",
|
||
"requirement",
|
||
"위와 같은 모양(돌자갈치우기) — 토성×깊이별 보통인부(992㎡당)",
|
||
),
|
||
"F0195": (
|
||
"7-14",
|
||
"productivity",
|
||
"머리 소실 — 값이 「1인 1일 공정량」이라 생산량형(품 = 1 ÷ 값)",
|
||
),
|
||
"F0248": ("9-7-1", "coefficient", "머리 소실 — 값이 품이 아니라 계산식 파라미터"),
|
||
"F0322": ("10-13-1", "requirement", "머리 소실 — 묘목 1,000본당 소요량"),
|
||
"F0323": ("10-13-2", "requirement", "위와 같음(묘목 1,000본당)"),
|
||
"F0333": ("12-1-3", "requirement", "머리 소실 — ㎥당 소요량"),
|
||
"F0346": ("12-11-1", "requirement", "머리 소실 — m당 소요량"),
|
||
"F0169": ("7-1-1", "productivity", "혼합 — 값이 「㎥/인·일」이라 생산량형"),
|
||
"F0304": ("10-6-3", "requirement", "혼합 — 소요량형(밑수는 표 밖이라 미확보로 남김)"),
|
||
"F0356": ("12-17-1", "productivity", "혼합 — 값이 「㎥/일」이라 생산량형"),
|
||
# ⚠ 안티그래비티는 이 표를 `formula` 로 적었으나 **낱말을 새로 만들지 않는다** —
|
||
# 받는 쪽이 모르는 형태를 만나면 조용히 건너뛴다. 뜻이 같은 `coefficient`(계산식 파라미터)로 둔다.
|
||
"F0257": (
|
||
"9-11-1",
|
||
"coefficient",
|
||
"공식 명세 — 시공능력 공식 파라미터(안티그래비티 판정 `formula`)",
|
||
),
|
||
"F0349": (
|
||
"12-11-3",
|
||
"requirement",
|
||
"글값 — 값이 글로 적힌 소요량형(밑수는 표 밖이라 미확보로 남김)",
|
||
),
|
||
# ── 실값인데 「참고」로 빠져 있던 표 — 2026-09-18 2바퀴 대조(안티그래비티 권고) ─────
|
||
# ⚠ **`requirement` 로 올리지 않는다.** 이 표들은 홀로 발주되지 않고 **상위 공종에 딸린**
|
||
# 자재·노무 산출표라, 품으로 세우면 위 공종이 이미 세는 몫을 **두 번 센다**
|
||
# (F0393 은 `B09_Estimation_Euroform` 이, F0408·F0410 은 B08 표가 이미 직접 읽는다).
|
||
# 그렇다고 `reference` 로 두면 **금액이 0원으로 증발한다** — 그래서 낱말을 하나 둔다.
|
||
# `sub_requirement` = 「값은 실값, 자리는 상위 공종 종속」. 오늘 읽는 쪽은 건너뛰고,
|
||
# 자원 축이 붙는 날 이 딱지만 보면 된다(로직은 나중에 · 브레인).
|
||
"F0369": ("12-22", "sub_requirement", "P.V.C 파이프 설치 — 아스팔트 4kg·방수공 0.034인 실값"),
|
||
"F0380": ("12-30-1", "sub_requirement", "다웰바 신축이음부 — 재료비의 5%·특별인부 0.1인 실값"),
|
||
"F0381": ("12-30-2", "sub_requirement", "다웰바 접속스라브부 — 위와 같음"),
|
||
"F0382": ("12-31", "sub_requirement", "물끊기 홈 — 특별인부 0.1인·보통인부 0.001인 실값"),
|
||
"F0383": ("12-32", "sub_requirement", "전선관 설치 — 설치비(주재료비의 5%) 실값"),
|
||
"F0386": ("12-34-2", "sub_requirement", "합판거푸집(3회) — 보통인부 0.29인·진동기 2대 실값"),
|
||
"F0391": (
|
||
"12-37",
|
||
"sub_requirement",
|
||
"무근콘크리트 타설 — 콘크리트공 0.15인·보통인부 0.27인 실값",
|
||
),
|
||
"F0393": ("12-38-2", "sub_requirement", "유로폼 사용수량 — 부자재 주재료비의 24~79% 실값"),
|
||
# 보고서가 셈에서 빠뜨린 자리 하나 — 27 중 19만 가려 놓았는데, 남은 여덟을 훑어 찾음.
|
||
"F0338": (
|
||
"12-6",
|
||
"sub_requirement",
|
||
"콘크리트 포장(인력) — 포장공 3인·시공량 100/150㎥ 작업조 실값",
|
||
),
|
||
}
|
||
|
||
|
||
#: 표 번호 → (절 번호, 밑수 수, 밑수 단위, 까닭).
|
||
#: **머리가 소실돼 자동으로는 못 읽는 표**의 밑수만 싣는다 — 원문 대조로 확인한 것만.
|
||
#: ⚠ 자동으로 읽히는 표는 여기 넣지 않는다. 두 곳에서 값을 매기면 어느 쪽이 정본인지 흐려진다.
|
||
#: 근거 — `resources/knowledge/technical_info/01_임도/05_원가정보/
|
||
#: 산림품셈_form_미판정_14개_원문대조_규명.json` (2026-09-17 안티그래비티 원문 대조).
|
||
BASIS_JUDGMENTS: dict[str, tuple[str, float, str, str]] = {
|
||
# ⚠ 2026-09-18 **사람 판정을 물림** — 원문이 「(인/992㎡당)」이다(코덱스가 PDF 에서 되살린 줄 ·
|
||
# 원문 L2878·L2892·L2905). 앞서 100㎡ 로 적어 둔 것은 **머리가 소실돼 원문을 못 읽던 때**
|
||
# 흔한 밑수로 메운 값이었다. 이 고리의 잣대는 「원문이 정본」이므로 사람 판정이 물러난다.
|
||
# ⚠ 992㎡ 는 「0.1정(1반) ≒ 992㎡」 로, 옛 면적 단위를 그대로 쓴 자리다 — 100 과 열 배 가까이
|
||
# 달라 **금액이 크게 갈린다.** 그래서 사유를 남긴다.
|
||
"F0140": (
|
||
"5-26-1",
|
||
992.0,
|
||
"㎡",
|
||
"막갈이 — 원문 「(인/992㎡당)」(앞서 100㎡ 로 메워 둔 것을 물림)",
|
||
),
|
||
"F0141": ("5-26-2", 992.0, "㎡", "흙부수기 — 원문 「(인/992㎡당)」"),
|
||
"F0142": ("5-26-3", 992.0, "㎡", "돌자갈치우기 — 원문 「(인/992㎡당)」"),
|
||
"F0322": ("10-13-1", 1000.0, "본", "묘목 운반 — 원문 「묘목 1,000본당」"),
|
||
"F0323": ("10-13-2", 1000.0, "본", "위와 같음"),
|
||
"F0333": ("12-1-3", 1.0, "㎥", "원문 「㎥당」"),
|
||
"F0346": ("12-11-1", 1.0, "m", "원문 「m당」"),
|
||
# ── 원문 md ↔ 마스터 전수 대조 60건 중 **원문 괄호가 분명하고 분모가 하나인 것만** ────
|
||
# 안티그래비티 보고(02544795) · 원문 줄을 직접 열어 괄호 글을 확인한 것만 싣는다.
|
||
# ⚠ 보고가 적은 단위를 그대로 믿지 않는다 — 「인」을 밑수로 적은 자리가 셋 있었고
|
||
# 그 자리(8-6-2 드론방제·8-6-3 지상방제)는 **2026-09-09 에 오독으로 판정된 바로 그 표**다.
|
||
"F0082": ("3-8", 1.0, "ha", "드론 영상 촬영 — 원문 「(단위 : 인/ha)」"),
|
||
"F0256": ("9-11-1", 1.0, "일", "원문 「(단위: 일당)」"),
|
||
"F0310": ("10-7-4", 1.0, "일", "원문 「(단위: 인/1일당)」"),
|
||
"F0311": ("10-7-4", 1.0, "기", "원문 「(단위: 1기당)」"),
|
||
"F0312": ("10-7-4", 1.0, "일", "원문 「(단위: 1일당)」"),
|
||
"F0313": ("10-8-1", 1.0, "일", "원문 「(단위: 인/1일당)」"),
|
||
"F0314": ("10-8-2", 1.0, "기", "원문 「(단위: 1기당)」"),
|
||
"F0315": ("10-8-3", 1.0, "일", "원문 「(단위: 1일당)」"),
|
||
"F0356": ("12-17-1", 1.0, "일", "원문 「(단위: ㎥/일 당)」"),
|
||
"F0424": ("13-8", 1.0, "㎡", "원문 「(단위: 인/㎡)」"),
|
||
"F0444": ("13-14", 1.0, "개", "원문 「(단위: 인/개)」"),
|
||
# ⚠ **작업조 표는 넣지 않는다**(2026-09-17 유로폼 호표가 사라져 드러남).
|
||
# 12-7-1·12-7-2·12-8 콘크리트 타설 · 12-38-3 유로폼 설치·해체 · 13-16-2 — 원문이 「(단위: 일 당)」
|
||
# 이라 넣고 싶어지지만, 이 표들은 **밑수가 시공량 열**이다(1단위당 = 인원 ÷ 시공량 ·
|
||
# B09 CrewOutput). 「1일」을 밑수로 박으면 그 길이 막혀 **호표가 통째로 사라진다**
|
||
# (2026-09-14 301 판정이 그래서 작업조 표를 미확보 목록에서도 뺐다).
|
||
# ⚠ **왜곡 고침 하나** — 값이 아니라 **밑수 단위**가 틀려 있던 자리.
|
||
# 원문 L7489 가 「(단위: 1일당)」인데 마스터가 「개」로 서 있었다(13-10-2 윈치말뚝 박기).
|
||
"F0430": ("13-10-2", 1.0, "일", "왜곡 고침 — 원문 「(단위: 1일당)」인데 「개」로 서 있었음"),
|
||
# ⚠ 「공㎥」(공간체적)는 자동 판정의 단위 목록에 없어 못 읽던 자리 — 원문 L6634 「(단위: 공㎥당)」.
|
||
# 단위 목록을 넓히면 규격 칸이 밑수로 둔갑하므로, 이 표만 사람 판정으로 둔다(2026-09-18).
|
||
"F0366": ("12-19", 1.0, "공㎥", "강관비계 — 원문 「(단위: 공㎥당)」"),
|
||
# ── 미판독 12 가운데 **분모가 하나로 또렷한 셋** (2026-09-18) ────────────────────
|
||
# ⚠ 자동 판정을 넓히지 않고 표마다 적는다 — 「ha당 소요량」·「조/ha당」 꼴을 규칙으로 잡으려면
|
||
# 숫자 없는 「<단위>당」을 받아야 하는데, 그러면 규격 칸(「(무한궤도,0.7㎥)」)이 밑수로 둔갑한다.
|
||
# 나머지 아홉은 안 채운다 — 「(단위 : 인)」 셋은 2026-09-09 오독 판정 자리이고,
|
||
# 「㎥/1인/1일」·「1ha당, 100본당」·「1대 1조, 시간당」·「인 당」은 분모가 둘 이상이다.
|
||
"F0050": ("2-1-4", 1.0, "ha", "페인트·마킹테이프 — 표머리 「재료비 (ha당 소요량)」"),
|
||
"F0052": ("2-1-4", 1.0, "ha", "위와 같음(다른 표)"),
|
||
"F0224": ("8-5", 1.0, "ha", "페르몬 유인트랩 — 표머리 「소요인력(조/ha당)」"),
|
||
# ── 「당」 없이 몫으로만 적힌 자리 다섯 (2026-09-18 · 장부에 숨어 있던 것) ──────────
|
||
# 원문이 표 바로 위에 「(인/100㎡)」·「(인/ha)」·「(인/㎡)」·「(대/ton)」 로 적어 둔 것.
|
||
# ⚠ 「당」 글자가 없어 자동 판정이 못 읽었다 — 규칙을 넓히기보다 표마다 적는다.
|
||
"F0089": ("4-4", 100.0, "㎡", "가지정리 — 원문 「(인/100㎡)」"),
|
||
"F0090": ("4-5", 1.0, "ha", "벌도 위험목 점검 — 원문 「(인/ha)」"),
|
||
"F0117": ("5-12", 100.0, "㎡", "떼붙임(재배잔디) — 원문 「(인/100㎡)」"),
|
||
"F0129": ("5-21", 1.0, "㎡", "표토이식 — 원문 「(인/㎡)」"),
|
||
"F0191": ("7-11", 1.0, "톤", "동력상하차기 — 원문 「(대/ton)」"),
|
||
}
|
||
|
||
|
||
def judged_basis(table_id: str, number: str | None) -> tuple[float, str, str] | None:
|
||
"""사람이 확인한 `(밑수 수, 단위, 까닭)`. 없으면 `None`. 절 번호가 어긋나면 멈춘다."""
|
||
found = BASIS_JUDGMENTS.get(table_id)
|
||
if found is None:
|
||
return None
|
||
section, quantity, unit, why = found
|
||
if section != number:
|
||
raise ValueError(
|
||
f"밑수 판정 {table_id} 의 절 {section} 이 원천의 {number} 와 다릅니다 — "
|
||
"원천 표 차례가 바뀌었으니 판정을 다시 대조할 것"
|
||
)
|
||
return quantity, unit, f"사람 판정 — {why}"
|
||
|
||
|
||
def judged_form(table_id: str, number: str | None) -> tuple[str, str] | None:
|
||
"""사람이 가른 `(형태, 까닭)`. 없으면 `None`. 절 번호가 어긋나면 멈춘다."""
|
||
found = FORM_JUDGMENTS.get(table_id)
|
||
if found is None:
|
||
return None
|
||
section, form, why = found
|
||
if section != number:
|
||
raise ValueError(
|
||
f"표 형태 판정 {table_id} 의 절 {section} 이 원천의 {number} 와 다릅니다 — "
|
||
"원천 표 차례가 바뀌었으니 판정을 다시 대조할 것"
|
||
)
|
||
return form, f"사람 판정 — {why}"
|