/** * @copyright Sister Software * @license AGPL-3.0 * @author Teffen Ellis, et al. * * Align one permit-registry address string to the LABEL register's key, or answer null (#2204 §5). * * Every permit row carries the same premises in both address systems, typed by a clerk: * * 도로명주소 서울특별시 종로구 종로 233, 1층 일부호 (종로5가) * 지번주소 서울특별시 종로구 종로5가 43-1 * * The road-name form is `<시도> <시군구> <도로명> <건물번호>`, then an optional `, <상세주소>` (floor, unit, building) * and an optional parenthetical `(<법정동>[, <건물명>])`; the lot-number form is * `<시도> <시군구> <법정동> [<리>] [산]<본번>[-<부번>]` followed by whatever the clerk added. * * ALIGNMENT IS EXACT against {@link KeyIndex}, never fuzzy. A string that satisfies the whole key becomes a training * row whose spans are the matched pieces; one that does not is a BOARD row — an address the model will be read on and * never trained on. The rate per file is measured and reported before any row enters a corpus, which is the rule a * noisy source is admitted under. */ import { type KeyIndex } from "#kr/adapters/localdata/key-index"; /** * One aligned string: the spans that matched, and the key they matched under. */ export interface Aligned { raw: string; spanStarts: number[]; spanEnds: number[]; spanTags: string[]; register: "registry_road" | "registry_lot"; region: string; sigungu: string; } /** * Align one road-name string, or answer null. */ export declare function alignRoadAddress(text: string, index: KeyIndex): Aligned | null; /** * Align one lot-number string, or answer null. */ export declare function alignLotAddress(text: string, index: KeyIndex): Aligned | null; //# sourceMappingURL=align.d.ts.map