반응형
Stemming의 필요성
- 정보검색 시스템에서 색인 파일의 크기를 줄이기 위해
- 단어(어절) 대신 어간(stem)을 저장 → 50% 이상의 압축
- Stemming 기능
- ex)
- Computer, coumputers, compute, computes, computed, computing
- 색인
- 어형이 변형된 단어로부터 접사 제거 - 어간 분리
- 색인어가 어간화되어 효율성 및 색인파일 압축 효과
- 검색
- 단수형-복수형 등 관련 있는 단어들을 동일한 어간으로 매치
- 질의어 확장 효과Stemming 방법
- ex)
- 접사 제거(Affix Removal)
- 하나의 어간을 남기기 위해 용어들의 접두어와 접미어 제거
- 후속자 변형(Succesor Variety)
- 본문내의 글자가 연속으로 나타나는 빈도를 사용
- 테이블 탐색(Table Lookup)
- 용어와 어간을 테이블에 저장하여 테이블 탐색
- n-gram
- 용어가 공유할 수 있는 도표나 n-gram 수에 기초한 용어들의 합성
- 스테머 평가 기준: 정확성, 검색효과, 압축성능
테이블 탐색 기법
- 모든 색인어와 그 어간을 하나의 테이블에 저장하는 방법
| 색인용어 | 어간 |
| --- | --- |
| engineering | engineer |
| engineered | engineer |
| engineer | engineer |
- 질의로부터 용어들과 색인어들을 table lookup 을 통해 어간화 가능(B-tree, hash table)
- 문제점: 용어와 어간의 관계에 대한 자료부족, 저장 오버헤드
후속자 변형
- 한 문자열의 후속자 변형(succesor variety)
- 본문내의 단어들 중 글자를 후속하는 상이한 글자 수량
- 후속자 변형 스테밍 처리 3단계
- 단어에 대한 후속자 변형을 결정함
- 단어를 분할하기 위해 이 정보를 사용
- 어간으로서 분할 중 1개를 선택함
- 분할 방법:
- Cutoff method, peak and plateau method, complete word method, entropy method
- ex)
- READABLE이라는 단어를 어간으로 결정하는 작업
- Test Wrod : READABLE → READ + ABLE
- Corpus : ABLE, APE, BEATABLE, FIXALBE, READ, READALBE, READING, READS, RED, ROPE, RIPEn-gram stemmers
- READABLE이라는 단어를 어간으로 결정하는 작업
- Shared bigram method
- 용어 합성 방법으로 어간이 생성되지 않음
- bigram : 한 쌍의 연속된 글자
- Shared unique bigram 에 기초하여 용어들 사이에 관련성 척도 계싼
- ex) statistics와 statistical
- statistics → st ta st ti is st ti ic cs → 9개의 bigram
- unique bigrams → at cs ic is st ta ti → 7개
- statistical → st ta at ti is st ti ic ca al → 10개의 bigram
- unique bigrams → al at ca ic is st ta ti → 8개
- 6개의 unique bigram 공유 : at, ic, is, st, ta, ti
- Dice’s coefficient : (2x6) / (7+8) = 0.8
- ex) statistics와 statistical
- Similarity measure
- 단어 한 쌍에 대한 unique bigram을 기초로 유사도 계산
- Dice 상관계수 : S = 2C / (A+B)
- A,B : 각각 첫번째, 두번째 단어의 unique bigram 개수
- C: 공유한 unique bigram 개수
- 유사도: 데이터베이스내에 있는 용어의 모든 쌍에 대해 결정하며 유사성 행렬을 형성
Affix Removal Stemmers
- 어간을 남겨두기 위해 용어로부터 접미/접두어를 제거
- ex) 명사의 복수형에 대한 스테머 규칙
- If a word ends in ‘ies’ but not eies‘ or ‘aies’ then ‘ies’ → ‘y’
- if a word ends in ‘es’ but not ‘aes’, ‘ees’ or ‘oes’ then ‘es’ →’e’
- if a word ends in ‘s’ but not ‘us’ or ‘ss’ then ‘s’ → NULL
- Most stemmers are “iterative longest match stemmers”
- 규칙에 따라 한 단어로로부터 가능한 가장 긴 스트링 제거
- 더 이상의 문자들이 제거되지 않을 때 까지 계속 반복