SentencePiece를 활용한 효과적인 한국어 토크나이저 만들기
소개
자연어 문장을 컴퓨터가 쉽게 이해하게 만들기 위해서는 다양한 전처리 과정을 거쳐야합니다.
그 중 하나로 문장을 토큰 단위로 쪼개서 처리하는 토크나이징 기법이 있습니다.
오늘은 SentencePiece를 활용하여 한국어 텍스트를 효과적으로 토크나이징 하는 방법을 소개합니다.
SentencePiece는 Google에서 2018년도에 공개한 오픈소스 라이브러리로, 다양한 자연어처리 태스크에서 널리 사용되고 있습니다.
최근에는 Huggingface에서 공개한 Tokenizers도 자주 사용되고 있지만 오늘은 Sentencepiece에 대한 내용을 주로 다루도록 하겠습니다.
텍스트 전처리 과정 예시
데이터 전처리 | 예시 |
---|---|
텍스트 데이터를 모델이 이해하는 벡터로 바꾸려면 다양한 전처리 과정을 거치게 됩니다. 오늘 다루는 주제는 이중에서도 가장 앞단에 있는 텍스트를 토큰 단위로 쪼개는(Split) 전처리 과정을 다룹니다. 오른쪽 그림은 "히어로 무비 중 가장 어둡지만 가장 참신했다." 라는 문장을 벡터로 변환하는 과정입니다. 텍스트 문장은 word, character, 형태소, subword (char, byte)등 다양한 방법으로 쪼개서 처리될 수 있습니다. |
설치방법
- pyenv를 통해 sentencepiece를 설치할 환경을 구성합니다
- 작성시점 기준 비교적 최신인 3.11.x 버전을 설치해줍니다
- 설치는 pyenv 기준으로 진행하겠습니다 (MacOS 환경입니다)