본문 바로가기

검색 엔진

[박혜웅] 어간 추출 (stemming)

  •  stemming의 특징

    • 색인전에 용어(term)대신 어간(stem)으로 변환
    • 일반적으로 stemming을 하면, 정확도(precision)를 감소시키는 대신 조회율(recall)을 증가시킴.
    • 장점

      • 색인파일의 크기 감소

        • 색인어 수가 감소하므로
        • 50% 이상 압축비율.
      • 검색속도 향상

        • 이미 stemming되어 있을 경우. 검색시 색인어에 대한 stemming이 불필요
    • 단점

      • 용어 정보 상실 또는 추가적인 정보공간 필요
    • stem(어간)

      • 활용어가 활용할 때에 변하지 않는 부분)

 

  • stemming 방법

    • 접두사, 접미사 제거

      • 단어로 부터 접두/접미사 제거 하거나 어간을 변형

        • 예: Poter 알고리즘

          • 조건(어간, 접미사, 규칙)과 행위 집합으로 구성
    • 후속자 변형(successor variety)

      • 본문내의 글자가 연속적으로 나타나는 빈도
      • 후속자변형의 값이 크게 감소하는 위치를 기준으로 단어 절단(cutoff)
      • 예: 단어집합 able, axle, accident, ape, about, 단어: apple

        • 후속자변형: a에 대하여 4(b,x,c,p), ap에 대하여 1(e)
        • 따라서 apple에 대한 후속자변형은 1
    • 테이블 탐색

      • (색인용어-> 어간 목록) 테이블 이용
      • 계산비용이 클 때 유용
      • 비표준어에 대한 처리 불가
      • 테이블 저장에 따르는 저장공간 오버헤드
    • n-gram

      • 두 단어가 공유하는 글자수로 유사성을 계산
      • 어간이 같은 단어들의 군집화(clustering)에 이용
      • 어간이 생성되지 않음.
      • Dice 상관계수 S

        • S = 2C / (A + B
        • A: 첫째 단어의 ‘유일’이중그램 수, 
        • B: 두째 단어의 ‘유일’이중그램 수,
        • C: A와 B가 공유한 유일 이중 그램 수
      • 예: 두 단어( statistics, statistical)에 대하여

        • A=7, B=8, C=6
        • S= (2*6)/(7+8) = 0.80
      •  

 

  • 탐색 과정에서 사용되는 스테머--------------

    • CATALOG의 경우 질의어 user에 대하여 user, users, used 등을 빈도순으로 제시

 

  • stemming의 압축률

    • Poter의 경우 26~ 28%의 압축
    • 실제 데이터베이스에서는 더 작은 압축률

      • 왜냐하면 숫자, 오자(misspelling), 고유명사(proper name)등이 포함되어 있기 때문