Lexical Indexing
토큰화·역색인·TF-IDF·BM25를 실제 문서와 질의로 계산한다.
Retrieval Tokenization
검색에서 같다고 볼 문자열
Overview 개요#
Tokenization(토큰화)은 어떤 문자열을 검색 특징으로 볼지 정한다. 한국어 조사와 합성어 때문에 공백 기준만으로는 사용자가 입력한 표현과 문서 표현이 잘 맞지 않을 수 있다.
Concept 핵심 개념#
이 코퍼스는 정규화한 단어형에 w:를 붙이고, 한글 연속 구간의 2·3글자 n-gram에 g:를 붙인다. 같은 글자 조합이 단어형과 부분 문자열에 동시에 나타나도 서로 다른 특징으로 센다. 어떤 특징이 중복될지는 검색 점수에 영향을 준다.
n-gram은 조사 변화나 부분 일치를 도울 수 있지만 의미가 다른 단어도 겹치게 만든다. 형태소 분석기, stemming, 신경망 tokenizer는 다른 선택지다. 색인 문서와 질의에 서로 다른 규칙을 적용하면 같은 표현도 검색되지 않을 수 있으므로 분석기 버전을 함께 고정한다.
Gₙ(w) = { w[i : i+n] : 0 ≤ i ≤ |w|−n }Hands-on 직접 살펴보기#
단어형·n-gram·혼합 모드를 바꾸고 빈도가 높은 특징을 비교한다. 이 선택기는 특징 생성 원리만 바꾸며 전체 검색 색인은 혼합 규칙으로 고정되어 있다.
기본 입력으로 계산한 결과
w는 단어형, g는 한글 2·3글자 특징이다. 형태소 분석이나 신경망 토크나이저를 실행한 것이 아니다.
| 특징 | 빈도 |
|---|---|
| g:산소 | 6 |
| g:농도 | 5 |
| g:말한 | 5 |
| g:말한다 | 5 |
| g:미만 | 5 |
| g:한다 | 5 |
| w:말한다 | 5 |
| g:결핍 | 4 |
| g:공기 | 4 |
| g:농도가 | 4 |
| g:도가 | 4 |
| g:산화 | 4 |
| g:산화탄 | 4 |
| g:센트 | 4 |
| g:퍼센 | 4 |
| g:퍼센트 | 4 |
| g:화탄 | 4 |
| g:산소결 | 3 |
| g:소결 | 3 |
| g:소결핍 | 3 |
원문 발췌와 검색 질의는 한국어를 유지합니다. 문서 ID와 PDF 페이지로 계산에 쓰인 출처를 확인할 수 있습니다.
Inverted Index
특징에서 문서 목록으로
Overview 개요#
Inverted index(역색인)는 각 특징이 등장한 문서 ID와 빈도를 저장한다. 질의가 들어왔을 때 모든 본문을 다시 훑는 대신 관련 postings를 읽는다.
Concept 핵심 개념#
DF(Document Frequency)는 해당 특징을 포함한 문서 수이고 TF(Term Frequency)는 한 문서 안의 발생 수다. postings의 문서 ID를 합치면 OR 후보, 교집합을 구하면 AND 후보가 된다. 집합 연산은 순위를 정하지 않는다.
희귀 특징의 postings는 짧지만 흔한 특징은 대부분의 문서에 연결된다. 실제 검색 엔진은 압축·skip structure·상위 k 조기 종료 등으로 비용을 줄일 수 있다. 여기서는 저장한 실제 문서 ID·빈도 쌍을 직접 열어 검색 범위가 만들어지는 과정을 본다.
P(t) = { (d, tf(t,d)) : tf(t,d) > 0 }Hands-on 직접 살펴보기#
질의를 바꾸고 표시한 앞 8개 특징의 DF·합집합·교집합을 비교한다. 한글 n-gram을 모두 AND로 묶었을 때 후보가 지나치게 줄어드는지도 살펴본다.
기본 입력으로 계산한 결과
긴 질의는 앞 8개 특징으로 집합 연산을 보여 준다. 실제 BM25는 질의의 모든 서로 다른 특징을 사용한다.
| 특징 | DF | 문서 ID 일부 |
|---|---|---|
| w:산소 | 7 | a-233, a-377, a-619, a-619-2, a-628-2, a-641, supplement |
| g:산소 | 21 | a-233, a-241, a-290, a-295, a-377, a-546, a-552, a-618 |
| w:농도 | 3 | a-256, a-619-2, annex-1 |
| g:농도 | 20 | a-231, a-256, a-278, a-296, a-350, a-377, a-437, a-546 |
| w:적정공기 | 8 | a-618, a-620, a-626, a-628-2, a-629, a-634, a-636, a-639 |
| g:적정 | 22 | a-9, a-13, a-97, a-116, a-186, a-261, a-302, a-303 |
| g:정공 | 9 | a-618, a-619-2, a-620, a-626, a-628-2, a-629, a-634, a-636 |
| g:공기 | 69 | a-72, a-73, a-74, a-75, a-76, a-83, a-84, a-87 |
원문 발췌와 검색 질의는 한국어를 유지합니다. 문서 ID와 PDF 페이지로 계산에 쓰인 출처를 확인할 수 있습니다.
TF-IDF
흔한 표현과 드문 표현의 가중치
Overview 개요#
TF-IDF(Term Frequency–Inverse Document Frequency)는 문서 안에서 자주 나오고 코퍼스 전체에는 드문 특징에 가중치를 준다. 실제 선택 문서의 각 질의 특징을 분해해 계산한다.
Concept 핵심 개념#
이 구현은 sublinear TF인 1+ln(tf)와 smoothed IDF인 ln((1+N)/(1+df))+1을 사용한다. tf가 0이면 가중치는 0이다. 로그의 밑, smoothing, 길이 정규화 여부가 달라지면 같은 TF-IDF라는 이름이어도 값이 달라진다.
표는 정규화 전의 특징 가중치다. 뒤의 LSA에서는 선정한 3,000개 특징을 사용하고 문서 벡터를 L2 정규화한다. 빈도가 높다는 이유로 중요한 법적 의미가 보장되지는 않으며, IDF는 선택한 코퍼스에 의존한다.
w(t,d) = (1 + ln tf) × [ln((1+N)/(1+df)) + 1] for tf > 0
Hands-on 직접 살펴보기#
조문과 질의를 바꾸며 TF=0인 특징, 흔한 특징, 드문 특징을 비교한다. 가중치가 0인 특징이 왜 생겼는지 원문과 연결한다.
기본 입력으로 계산한 결과
| 특징 | TF | DF | IDF | TF-IDF |
|---|---|---|---|---|
| w:산소 | 0 | 7 | 5.49 | 0 |
| g:산소 | 6 | 21 | 4.4784 | 12.5027 |
| w:농도 | 0 | 3 | 6.1832 | 0 |
| g:농도 | 5 | 20 | 4.525 | 11.8076 |
| w:적정공기 | 1 | 8 | 5.3723 | 5.3723 |
| g:적정 | 1 | 22 | 4.434 | 4.434 |
| g:정공 | 1 | 9 | 5.2669 | 5.2669 |
| g:공기 | 4 | 69 | 3.321 | 7.9249 |
| g:적정공 | 1 | 9 | 5.2669 | 5.2669 |
| g:정공기 | 1 | 9 | 5.2669 | 5.2669 |
제618조 · 정의
제618조(정의) 이 장에서 사용하는 용어의 뜻은 다음과 같다. <개정 2017. 3. 3., 2023. 11. 14.>
1. “밀폐공간”이란 산소결핍, 유해가스로 인한 질식ㆍ화재ㆍ폭발 등의 위험이 있는 장소로서 별표 18에서 정한 장소
를 말한다.
2. “유해가스”란 이산화탄소ㆍ일산화탄소ㆍ황화수소 등의 기체로서 인체에 유해한 영향을 미치는 물질을 말한다.
3. “적정공기”란 산소농도의 범위가 18퍼센트 이상 23.5퍼센트 미만, 이산화탄소의 농도가 1.5퍼센트 미만, 일산화탄
소의 농도가 30피피엠 미만, 황화수소의 농도가 10피피엠 미만인 수준의 공기를 말한다.
4. “산소결핍”이란 공기 중의 산소농도가 18퍼센트 미만인 상태를 말한다.
5. “산소결핍증”이란 산소가 결핍된 공기를 들이마심으로써 생기는 증상을 말한다.원문 발췌와 검색 질의는 한국어를 유지합니다. 문서 ID와 PDF 페이지로 계산에 쓰인 출처를 확인할 수 있습니다.
BM25
빈도 포화와 문서 길이 보정
Overview 개요#
BM25는 단어 빈도의 증가 효과를 포화시키고 문서 길이를 보정하는 어휘 기반 순위 함수다. 동일 질의에서 k₁과 b가 실제 검색 순위를 어떻게 바꾸는지 본다.
Concept 핵심 개념#
k₁은 TF 증가의 포화 형태를 제어하고 b는 평균 길이 대비 문서 길이 보정의 강도를 제어한다. b=0이면 이 길이 보정을 없앤다. k₁=0에서는 발생 횟수의 추가 이득이 사라지지만 등장 여부와 IDF는 남는다.
이 구현은 음수가 되지 않는 log(1+(N−df+0.5)/(df+0.5)) IDF 변형을 사용하고 질의의 중복 특징은 한 번 센다. 실제 검색 엔진과 tokenizer·IDF 변형·field boost가 다르면 결과도 달라진다. 점수 크기는 문서 관련성의 확률이 아니다.
BM25(q,d) = Σₜ IDF(t) × tf(t,d)(k₁+1) / [tf(t,d)+k₁(1−b+b|d|/avgdl)] IDF(t) = ln(1 + (N−dfₜ+0.5)/(dfₜ+0.5))
Hands-on 직접 살펴보기#
k₁과 b를 바꾸고 상위 문서·점수·원문을 함께 비교한다. 순위가 달라졌다는 사실과 정답이 더 잘 검색되었다는 평가는 분리한다.
기본 입력으로 계산한 결과
BM25 점수는 관련성 확률이나 답변의 진실성 확률이 아니다.
| 순위 | 문서 | 점수 | |
|---|---|---|---|
| 1 | 제619조의2 · 산소 및 유해가스 농도의 측정 및 기록 등 | 42.362006 | 112 |
| 2 | 제629조 · 용접 등에 관한 조치 | 39.308841 | 114 |
| 3 | 제618조 · 정의 | 35.765783 | 111 |
| 4 | 제636조 · 지하실 등의 작업 | 31.591542 | 115 |
| 5 | 제626조 · 상시 가동되는 급ㆍ배기 환기장치를 설치한 경우의 특례 | 29.528069 | 113 |
제619조의2 · 산소 및 유해가스 농도의 측정 및 기록 등
제619조의2(산소 및 유해가스 농도의 측정 및 기록 등) ① 사업주는 밀폐공간에서 근로자에게 작업을 하도록 하는 경우
작업을 시작(작업을 일시 중단하였다가 다시 시작하는 경우를 포함한다. 이하 이 조에서 같다)하기 전에 밀폐공간의
산소 및 유해가스 농도의 측정 및 평가에 관한 지식과 실무경험이 있는 사람을 지정하여 측정장비를 지급하고, 그로
하여금 해당 밀폐공간의 산소 및 유해가스 농도를 측정(「전파법」 제2조제1항제5호ㆍ제5호의2에 따른 무선설비 또
는 무선통신을 이용한 원격 측정을 포함한다. 이하 제629조, 제638조 및 제641조에서 같다)하여 적정공기가 유지되
고 있는지를 평가하도록 해야 한다. <개정 2024. 6. 28., 2025. 12. 1.>
② 사업주는 제1항에 따라 밀폐공간의 산소 및 유해가스 농도를 측정 및 평가하는 자에 대하여 밀폐공간에서 작업
을 시작하기 전에 다음 각 호의 사항의 숙지여부를 확인하고 필요한 교육을 실시해야 한다.<신설 2024. 6. 28.>
1. 밀폐공간의 위험성
2. 측정장비의 이상 유무 확인 및 조작 방법
3. 밀폐공간 내에서의 산소 및 유해가스 농도 측정방법
4. 적정공기의 기준과 평가 방법
③ 사업주는 제1항에 따라 산소 및 유해가스 농도를 측정한 결과 적정공기가 유지되고 있지 아니하다고 평가된 경
우에는 작업장을 환기시키거나, 근로자에게 공기호흡기 또는 송기마스크를 지급하여 착용하도록 하는 등 근로자의
건강장해 예방을 위하여 필요한 조치를 하여야 한다.<개정 2024. 6. 28.>
④ 사업주는 제1항에 따른 밀폐공간의 산소 및 유해가스 농도의 측정 및 평가 결과에 대하여 측정 및 평가한 사람
의 성명, 측정 및 평가한 일시ㆍ장소 및 그 결과 등을 기록(「개인정보 보호법」 제2조제7호에 따른 고정형 영상정보
처리기기 또는 같은 조 제7호의2에 따른 이동형 영상정보처리기기를 활용하여 기록하는 것을 포함한다)하여 3년간
보존해야 한다.<신설 2025. 12. 1.>
[본조신설 2017. 3. 3.]
[제목개정 2025. 12. 1.]제629조 · 용접 등에 관한 조치
제629조(용접 등에 관한 조치) ① 사업주는 근로자가 탱크ㆍ보일러 또는 반응탑의 내부 등 통풍이 충분하지 않은 장소
에서 용접ㆍ용단 작업을 하는 경우에 다음 각 호의 조치를 하여야 한다. <개정 2012. 3. 5., 2015. 12. 31., 2017. 3.
3.>
1. 작업장소는 가스농도를 측정(아르곤 등 불활성가스를 이용하는 작업장의 경우에는 산소농도 측정을 말한다)하고
환기시키는 등의 방법으로 적정공기 상태를 유지할 것
2. 제1호에 따른 환기 등의 조치로 해당 작업장소의 적정공기 상태를 유지하기 어려운 경우 해당 작업 근로자에게
공기호흡기 또는 송기마스크를 지급하여 착용하도록 할 것
② 근로자는 제1항제2호에 따라 지급된 보호구를 사업주의 지시에 따라 착용하여야 한다.제618조 · 정의
제618조(정의) 이 장에서 사용하는 용어의 뜻은 다음과 같다. <개정 2017. 3. 3., 2023. 11. 14.>
1. “밀폐공간”이란 산소결핍, 유해가스로 인한 질식ㆍ화재ㆍ폭발 등의 위험이 있는 장소로서 별표 18에서 정한 장소
를 말한다.
2. “유해가스”란 이산화탄소ㆍ일산화탄소ㆍ황화수소 등의 기체로서 인체에 유해한 영향을 미치는 물질을 말한다.
3. “적정공기”란 산소농도의 범위가 18퍼센트 이상 23.5퍼센트 미만, 이산화탄소의 농도가 1.5퍼센트 미만, 일산화탄
소의 농도가 30피피엠 미만, 황화수소의 농도가 10피피엠 미만인 수준의 공기를 말한다.
4. “산소결핍”이란 공기 중의 산소농도가 18퍼센트 미만인 상태를 말한다.
5. “산소결핍증”이란 산소가 결핍된 공기를 들이마심으로써 생기는 증상을 말한다.원문 발췌와 검색 질의는 한국어를 유지합니다. 문서 ID와 PDF 페이지로 계산에 쓰인 출처를 확인할 수 있습니다.