KNOWLEDGE BASES / 04

Lexical Indexing

토큰화·역색인·TF-IDF·BM25를 실제 문서와 질의로 계산한다.

4 TABSv1.0Corpus ↗
04.01 / Retrieval Tokenization

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·혼합 모드를 바꾸고 빈도가 높은 특징을 비교한다. 이 선택기는 특징 생성 원리만 바꾸며 전체 검색 색인은 혼합 규칙으로 고정되어 있다.

입력을 바꾸며 비교하기

기본 입력으로 계산한 결과

특징 발생 수342
서로 다른 특징224
표시 특징20
특징 · 빈도01.534.566g:산소5g:농도5g:말한5g:말한다5g:미만5g:한다5w:말한다4g:결핍4g:공기4g:농도가4g:도가4g:산화빈도특징

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 페이지로 계산에 쓰인 출처를 확인할 수 있습니다.

Summary 핵심 정리#

  • 토큰화는 검색 설계의 일부다.
  • 부분 일치는 재현율과 오탐을 함께 바꾼다.
  • 문서와 질의의 분석기를 일치시킨다.

Notation 기호·단위#

기호의미단위
w정규화한 단어형string
nn-gram 길이characters
tf특징 발생 빈도1

References 참고 자료#

  1. scikit-learn · Feature extraction
  2. Unicode · UAX #15: Unicode Normalization Forms
  3. 실습 코퍼스 · 첨부 PDF와 추출 레코드
04.02 / Inverted Index

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로 묶었을 때 후보가 지나치게 줄어드는지도 살펴본다.

입력을 바꾸며 비교하기

기본 입력으로 계산한 결과

질의 특징10
표시 특징 합집합97
표시 특징 교집합0
특징 · 문서 빈도017.2534.551.75697w:산소21g:산소3w:농도20g:농도8w:적정공기22g:적정9g:정공69g:공기문서 빈도특징

긴 질의는 앞 8개 특징으로 집합 연산을 보여 준다. 실제 BM25는 질의의 모든 서로 다른 특징을 사용한다.

특징DF문서 ID 일부
w:산소7a-233, a-377, a-619, a-619-2, a-628-2, a-641, supplement
g:산소21a-233, a-241, a-290, a-295, a-377, a-546, a-552, a-618
w:농도3a-256, a-619-2, annex-1
g:농도20a-231, a-256, a-278, a-296, a-350, a-377, a-437, a-546
w:적정공기8a-618, a-620, a-626, a-628-2, a-629, a-634, a-636, a-639
g:적정22a-9, a-13, a-97, a-116, a-186, a-261, a-302, a-303
g:정공9a-618, a-619-2, a-620, a-626, a-628-2, a-629, a-634, a-636
g:공기69a-72, a-73, a-74, a-75, a-76, a-83, a-84, a-87

원문 발췌와 검색 질의는 한국어를 유지합니다. 문서 ID와 PDF 페이지로 계산에 쓰인 출처를 확인할 수 있습니다.

Summary 핵심 정리#

  • TF와 DF를 구분한다.
  • 후보 집합과 순위 점수는 별도 단계다.
  • 희귀 특징과 흔한 특징의 접근 비용이 다르다.

Notation 기호·단위#

기호의미단위
P(t)특징의 postingspairs
DF포함 문서 수documents
TF문서 내 빈도1

References 참고 자료#

  1. scikit-learn · Feature extraction
  2. Robertson & Zaragoza · The Probabilistic Relevance Framework: BM25 and Beyond (2009)
  3. 실습 코퍼스 · 첨부 PDF와 추출 레코드
04.03 / TF-IDF

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인 특징이 왜 생겼는지 원문과 연결한다.

입력을 바꾸며 비교하기

기본 입력으로 계산한 결과

질의 특징10
선택 문서 특징342
0이 아닌 가중치8
특징 · 가중치03.12576.25149.37712.50270w:산소12.5027g:산소0w:농도11.8076g:농도5.3723w:적정공기4.434g:적정5.2669g:정공7.9249g:공기5.2669g:적정공5.2669g:정공기가중치특징
특징TFDFIDFTF-IDF
w:산소075.490
g:산소6214.478412.5027
w:농도036.18320
g:농도5204.52511.8076
w:적정공기185.37235.3723
g:적정1224.4344.434
g:정공195.26695.2669
g:공기4693.3217.9249
g:적정공195.26695.2669
g:정공기195.26695.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 페이지로 계산에 쓰인 출처를 확인할 수 있습니다.

Summary 핵심 정리#

  • 사용한 TF·IDF 변형을 명시한다.
  • IDF는 고정된 사전 점수가 아니다.
  • 가중치와 의미적 중요성을 혼동하지 않는다.

Notation 기호·단위#

기호의미단위
N코퍼스 문서 수documents
dfₜ특징 포함 문서 수documents
wₜ,d특징 가중치score

References 참고 자료#

  1. scikit-learn · Feature extraction
  2. 실습 코퍼스 · 첨부 PDF와 추출 레코드
04.04 / BM25

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를 바꾸고 상위 문서·점수·원문을 함께 비교한다. 순위가 달라졌다는 사실과 정답이 더 잘 검색되었다는 평가는 분리한다.

입력을 바꾸며 비교하기
5
1.2
0.75

기본 입력으로 계산한 결과

반환 문서5
최고 점수42.362
평균 문서 길이292.8933
문서 · BM25 점수010.590521.18131.771542.36242.362a-619-239.3088a-62935.7658a-61831.5915a-63629.5281a-626BM25 점수문서

BM25 점수는 관련성 확률이나 답변의 진실성 확률이 아니다.

순위문서점수PDF
1제619조의2 · 산소 및 유해가스 농도의 측정 및 기록 등42.362006112
2제629조 · 용접 등에 관한 조치39.308841114
3제618조 · 정의35.765783111
4제636조 · 지하실 등의 작업31.591542115
5제626조 · 상시 가동되는 급ㆍ배기 환기장치를 설치한 경우의 특례29.528069113
제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 페이지로 계산에 쓰인 출처를 확인할 수 있습니다.

Summary 핵심 정리#

  • TF 증가 효과는 무한히 선형 증가하지 않는다.
  • 길이 보정 강도와 청킹 전략은 함께 영향을 준다.
  • 개선 여부는 별도 관련성 라벨로 평가한다.

Notation 기호·단위#

기호의미단위
k₁TF 포화 매개변수1
b길이 보정 계수0–1
avgdl평균 특징 길이features

References 참고 자료#

  1. Robertson & Zaragoza · The Probabilistic Relevance Framework: BM25 and Beyond (2009)
  2. 실습 코퍼스 · 첨부 PDF와 추출 레코드
다음 주제 · Vector Retrieval →

이 페이지의 체험은 원리를 보이기 위해 단순화한 모델이다.

실습 값은 상태 링크에 포함된다. 이 브라우저에는 테마와 글자 크기만 저장한다.