Upload
chang-yong-jung
View
647
Download
4
Embed Size (px)
Citation preview
제 5 장 .사전파일
정보검색INFORMATION RETRIEVAL
강의 : 정창용 ([email protected])http://www.facebook.com/hhuIR
Korea Maritime UniversityNavis Control Inc.
탐색을 위한 사전파일의 구조용어절단 검색을 위한 색인구조
용어열 색인 B- 트리 색인 문자 n- 그램 색인
철자교정을 위한 색인 편집거리 문자 n- 그램 기법 노이즈 채널 모델 단어 n- 그램 기법 최장 공통길이 기법 입말표기 수정 검색시스템에서 오타교정 구현방법
OVERVIEW
탐색을 위한 사전파일의 구조용어절단 검색을 위한 색인구조
용어열 색인 B- 트리 색인 문자 n- 그램 색인
철자교정을 위한 색인 편집거리 문자 n- 그램 기법 노이즈 채널 모델 단어 n- 그램 기법 최장 공통길이 기법 입말표기 수정 검색시스템에서 오타교정 구현방법
OUTLINE
역색인파일 ( 색인어 ) 저장 방법 Hashing
색인어의 저장위치 ( 주소 ) 를 해싱공식으로 계산 충돌 (collisions) 문제 : 서로 다른 색인어를 같은 위치 값으로 계산 용어절단 검색 불가 색인어가 자주 갱신되는 경우 유용 ( 크기 한정적 ) 웹과 같이 사전파일이 지속적으로 증가하는 경우 불리
Sequential 색인어를 순차적으로 저장 용어절단 검색 가능 레코드 추가 , 삭제 시 전체 파일을 갱신해야 함 Tree 구조 사용 (Binary Tree, B-Tree)
탐색을 위한 사전파일의 구조
탐색을 위한 사전파일의 구조 – CONT.
Binary tree
B-tree
탐색을 위한 사전파일의 구조용어절단 검색을 위한 색인구조
용어열 색인 B- 트리 색인 문자 n- 그램 색인
철자교정을 위한 색인 편집거리 문자 n- 그램 기법 노이즈 채널 모델 단어 n- 그램 기법 최장 공통길이 기법 입말표기 수정 검색시스템에서 오타교정 구현방법
OUTLINE
용어절단 질의용어의 접미 ( 어미 ), 접두 , 중간부분을 생략하여 탐색 우측절단 , 좌측절단 , 중간절단 , 양측절단 철자 생략 기호 (*) 로 표시
용어절단 방법 용어열 색인 n- 그램 색인 B-tree 색인
용어절단 검색을 위한 색인구조
탐색을 위한 사전파일의 구조용어절단 검색을 위한 색인구조
용어열 색인 B- 트리 색인 문자 n- 그램 색인
철자교정을 위한 색인 편집거리 문자 n- 그램 기법 노이즈 채널 모델 단어 n- 그램 기법 최장 공통길이 기법 입말표기 수정 검색시스템에서 오타교정 구현방법
OUTLINE
색인어의 끝을 알리는 고유의 문자 ($) 를 첨가앞 문자를 순서대로 하나씩 뒤로 돌려가며 색인어 생성
( 문자 수 + 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
입력 질의 실행 질의 검색 문헌
enzyme* $enzyme* 1, 2
*enzyme enzyme$* 1, 3, 4
co*zyme zyme$co* 3, 5
*enzyme* enzyme* 1, 2, 3, 4
용어열 색인 – CONT.
탐색을 위한 사전파일의 구조용어절단 검색을 위한 색인구조
용어열 색인 B- 트리 색인 문자 n- 그램 색인
철자교정을 위한 색인 편집거리 문자 n- 그램 기법 노이즈 채널 모델 단어 n- 그램 기법 최장 공통길이 기법 입말표기 수정 검색시스템에서 오타교정 구현방법
OUTLINE
B-Tree 색인
색인어를 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$
탐색을 위한 사전파일의 구조용어절단 검색을 위한 색인구조
용어열 색인 B- 트리 색인 문자 n- 그램 색인
철자교정을 위한 색인 편집거리 문자 n- 그램 기법 노이즈 채널 모델 단어 n- 그램 기법 최장 공통길이 기법 입말표기 수정 검색시스템에서 오타교정 구현방법
OUTLINE
3- 그램 사전파일
문자 n- 그램 색인 – CONT.
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$
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$
용어절단 검색 가능
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
탐색을 위한 사전파일의 구조용어절단 검색을 위한 색인구조
용어열 색인 B- 트리 색인 문자 n- 그램 색인
철자교정을 위한 색인 편집거리 문자 n- 그램 기법 노이즈 채널 모델 단어 n- 그램 기법 최장 공통길이 기법 입말표기 수정 검색시스템에서 오타교정 구현방법
OUTLINE
의사소통에서의 오류범주 어휘적 (lexical) 오류 문법적 (syntactic) 오류 의미적 (semantic) 오류 문맥상 (contextual) 오류
오류 발생원인 타이핑 실수 (mistyping) 발음의 실수 (phonetic error) 지적인지 부족
⇒ 철자교정 (spell checker) 필요
철자교정을 위한 색인
일반적인 철자교정 알고리즘 가장 가까이 있는 것 (nearest) 을 선정 유사도가 같은 교정철자가 둘 이상일 때 , 사용빈도 높은 것을 선택
철자교정 기법 문맥 독립적 교정 (isolated-term correction)
편집거리 , 문자 n- 그램 , 입말 표기 수정 (soundex), 노이즈 채널 모델 문맥 의종 교정 (context-sensitive correction)
단어 n- 그램 , 최장공통길이 기법
철자교정을 위한 색인
오타 질의어 : grntgrunt : $g, gr, ru, un, nt, t$grant : $g, gr, ra, an, nt, t$
⇒ 유사도가 동일하기 때문에 시스템에 자주 사용된 단어를 선택
탐색을 위한 사전파일의 구조용어절단 검색을 위한 색인구조
용어열 색인 B- 트리 색인 문자 n- 그램 색인
철자교정을 위한 색인 편집거리 문자 n- 그램 기법 노이즈 채널 모델 단어 n- 그램 기법 최장 공통길이 기법 입말표기 수정 검색시스템에서 오타교정 구현방법
OUTLINE
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)
자카드 유사도 (Jaccard similarity)
예 ) 키보드 내의 위치 가중치
편집거리 (kat, lat) > 편집거리 (kat, cat) 키보드의 ‘ k’ 위치가 ‘ c’ 보다 ‘ l’ 과 가까움
편집거리 – CONT.
탐색을 위한 사전파일의 구조용어절단 검색을 위한 색인구조
용어열 색인 B- 트리 색인 문자 n- 그램 색인
철자교정을 위한 색인 편집거리 문자 n- 그램 기법 노이즈 채널 모델 단어 n- 그램 기법 최장 공통길이 기법 입말표기 수정 검색시스템에서 오타교정 구현방법
OUTLINE
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
탐색을 위한 사전파일의 구조용어절단 검색을 위한 색인구조
용어열 색인 B- 트리 색인 문자 n- 그램 색인
철자교정을 위한 색인 편집거리 문자 n- 그램 기법 노이즈 채널 모델 단어 n- 그램 기법 최장 공통길이 기법 입말표기 수정 검색시스템에서 오타교정 구현방법
OUTLINE
Bayes 확률 모델을 적용오타 단어와 후보 단어 사이의 에러확률을 구하는 것
e : 오타 질의어 , c : 올바른 질의어 P(c) : c 를 사용하여 검색했을 확률 P(c|e) : 오타 질의어 e 가 c 일 확률
후보 단어 중 오타 질의어와의 P(c|e) 가 최대인 단어를 선택
노이즈 채널 모델
𝑃 (𝑐|𝑒)=𝑃 (𝑒|𝑐 )𝑃 (𝑐)
𝑃(𝑒)
arg𝑚𝑎𝑥𝑐𝑃 (𝑒|𝑐 )𝑃 (𝑐 )
탐색을 위한 사전파일의 구조용어절단 검색을 위한 색인구조
용어열 색인 B- 트리 색인 문자 n- 그램 색인
철자교정을 위한 색인 편집거리 문자 n- 그램 기법 노이즈 채널 모델 단어 n- 그램 기법 최장 공통길이 기법 입말표기 수정 검색시스템에서 오타교정 구현방법
OUTLINE
문맥의존 (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
단어 n- 그램 기법 - Example
탐색을 위한 사전파일의 구조용어절단 검색을 위한 색인구조
용어열 색인 B- 트리 색인 문자 n- 그램 색인
철자교정을 위한 색인 편집거리 문자 n- 그램 기법 노이즈 채널 모델 단어 n- 그램 기법 최장 공통길이 (Longest Common Subsequence) 기법 입말표기 수정 검색시스템에서 오타교정 구현방법
OUTLINE
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) 기법
탐색을 위한 사전파일의 구조용어절단 검색을 위한 색인구조
용어열 색인 B- 트리 색인 문자 n- 그램 색인
철자교정을 위한 색인 편집거리 문자 n- 그램 기법 노이즈 채널 모델 단어 n- 그램 기법 최장 공통길이 (Longest Common Subsequence) 기법 입말표기 수정 검색시스템에서 오타교정 구현방법
OUTLINE
검색어를 발음대로 입력하기 때문에 생기는 문제 수정서양인명 , 고유명사 검색 시 주로 발생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
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
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
영어 단어와 한글 단어를 모두 영어 발음단어로 변환하는 코드방법
l, r → l f, p → f b, v → b 초성 ㄱ , ㄲ → g 종성 ㄱ , ㅋ → g
KONIX 코드 (by 김지승 , 김광현 , 이준호 )
( 색인 ) ( 탐색 )retrieval → litlibcl ← 리트리벌
탐색을 위한 사전파일의 구조용어절단 검색을 위한 색인구조
용어열 색인 B- 트리 색인 문자 n- 그램 색인
철자교정을 위한 색인 편집거리 문자 n- 그램 기법 노이즈 채널 모델 단어 n- 그램 기법 최장 공통길이 (Longest Common Subsequence) 기법 입말표기 수정 검색시스템에서 오타교정 구현방법
OUTLINE
교정철자로 검색을 수행하는 방법 오타철자 (carot) 와 교정철자 (carrot, tarot) 를 모두 검색 오타철자가 용어사전에 없을 때만 교정철자를 검색 오타용어로 검색된 문헌 수가 기준치보다 작을 때만 교정철자로 검색 오타용어로 검색된 문헌 수가 기준치보다 작을 때 교정철자 검색 제시
Do you mean: carrot?
검색시스템에서 오타교정 구현방법