observe_db

[정보검색] 2. The term vocabulary and postings lists 본문

학교 공부/정보검색(4-2)

[정보검색] 2. The term vocabulary and postings lists

쩡윤 2024. 10. 6. 22:08

 

document의 다양한 format과 language.

- word, pdf, hwp, html, excel, html 등등

- 언어는 더하다.(한중일, 영어, 프랑스어, 독일어, 이탈리아어, 스페인어, 포르투갈어등등등)

- character(문자)도 다양하고(유럽의 알파벳+변형, 키릴문자나 히라가나, 가타카나, 번체와 간체 등)

- 여기에 코드 format은? utf-8이 일반적이지만, 그 외에도 많다.

 

나누는 단위는?

-file단위? email 단위?

-답이 없다.(크면 다시 찾는 경우 존재. 작으면 위치 파악이 어려움)

 

용어 정의

Word: text 내에서 나타나는 연속된 단위의 문자

Term: 일반적인 단어(대소문자 구분X, 기본형, 복수형X)

Token: doc. 내에서 실제로 나타나는 각각의 instance(예시)

Type: token중 같은 것들을 묶음.

 

Normalization

  • 여러 형태를 일반적(normal)인 형태로 바꾸는거
  • 예시로 USA/U.S.A.라거나
  • index에 같은 형태는 묶어야하기 때문에.
  • 파워풀하지만 효과적인지는?
  • 어퍼스트로피 같은 것은 자를지 말지 결정 필요.
  • 숙어와 같이 복수의 단어가 합쳐진 경우도 있다.
    • San Francisco, Data base, state-of-art, Los Angeles, New York
  • 숫자는?
    • 날짜의 순서와 표현이 다르고(YYYY/MM/DD만 있는게 아니다)
    • ip 주소, 비행기
    • 전화번호 등
  • 중국어와 같이 공백이 없는 경우도 있다.
  • 아랍어는 아예 오른쪽부터 읽는다.
  • 방점이나 엑센트는 없는게 낫다.
  • Stop words(불용어)
    • and, or, are, at, be, by, for, from, has, in, is, it ,of,  on, to, will, with 등등
  • 유사한 클래스
    • soundex: Muller = Mueller(발음이 같음)
    • thesauri: car = automobile(의미가 같음)

Lemmatization: 여러 가지(inflectional/variant) 형태를 기본 형태로.

Stemming: 끝부분을 잘라내서 의미만 남기는거.(굴절, 파생 가능성 있음)

-Porter 알고리즘

 

 

4. Skip Pointers

skip pointer에 연결된 번호<현 비교 번호일 때에 스킵 가능.

 

고려 사항들

  • Tradeoff: 많은 스킵? 자주 스킵?
  • More skips: 적은 item을 뛰어넘지만, 자주 사용할 수 있음.
  • Fewer skips: 많은 item을 뛰어넘지만, 많이 사용되지 않음.
  • 경험적으로 추천하는 수: 길이가 P일때 루트 P

 

5. Phrase query

구를 쿼리하는 방법

일반적인 방법으로는 잘못된 결과(위양성, FP)가 발생한다.

두가지 방법이 있다.

  • biword index: 두 단어를 한꺼번에 인덱싱
  • positional index: 위치 정보를 인덱싱

 

Biword index 

: 두 단어를 그냥 함께 넣는다.

단점:

1)Term이 굉장히 많아짐.

2)여러 개면..? 그거 다 넣어서 dictionary가 만들어져야함.=>크고 오래걸림.

 

Positional index(위치 인덱스)

이전의 posting list는 위치정보가 없음(non positional)

positional index에서는 각 posting은 docID와 position의 list(여기서 몇번째 단어인지 표시)를 포함.

 

 

Proximity search

4라고 한다면, 각자 4글자(단어) 범위 내를 살펴봄.

4글자 내에 있으면 hit, 아니면 not a hit

빈번한 단어들(불용어들)에겐 효과적이지 못함.

 

Combination scheme

biword처럼 dictionary를 만드는건 비효율적이겠지만,

좀 자주 나오는 단어는 dictionary로 만들어도?

 

 
 
Comments