본문 바로가기

검색 엔진

[박헤웅] 어휘 분석 (lexical analysis)

  • lexical analysis의 특징

    • 질의, 색인의 기본과정(첫과정) 

 

  • 색인 분석시 고려사항

    • 토큰 정의시 고려사항

      • 숫자: 중요수치, 기술문서의 용어에서 숫자를 포함해야 함

        • 예: 비타민정보: B6, B12
      • 하이픈, dash

        • 예: F-16, MS-DOS
      • 구두점(마침표, 슬래시, 콤마

        • 예: command.com, OS/2
    • 대소문자의 구분

      • 소크코드 검색시 구별필요

 

  • 질의 분석시 고려사항

    • 색인용과 고려사항이 비슷함
    • 논리연산자, 절단연산자, 가중치기능연산자, 괄호 인식필요

 

  • lexical analyzer의 구현방법

    • lex(Unix 어휘 분석기) 이용

      • 어휘분석기가 복잡할 경우 유용
    • 특정알고리즘으로 어휘분석기 작성

      • 알고리즘의 오류 발생 위험
    • 유한오토마타를 이용한 어휘분석기 작성

 

  • 유한오토마타를 이용한 어휘분석기 작성

    • 각종 클래스 정의(ASCII일 경우)

      • 문자열끝(EOS) 클래스 추가
      • 각 문자에 대한 문자클래스 정의

        • char_class['A'] = LETTER_CH
        • char_class['2'] = DIGIT_CH
      • 대소문자변환용 클래스 정의

        • convert_case['C'] = convert_case['c']