feat(B09): 「단위:」 없이 괄호만 적는 절도 읽음 — 단위 빈 일위대가 61 → 27
- 「(㎡당)」·「(인/100㎡당)」·「(1,000본당)」처럼 「단위:」를 뺀 절이 있음. 씨앗뿜어붙이기 5-24 가 그 모양이라 통째로 미확보였음(메인이 물은 아홉 중 하나). - 「인/」 앞머리는 품의 단위라 건너뜀 — 「인/㎡당」은 「㎡당 몇 인」이라 공종 단위가 ㎡. - ⚠ 「㎥/1대, 1일」·「대/ton」은 안 받음 — 그건 시공량이지 소요량이 아니라 공종 단위로 읽으면 뜻이 뒤집힘(역수). 밑수가 둘인 「1ha당, 100본당」도 안 받음. - 절 단위 128 → 185, 단위 빈 일위대가 61 → 27. 내역 금액 변동 없음. 시험 2건 추가(받을 것·막을 것 짝), 254건 통과. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -61,6 +61,15 @@ _QUANTITY_UNITS = frozenset(
|
||||
_RE_HEADING = re.compile(r"^#{2,4}\s*(\d+(?:-\d+)*)\s*\.\s*(.*)$")
|
||||
#: 「(단위: ㎡당)」·「(단위 : 100㎡당)」. 앞에 붙은 수는 밑수라 여기서는 버린다.
|
||||
_RE_UNIT_LINE = re.compile(r"^\(\s*단위\s*[::]\s*(.+?)\s*\)\s*$")
|
||||
#: 「단위:」를 빼고 **괄호만** 적는 절이 있다 — 「(㎡당)」·「(인/100㎡당)」·「(1,000본당)」.
|
||||
#: 씨앗뿜어붙이기 5-24 가 그 모양이라 통째로 안 읽히고 있었다(2026-09-08).
|
||||
#:
|
||||
#: ⚠ **앞의 「인/」은 품의 단위이고 뒤가 공종 단위다** — 「인/㎡당」은 「㎡당 몇 인」이라
|
||||
#: 공종 단위가 ㎡ 다. 그래서 그것만 건너뛴다.
|
||||
#: ⚠ **「㎥/1대, 1일」·「대/ton」 같은 것은 안 받는다** — 그건 소요량이 아니라
|
||||
#: **시공량**(1대가 하루에 몇 ㎥)이라, 공종 단위로 읽으면 뜻이 뒤집힌다.
|
||||
#: 쉼표가 들어간 것(「1ha당, 100본당」)도 밑수가 둘이라 안 받는다.
|
||||
_RE_BARE_UNIT_LINE = re.compile(r"^\(\s*(?:인\s*/\s*)?(?:[\d.,]+\s*)?([^\s/,()]+?)\s*당?\s*\)\s*$")
|
||||
#: 공식이 스스로 밝히는 결과 단위 — 「= ㎥/시간」·「㎥/hr」.
|
||||
#: ⚠ 등호와 단위 사이에 **수가 끼는 표기**가 있다 — 「A = 77.7 ㎡/시간」(9-17-1 비탈면 다짐).
|
||||
#: 그 수를 건너뛰지 않으면 그 절이 통째로 안 읽힌다.
|
||||
@@ -102,7 +111,7 @@ def section_units() -> dict[str, str]:
|
||||
continue
|
||||
if section is None or section in units:
|
||||
continue
|
||||
unit_line = _RE_UNIT_LINE.match(line)
|
||||
unit_line = _RE_UNIT_LINE.match(line) or _RE_BARE_UNIT_LINE.match(line)
|
||||
if unit_line:
|
||||
cleaned = _clean_unit(unit_line.group(1))
|
||||
if cleaned:
|
||||
|
||||
Reference in New Issue
Block a user