40
제5제. 제제제제 제제제제 INFORMATION RETRIEVAL 제제 : 제제제 ([email protected] ) http://www.facebook.com/hhuIR Korea Maritime University Navis Control Inc.

제5장 사전파일

Embed Size (px)

Citation preview

Page 1: 제5장 사전파일

제 5 장 .사전파일

정보검색INFORMATION RETRIEVAL

강의 : 정창용 ([email protected])http://www.facebook.com/hhuIR

Korea Maritime UniversityNavis Control Inc.

Page 2: 제5장 사전파일

탐색을 위한 사전파일의 구조용어절단 검색을 위한 색인구조

용어열 색인 B- 트리 색인 문자 n- 그램 색인

철자교정을 위한 색인 편집거리 문자 n- 그램 기법 노이즈 채널 모델 단어 n- 그램 기법 최장 공통길이 기법 입말표기 수정 검색시스템에서 오타교정 구현방법

OVERVIEW

Page 3: 제5장 사전파일

탐색을 위한 사전파일의 구조용어절단 검색을 위한 색인구조

용어열 색인 B- 트리 색인 문자 n- 그램 색인

철자교정을 위한 색인 편집거리 문자 n- 그램 기법 노이즈 채널 모델 단어 n- 그램 기법 최장 공통길이 기법 입말표기 수정 검색시스템에서 오타교정 구현방법

OUTLINE

Page 4: 제5장 사전파일

역색인파일 ( 색인어 ) 저장 방법 Hashing

색인어의 저장위치 ( 주소 ) 를 해싱공식으로 계산 충돌 (collisions) 문제 : 서로 다른 색인어를 같은 위치 값으로 계산 용어절단 검색 불가 색인어가 자주 갱신되는 경우 유용 ( 크기 한정적 ) 웹과 같이 사전파일이 지속적으로 증가하는 경우 불리

Sequential 색인어를 순차적으로 저장 용어절단 검색 가능 레코드 추가 , 삭제 시 전체 파일을 갱신해야 함 Tree 구조 사용 (Binary Tree, B-Tree)

탐색을 위한 사전파일의 구조

Page 5: 제5장 사전파일

탐색을 위한 사전파일의 구조 – CONT.

Binary tree

B-tree

Page 6: 제5장 사전파일

탐색을 위한 사전파일의 구조용어절단 검색을 위한 색인구조

용어열 색인 B- 트리 색인 문자 n- 그램 색인

철자교정을 위한 색인 편집거리 문자 n- 그램 기법 노이즈 채널 모델 단어 n- 그램 기법 최장 공통길이 기법 입말표기 수정 검색시스템에서 오타교정 구현방법

OUTLINE

Page 7: 제5장 사전파일

용어절단 질의용어의 접미 ( 어미 ), 접두 , 중간부분을 생략하여 탐색 우측절단 , 좌측절단 , 중간절단 , 양측절단 철자 생략 기호 (*) 로 표시

용어절단 방법 용어열 색인 n- 그램 색인 B-tree 색인

용어절단 검색을 위한 색인구조

Page 8: 제5장 사전파일

탐색을 위한 사전파일의 구조용어절단 검색을 위한 색인구조

용어열 색인 B- 트리 색인 문자 n- 그램 색인

철자교정을 위한 색인 편집거리 문자 n- 그램 기법 노이즈 채널 모델 단어 n- 그램 기법 최장 공통길이 기법 입말표기 수정 검색시스템에서 오타교정 구현방법

OUTLINE

Page 9: 제5장 사전파일

색인어의 끝을 알리는 고유의 문자 ($) 를 첨가앞 문자를 순서대로 하나씩 뒤로 돌려가며 색인어 생성

( 문자 수 + 1) 개

용어열 색인 (String Index)

문헌 1enzyme

문헌 2enzymes

문헌 3coenzyme

문헌 4dienzyme

문헌 5CoQZyme

enzyme$nzyme$ezyme$enyme$enzme$enzye$enzym$enzyme

enzymes$nzymes$ezymes$enymes$enzmes$enzyes$enzyms$enzyme$enzymes

coenzyme$oenzyme$cenzyme$conzyme$coezyme$coenyme$coenzme$coenzye$coenzym$coenzyme

dienzyme$ienzyme$denzyme$dinzyme$diezyme$dienyme$dienzme$dienzye$dienzym$dienzyme

coqzyme$oqzyme$cqzyme$cozyme$coqyme$coqzme$coqzye$coqzym$coqzyme

Page 10: 제5장 사전파일

입력 질의 실행 질의 검색 문헌

enzyme* $enzyme* 1, 2

*enzyme enzyme$* 1, 3, 4

co*zyme zyme$co* 3, 5

*enzyme* enzyme* 1, 2, 3, 4

용어열 색인 – CONT.

Page 11: 제5장 사전파일

탐색을 위한 사전파일의 구조용어절단 검색을 위한 색인구조

용어열 색인 B- 트리 색인 문자 n- 그램 색인

철자교정을 위한 색인 편집거리 문자 n- 그램 기법 노이즈 채널 모델 단어 n- 그램 기법 최장 공통길이 기법 입말표기 수정 검색시스템에서 오타교정 구현방법

OUTLINE

Page 12: 제5장 사전파일

B-Tree 색인

Page 13: 제5장 사전파일

색인어를 n 개의 문자로 나누어서 색인예 ) water

2-gram(bi-gram) : $w, wa, at, te, er, r$ 3-gram(tri-gram) : $$w, $wa, wat, ate, ter, er$, r$$

문자 n- 그램 색인

용어 용어번호 3-gram 색인어

creative 1 $cr, cre, rea, eat, ati, tiv, ive, ve$

reactive 2 $re, rea, eac, act, cti, tiv, ive, ve$

retrial 3 $re, ret, etr, tri, ria, ial, al$

retrieve 4 $re, ret, etr, tri, rie, iev, eve, ve$

retrieval 5 $re, ret, etr, tri, rie, iev, eva, val, al$

Page 14: 제5장 사전파일

탐색을 위한 사전파일의 구조용어절단 검색을 위한 색인구조

용어열 색인 B- 트리 색인 문자 n- 그램 색인

철자교정을 위한 색인 편집거리 문자 n- 그램 기법 노이즈 채널 모델 단어 n- 그램 기법 최장 공통길이 기법 입말표기 수정 검색시스템에서 오타교정 구현방법

OUTLINE

Page 15: 제5장 사전파일

3- 그램 사전파일

문자 n- 그램 색인 – CONT.

Page 16: 제5장 사전파일

retrieve 검색 질의어를 n- 그램으로 변환 후 AND 조합 검색

우측절단 용어 retriev? 검색

좌측절단 용어 ?tive 검색

문자 n- 그램 색인 – CONT.

$re AND ret AND etr AND tri AND rie AND iev AND eve AND ve$

$re AND ret AND etr AND tri AND rie AND iev

tiv AND ive AND ve$

Page 17: 제5장 사전파일

n- 그램 색인의 장점 언어학적 처리 ( 형태소분석 , 스테밍 ) 가 필요 없음 띄어쓰기가 없는 중국어 , 일본어 색인에 유용 특정 언어의 문법에 독립적이기 때문에 다중언어 처리에 적합 한글 복합명사 띄어쓰기 문제 해결

정보검색 : $ 정 , 정보 , 보검 , 검색 , 색 $ 정보 검색 : $ 정 , 정보 , 보 $, $ 검 , 검색 , 색 $

질의어 철자 오류 시에도 검색 가능 ( 유사도 이용 )

문자 n- 그램 색인 – CONT.

색인어 creative ▶ $cr, cre, rea, eat, ati, tiv, ive, ve$ (2/13)reactive ▶ $re, rea, eac, act, cti, tiv, ive, ve$ (3/12)retrial ▶ $re, ret, etr, tri, ria, ial, al$ (4/10)retrieve ▶ $re, ret, etr, tri, rie, iev, eve, ve$ (5/10)

오타단어 retrive ▶ $re, ret, etr, tri, riv, ive, ve$

Page 18: 제5장 사전파일

용어절단 검색 가능

n- 그램 색인의 단점 검색시간 비효율적

n- 그램 색인어파일을 검색한 후 역색인파일을 검색해야 함 용어열 색인보다

색인의 크기는 1/3 탐색시간 (CPU) 은 15 배 이상 소요 (Zobel and Dart 1995)

문자 n- 그램 색인 – CONT.

용어절단 질의어 변환된 탐색식 불리언 연산 검색된 단어

ret* $re AND ret {2,3,4} AND {3,4} retrial, retrieve

*tivetiv AND ive AND ve

${1,2} AND {1,2} AND

{1,2,4}creative, reac-

tive

re*ive$re AND ive AND

ve${2,3,4} AND {1,2} AND

{1,2,4}reactive

Page 19: 제5장 사전파일

탐색을 위한 사전파일의 구조용어절단 검색을 위한 색인구조

용어열 색인 B- 트리 색인 문자 n- 그램 색인

철자교정을 위한 색인 편집거리 문자 n- 그램 기법 노이즈 채널 모델 단어 n- 그램 기법 최장 공통길이 기법 입말표기 수정 검색시스템에서 오타교정 구현방법

OUTLINE

Page 20: 제5장 사전파일

의사소통에서의 오류범주 어휘적 (lexical) 오류 문법적 (syntactic) 오류 의미적 (semantic) 오류 문맥상 (contextual) 오류

오류 발생원인 타이핑 실수 (mistyping) 발음의 실수 (phonetic error) 지적인지 부족

⇒ 철자교정 (spell checker) 필요

철자교정을 위한 색인

Page 21: 제5장 사전파일

일반적인 철자교정 알고리즘 가장 가까이 있는 것 (nearest) 을 선정 유사도가 같은 교정철자가 둘 이상일 때 , 사용빈도 높은 것을 선택

철자교정 기법 문맥 독립적 교정 (isolated-term correction)

편집거리 , 문자 n- 그램 , 입말 표기 수정 (soundex), 노이즈 채널 모델 문맥 의종 교정 (context-sensitive correction)

단어 n- 그램 , 최장공통길이 기법

철자교정을 위한 색인

오타 질의어 : grntgrunt : $g, gr, ru, un, nt, t$grant : $g, gr, ra, an, nt, t$

⇒ 유사도가 동일하기 때문에 시스템에 자주 사용된 단어를 선택

Page 22: 제5장 사전파일

탐색을 위한 사전파일의 구조용어절단 검색을 위한 색인구조

용어열 색인 B- 트리 색인 문자 n- 그램 색인

철자교정을 위한 색인 편집거리 문자 n- 그램 기법 노이즈 채널 모델 단어 n- 그램 기법 최장 공통길이 기법 입말표기 수정 검색시스템에서 오타교정 구현방법

OUTLINE

Page 23: 제5장 사전파일

1965 년 Levenshtein 에 의해 소개편집거리 (edit distance)

한 단어를 다른 단어로 변환하는데 필요한 최소한의 편집연산 수 편집연산의 종류 : 삽입 (insert), 삭제 (omission), 치환

(substitution)예 ) caste → karst

편집거리 (Edit Distance)

caste karst 편집연산 caste karst 편집연산

caste k 교체 c – k caste k 교체 c – k

caste ka caste ka

caste kar 삽입 r caste kar 교체 s – r

caste kars caste kars 교체 t – s

caste karst caste karst 교체 e – t

caste 삭제 e

방법 1 ( 편집거리 : 3) 방법 2 ( 편집거리 : 4)

Page 24: 제5장 사전파일

자카드 유사도 (Jaccard similarity)

예 ) 키보드 내의 위치 가중치

편집거리 (kat, lat) > 편집거리 (kat, cat) 키보드의 ‘ k’ 위치가 ‘ c’ 보다 ‘ l’ 과 가까움

편집거리 – CONT.

Page 25: 제5장 사전파일

탐색을 위한 사전파일의 구조용어절단 검색을 위한 색인구조

용어열 색인 B- 트리 색인 문자 n- 그램 색인

철자교정을 위한 색인 편집거리 문자 n- 그램 기법 노이즈 채널 모델 단어 n- 그램 기법 최장 공통길이 기법 입말표기 수정 검색시스템에서 오타교정 구현방법

OUTLINE

Page 26: 제5장 사전파일

n- 그램으로 표시되는 두 단어의 문자열 유사도 계산 유사도가 가장 큰 단어를 수정철자로 제공 유사계수공식

예 ) 특수문자의 추가 여부와 질의어와 색인어의 유사도 관계

문자 n- 그램 기법

자카드 상관계수

다이스 상관계수

용어 2- 그램질의어와 색인어 유사도

$ 문자 추가 $ 문자 비추가

질의어 carot ($c), ca, ar, ro, ot, (t$)

색인어

carrot ($c), ca, ar, rr, ro, ot, (t$) 6/7 4/5

cabot ($c), ca, ab, bo, ot, (t$) 4/8 2/6

tarot ($t), ta, ar, ro, ot, (t$) 4/8 3/5

Page 27: 제5장 사전파일

탐색을 위한 사전파일의 구조용어절단 검색을 위한 색인구조

용어열 색인 B- 트리 색인 문자 n- 그램 색인

철자교정을 위한 색인 편집거리 문자 n- 그램 기법 노이즈 채널 모델 단어 n- 그램 기법 최장 공통길이 기법 입말표기 수정 검색시스템에서 오타교정 구현방법

OUTLINE

Page 28: 제5장 사전파일

Bayes 확률 모델을 적용오타 단어와 후보 단어 사이의 에러확률을 구하는 것

e : 오타 질의어 , c : 올바른 질의어 P(c) : c 를 사용하여 검색했을 확률 P(c|e) : 오타 질의어 e 가 c 일 확률

후보 단어 중 오타 질의어와의 P(c|e) 가 최대인 단어를 선택

노이즈 채널 모델

𝑃 (𝑐|𝑒)=𝑃 (𝑒|𝑐 )𝑃 (𝑐)

𝑃(𝑒)

arg𝑚𝑎𝑥𝑐𝑃 (𝑒|𝑐 )𝑃 (𝑐 )

Page 29: 제5장 사전파일

탐색을 위한 사전파일의 구조용어절단 검색을 위한 색인구조

용어열 색인 B- 트리 색인 문자 n- 그램 색인

철자교정을 위한 색인 편집거리 문자 n- 그램 기법 노이즈 채널 모델 단어 n- 그램 기법 최장 공통길이 기법 입말표기 수정 검색시스템에서 오타교정 구현방법

OUTLINE

Page 30: 제5장 사전파일

문맥의존 (Context-sensitive) 철자교정 기법2 개 이상의 단어로 이루어진 어구 (phrase) 에 n- 그램 방식

응용Google

“flow fore Heathrow” 검색 시 , “flow for Heathrow” 질의어 제안함 .

2~5- 그램 단어로 된 색인어 보고

단어 n- 그램 기법

File sizes : approx. 24 GB compressed (gzip’ed) text filesNumbers of tokens : 1,024,908,267,229Numbers of sentences : 95,119,665,584Numbers of unigrams : 13,588,391Numbers of bigrams : 314,843,401Numbers of trigrams : 977,069,902Numbers of four-grams : 1,313,818,354Numbers of five-grams : 1,176,470,663

Page 31: 제5장 사전파일

단어 n- 그램 기법 - Example

Page 32: 제5장 사전파일

탐색을 위한 사전파일의 구조용어절단 검색을 위한 색인구조

용어열 색인 B- 트리 색인 문자 n- 그램 색인

철자교정을 위한 색인 편집거리 문자 n- 그램 기법 노이즈 채널 모델 단어 n- 그램 기법 최장 공통길이 (Longest Common Subsequence) 기법 입말표기 수정 검색시스템에서 오타교정 구현방법

OUTLINE

Page 33: 제5장 사전파일

n- 그램 두 문자열의 공통길이를 유사도로 사용하는 기법 출현하는 순서대로 가장 많은 글자가 공통인 경우의 수를 구함 예 ) ‘the sand over there’ 와 ‘ cat sat on the mat’

→ ‘t sa o the’ → len(LCS(s1, s2)) = 10

(Meamed 1999) (Islam & Inkpen 2008) (Islam & Inkpen 2009)

최장 공통길이 (LCS) 기법

Page 34: 제5장 사전파일

탐색을 위한 사전파일의 구조용어절단 검색을 위한 색인구조

용어열 색인 B- 트리 색인 문자 n- 그램 색인

철자교정을 위한 색인 편집거리 문자 n- 그램 기법 노이즈 채널 모델 단어 n- 그램 기법 최장 공통길이 (Longest Common Subsequence) 기법 입말표기 수정 검색시스템에서 오타교정 구현방법

OUTLINE

Page 35: 제5장 사전파일

검색어를 발음대로 입력하기 때문에 생기는 문제 수정서양인명 , 고유명사 검색 시 주로 발생Google 에서의 오류 건수 (Britney Spears)

Soundex 검색 방법1. soundex 색인 생성2. 질의어를 같은 soundex 코드로 변환3. soundex 색인에서 검색

입말표기 수정

488941 britney spears 옳은 입력40134 brittany spears36315 brittney spears24342 britany spears7331 britny spears6633 briteny spears2696 britteny spears

Page 36: 제5장 사전파일

1. 첫 문자는 알파벳으로 그대로2. 나머지 문자들은 0~9 사이의 숫자로 변환

3. 연속된 동일 숫자는 제거 ( 한 숫자만 사용 )4. 0 은 제거하고 첫 4 개의 문자만 사용 ( 첫 알파벳 + 3 개

숫자 )

Soundex 코드 (by Bourne & Ford)

a e i o u h w y → 0b f p v → 1c g j k q s x z → 2d t → 3l → 4m n → 5r → 6

Hermann(Herman) → h06605 → h655Schlieder → s2040306 → s243

Page 37: 제5장 사전파일

Phonix 코드 (by Phonix)

a e i o u h w y → 0b p → 1c g j k q → 2d t → 3l → 4m n → 5r → 6f v → 7s x z → 8

Page 38: 제5장 사전파일

영어 단어와 한글 단어를 모두 영어 발음단어로 변환하는 코드방법

l, r → l f, p → f b, v → b 초성 ㄱ , ㄲ → g 종성 ㄱ , ㅋ → g

KONIX 코드 (by 김지승 , 김광현 , 이준호 )

( 색인 ) ( 탐색 )retrieval → litlibcl ← 리트리벌

Page 39: 제5장 사전파일

탐색을 위한 사전파일의 구조용어절단 검색을 위한 색인구조

용어열 색인 B- 트리 색인 문자 n- 그램 색인

철자교정을 위한 색인 편집거리 문자 n- 그램 기법 노이즈 채널 모델 단어 n- 그램 기법 최장 공통길이 (Longest Common Subsequence) 기법 입말표기 수정 검색시스템에서 오타교정 구현방법

OUTLINE

Page 40: 제5장 사전파일

교정철자로 검색을 수행하는 방법 오타철자 (carot) 와 교정철자 (carrot, tarot) 를 모두 검색 오타철자가 용어사전에 없을 때만 교정철자를 검색 오타용어로 검색된 문헌 수가 기준치보다 작을 때만 교정철자로 검색 오타용어로 검색된 문헌 수가 기준치보다 작을 때 교정철자 검색 제시

Do you mean: carrot?

검색시스템에서 오타교정 구현방법