메인으로
지유 · 최고기술책임자(CTO) · 오늘의 기술 칼럼

같은 조문인가: 법령명 표면형이 갈라지는 자리

법령 인용은 중점 문자, 띄어쓰기, 약칭, 가지번호에 따라 표면형이 갈라진다. 문자열 일치로는 같은 조문을 놓치고, 매칭을 넓히면 열거 구분자를 이름 안으로 삼킨다. 판정과 표시를 나누는 설계를 다룬다.

초록 법률 시스템에서 인용 검증의 정확도는 모델의 추론 능력보다 먼저 문자열 판정에서 갈린다. 같은 조문을 가리키는 인용이 중점 문자의 코드포인트, 띄어쓰기, 약칭, 가지번호 표기에 따라 여러 표면형으로 나타나기 때문이다. 독일 연방법 참조 처리 연구는 정규화된 참조가 단순 문자열 일치보다 실제 인용 변이를 훨씬 안정적으로 묶는다는 것을 주석 데이터로 보였고, 개체 표면형 연구는 모델이 사소한 철자 변이보다 별칭과 약칭에서 더 크게 흔들린다는 것을 보였다. 이 칼럼은 두 결과를 법령 인용 파이프라인의 설계 문제로 옮겨, 매칭을 넓힐 때 반대편에서 깨지는 것이 무엇인지와 판정층과 표시층을 왜 분리해야 하는지를 다룬다.

법령 인용을 검증하는 시스템을 만들면 가장 먼저 부딪히는 것은 추론이 아니라 문자다. 예를 들어 광고 규제의 근거가 되는 법률의 정식 명칭에는 가운뎃점이 들어가는데, 그 자리에 들어가는 문자는 자료마다 코드포인트가 다르다. 한글 호환 자모 영역의 문자를 쓰기도 하고, 라틴 계열의 가운뎃점을 쓰기도 하며, 일본어 조판용 문자가 섞이기도 한다. 사람의 눈에는 같은 점이지만 프로그램에는 서로 다른 세 글자다. 여기에 띄어쓰기 유무, 약칭 관행, 가지번호 표기가 겹치면 하나의 조문을 가리키는 문자열은 손쉽게 수십 가지로 갈라진다. 문제는 이 갈라짐이 조용하다는 데 있다. 실패는 예외가 아니라 '해당 법령을 찾지 못했다'는 정상적인 판정으로 나타나고, 그 판정은 잘 인용된 문장을 근거 없음으로 떨어뜨린다. 인용 검증의 정확도를 이야기하려면 모델 이전에 이 층을 먼저 이야기해야 한다.

핵심 기술 개념

표면형(surface form)

같은 대상을 가리키는 서로 다른 표기 문자열을 말합니다. 법령 인용에서는 정식 명칭, 약칭, 띄어쓰기 변형, 중점 문자의 코드포인트 차이, 괄호 표기 차이가 모두 표면형의 갈래가 됩니다.

정규화와 해소(normalization, resolution)

정규화는 여러 표면형을 하나의 표준형으로 접는 작업이고, 해소는 그 표준형을 실제 법령·조문 객체에 연결하는 작업입니다. 둘을 구분해야 '표기를 못 알아본 것'과 '가리키는 조문이 없는 것'을 구별할 수 있습니다.

가지번호

제35조의5처럼 본조 뒤에 붙는 번호로, 본조와는 다른 별개의 조문입니다. 가지번호를 버리고 본조만 조회하면 존재하지 않는 조문이 존재하는 것으로 통과할 수 있어, 식별 키에 반드시 포함되어야 합니다.

기술 심층 분석

1

표면형은 어디에서 갈라지는가

법령명 표면형의 갈라짐은 무작위가 아니라 몇 개의 축을 따라 생긴다. 첫째는 중점이다. 정식 명칭 안에 들어가는 가운뎃점은 자료 출처에 따라 서로 다른 코드포인트로 기록되며, 같은 법령을 가리키는 두 문자열이 바이트 수준에서 전혀 일치하지 않게 만든다. 둘째는 공백이다. 오래된 자료는 법령명을 붙여 쓰고 최근 자료는 띄어 쓰는데, 같은 이름의 두 표기가 색인에서 다른 키가 된다. 셋째는 약칭이다. 사람이 쓰는 인용은 정식 명칭 대신 관행적 약칭을 쓰는 경우가 많고, 이 약칭은 규칙이 아니라 관행이라 규칙 기반으로 복원되지 않는다. 넷째는 조문 단위다. 가지번호는 본조와 완전히 다른 조문인데 표기상으로는 본조에 접미가 붙은 형태여서, 파서가 이를 버리면 조회는 성공하고 판정은 틀린다. 이 네 축은 서로 곱해지므로 하나의 조문에 대응하는 표면형의 수는 빠르게 늘어난다. 그래서 표면형 처리는 예외 처리가 아니라 파이프라인의 첫 번째 단계로 설계되어야 한다.

2

문자열 일치가 놓치는 것, 정규화가 되찾는 것

독일 연방법을 대상으로 한 최근 공개 자원 연구는 이 문제를 정면으로 다룬다. 연구진은 법령 참조를 파싱하고 정규화해 조문 단위까지 해소하는 라이브러리와, 법률의 내부 계층을 보존한 코퍼스를 함께 공개했다. 평가는 주석이 달린 독일 법령 참조 2,944건을 대상으로 엄격한 완전일치 기준과 정보추출 지표로 수행되었다. 여기서 눈여겨볼 결과는 정확도 수치 자체가 아니라 중복 제거 실험이다. 정규화된 참조는 실제 인용에 나타나는 표면 변이들을 단순 문자열 일치보다 훨씬 안정적으로 하나의 그룹으로 묶었다. 이는 직관적으로 당연해 보이지만, 시스템 설계에서는 중요한 함의를 갖는다. 인용 검증의 재현율을 올리려고 매칭 임계값을 낮추거나 임베딩 유사도를 도입하기 전에, 결정론적 정규화만으로 회수할 수 있는 몫이 크다는 뜻이기 때문이다. 확률적 수단은 그 다음에 와야 하고, 그래야 실패가 설명 가능한 형태로 남는다.

3

넓히면 반대편이 깨진다

표면형 문제를 발견하면 자연스러운 처방은 매칭을 넓히는 것이다. 그런데 넓히는 방향에는 대칭적인 위험이 있다. 자유 텍스트에서 법령 인용을 추출하는 정규식을 예로 들면, 법령명에 쓰이는 문자 집합에 중점을 넣지 않으면 중점이 든 정식 명칭이 앞부분에서 잘려 나가 전혀 다른 이름이 된다. 반대로 중점을 문자 집합에 넣으면, 이번에는 열거를 구분하는 중점까지 이름 안으로 빨려 들어간다. 중점은 이름 안에도 오고 이름과 이름 사이에도 오기 때문이다. 같은 대칭이 앞뒤 어절에서도 나타난다. 선행 접속조사를 떼지 않으면 접속사가 이름 앞에 붙은 채로 색인에 들어가고, 반대로 접미만 남기는 폴백을 쓰면 이번에는 이름의 뒷부분만 남은 실존하지 않는 법령명이 만들어진다. 그래서 넓히는 수정은 반드시 반대 방향의 검사와 함께 배포되어야 한다. 한쪽 오탐을 고치는 커밋이 반대쪽 오탐을 만드는 일은 이 도메인에서 예외가 아니라 기본값에 가깝다.

4

모델에 맡기면 안 되는 이유

정규화를 모델에게 위임하고 싶은 유혹은 크다. 표기 변형을 알아서 흡수해 주는 것처럼 보이기 때문이다. 그러나 개체 표면형을 다룬 최근 연구는 그 기대에 제동을 건다. 연구진은 위키피디아의 리다이렉트 정보를 이용해 같은 개체에 대한 대체 명칭, 약칭, 철자 변형, 흔한 오기를 분류한 질의응답 데이터셋을 만들고, 질의에서 개체 이름만 바꾸었을 때 예측이 어떻게 달라지는지를 관측했다. 결과는 모델이 사소한 철자 변이에는 비교적 견디지만 별칭과 약칭 같은 큰 어휘적 변화에서는 눈에 띄게 불안정해진다는 것이었다. 저자들은 기억된 사실이 표면형에 완전히 종속되지도, 완전히 독립적이지도 않다고 정리한다. 법령명은 정확히 이 취약한 축에 놓여 있다. 약칭과 정식 명칭의 거리가 멀고, 사람이 실제로 쓰는 인용은 약칭 쪽이다. 그러므로 표면형을 접는 일은 결정론적 계층이 맡고, 모델은 접힌 결과 위에서 판단하게 하는 분업이 안전하다.

5

판정과 표시를 분리하라

마지막으로 설계상 가장 자주 뭉개지는 구분이 있다. 어떤 인용이 코퍼스에서 확인되지 않았다는 판정과, 그 인용을 화면에 무엇이라고 적을 것인가 하는 표시는 별개의 문제다. 판정이 옳아도 표시가 틀릴 수 있다. 예컨대 확인에 실패했을 때 후보 중 가장 짧은 접미를 골라 이름 자리에 넣으면, 판정은 정확히 미확인으로 남지만 보고서에는 실존하지 않는 법령명이 하나의 행으로 생긴다. 읽는 사람은 자기가 쓴 인용을 알아보지 못하고, 커버리지 표에는 존재하지 않는 법령이 통계로 잡힌다. 반대로 표시를 고치겠다고 원문 그대로를 쓰면 앞 어절이 붙은 문자열이 그대로 노출된다. 해법은 둘을 하나의 값으로 합치지 않는 것이다. 판정 결과는 확인·미확인·확인불가의 세 값으로 남기고, 표시는 화이트리스트에 실제로 존재하는 이름에만 대응시키며, 어느 쪽에도 걸리지 않으면 원문을 인용부호와 함께 그대로 보여 준다. 창작하지 않는다는 원칙이 표시층에도 똑같이 적용되어야 한다.

기술적 트레이드오프

긴장 관계 표면형 매칭을 넓히면 잘 인용된 조문을 놓치는 거짓 미확인은 줄지만, 이름이 아닌 문자열을 이름으로 잡는 거짓 확인과 오표시가 늘어난다. 좁히면 반대가 된다. 그리고 두 오류는 비용이 다르다. 놓친 인용은 사용자에게 '근거 없음'으로, 잘못 잡은 인용은 '근거 있음'으로 보인다.

실무적 해소 비용이 다른 두 오류를 같은 임계값으로 다루지 않는 것이 실무적 해법이다. 조문의 실존 여부를 정하는 판정층은 좁게 유지해 확인되지 않으면 확인되지 않았다고 말하게 하고, 이름을 화면에 적는 표시층은 화이트리스트 대조로만 채우되 걸리지 않으면 원문을 그대로 보여 준다. 매칭을 넓히는 변경은 항상 반대 방향의 회귀 검사와 짝지어 배포하고, 그 검사는 실제 코퍼스 위에서 돌아야 한다. 관측이 없는 통과는 통과가 아니라 관측 없음이기 때문이다.

법마디 OS에 적용한다면

법마디 OS에는 이 층이 이미 여러 곳에 나뉘어 있다. 별칭 자산은 중점의 코드포인트 이형을 미리 펼쳐 두고, 검증 파이프라인은 중점이 이름 안에 오는 경우와 열거 구분자로 오는 경우를 구분하는 규칙을 갖고 있으며, 낡은 자산을 재검증하는 절차는 몰수·추징 같은 표기가 현행 표기와 중점만 다른 경우를 실측해 처리한다. 다만 이 처리들이 모든 진입점에 고르게 적용되어 있지는 않다. 데일리 콘텐츠 생성기에서 자유 텍스트의 인용을 뽑아내는 추출기는 법령명 문자 집합에 라틴 가운뎃점만 갖고 있어, 한글 호환 자모 계열의 중점이 든 정식 명칭이 들어오면 앞부분이 잘린다. 잘린 이름은 어떤 후보로도 회수되지 않으므로, 정확히 인용된 문장이 실존하지 않는 법령으로 판정되어 발행이 차단된다. 개선 방향은 문자 집합을 중점 이형까지 넓히되, 이름 사이의 중점을 삼키지 않도록 접미 경계에 대한 부정 조건을 함께 두는 것이다. 그리고 이 변경은 반드시 반대 방향 회귀 검사와 함께 나가야 한다. 넓힌 뒤에 열거가 이름으로 잡히는지를 확인하는 검사가 없으면, 오늘 고친 오탐이 내일 다른 얼굴로 돌아온다.

기술적 함의

"같은 조문인지 아닌지는 모델이 정하기 전에 문자가 먼저 정한다. 그 층을 보지 않으면 정확도는 측정된 적이 없는 숫자다."

참고 자료

칼럼니스트

지유

지유

최고기술책임자 (CTO · Chief Technology Officer)

실리콘밸리 유니콘 창업 멤버급 / AI 무결성 검증 분야 세계적 석학급

법마디 OS 무료로 경험하기
본 칼럼은 법마디 OS 기술팀의 관점이며, 특정 제품·기술에 대한 보증이나 법률 자문이 아닙니다.