토큰화


토큰화

  • 주어진 코퍼스에서 토큰이라 불리는 단위로 나누는 작업
  • 보통 의미있는 단위로 토큰을 정의

단어 토큰화

  • 토큰의 기준 : 단어
    • 단어 단위 외에도 단어구, 의미를 갖는 문자열로도 간주
    • ex) ‘가방을’을 하나의 단어로 간주한 후 토큰화
  • 정제 작업을 수행했다고 하더라도 해결되지 않음
    • 오히려 제대로 되지 않는 경우도 생김

토큰화 주의사항

  • 토큰화 진행 시 토큰화 기준을 재고해야 하는 상황 발생 가능
  • 이 경우 토큰화 도구 직접 설계 과정을 거칠 수 있음
    • 토크나이징 라이브러리 잘 활용해야함
  • 특수문자를 단순 제외를 하면 안됨
    • 마침표 : 문장의 끝을 알려주는 구두점. 함부로 제거하면 안됨
    • 단어 자체에 구두점을 가지고 있는 경우
    • 날짜, 시간, 가격 등
  • 줄임말(영어 ‘, .)의 경우에도 함부로 제거하면 안됨
    • EX)A’s, T.N.T

문장 토큰화

  • 토큰의 단위 : 문장
  • 문장 분류라고도 함
  • 미정제된 코퍼스의 경우 문장 단위로 구분할 때 필요한 과정

문장 토큰화 기준

  • 직관적으로 생각하면 ?, ., !가 될 수 있음
  • 하지만 꼭 그런 것만은 아님
    • 예를들어 문장에 Ph.D.가 들어가있는 경우 마침표가 문장의 끝을 나타내는 기호가 아님
    • 이 경우 마침표가 문장의 끝의 기준이 된다면 문장 토큰화가 제대로 안됨

한국어에서의 토큰화

  • 영어의 경우 아주 일부의 예외처리만 한 후 띄어쓰기 기준으로 단어 토큰화 가능
  • 한국어는 어절을 기준으로 토큰화할 시 부정확해지는 정도가 영어보다 큼
    • 조사의 존재
      • 조사의 존재로 서로 다른 단어로 분류될 수 있음
      • 조사를 제거해줘야함
  • 영어에 비해 띄어쓰기가 어려움
    • 띄어쓰기가 잘 지켜지는 경우가 많지 않다
  • 형태소를 기준으로 토큰화를 해줘야함

품사태깅

  • 품사에 따라 의미가 달라지는 경우 존재
    from nltk.tag import pos_tag #nltk에서 품사 태깅
    from konlpy.tag import Okt
    from konlpy.tag import Kkma #konlpy에서 품사 태깅