초보 개발자의 일기
토큰화 (Tokenization) 본문
Tokenizition
토큰(Token)이란 보통 화폐 대신에 유통되는 주조물 등을 말한다. 지금은 사용하지 않지만 버스 승차 시 사용했던 버스 토큰이나, 아직까지 사용되고 있는 지하철 토큰 등이 있다.
화폐의 경우 구겨지거나, 찢어지거나, 낙서가 되어 있어도 그 화폐의 가치는 변하지 않는다. 즉, 고유값을 가지고 있다. 그 고유값을 일정 모양의 주조물로 옮겨놓은 것을 토큰이라고 하는 것이다. (이것은 스스로 이해를 쉽게 하기 위해 생각해낸 예시이다.)
자연어처리에서의 토큰 또한 비슷한 개념이라고 생각하면 될 것 같다. 주어진 문장이나 큰 글에서 토큰(Token)이라 불리는 단위로 나누는 작업을 토큰화(Tokenization)라고 하며, 의미있는 부분을 토큰으로 정의한다.
다만 여기에서 의미있는 '부분'이라 말한 이유는 토큰의 기준이 다양함에 있다. 명사, 문장, 형태소 등등 토큰화의 기준은 다양하고, 각각의 방법마다 주로 이용되는 분야가 다르다.
단어 토큰화(Word Tokenization)
토큰의 기준을 단어(word)로 하는 경우이다. (단어, 단어구, 의미를 갖는 문자열로 간주)
영어의 경우 띄어쓰기를 기준으로 토큰화를 진행해도 크게 문제가 생기지 않는다.
Before
It takes a great deal of bravery to stand up to our enemies, just as much to stand up to our friends.
After
"It", "takes", "a", "great", "deal", "of", "bravery", "to", "stand", "up", "to", "our", "enemies", ",", "just", "as", "much", "to", "stand", "up", "to", "our", "friends", "."
하지만 한국어는 띄어쓰기만으로 토큰화를 하면 정제 단계로 넘어갈 수 없는 경우가 있다.
Before - 띄어쓰기가 없는 문장
적에게용감하게맞서기위해서는커다란용기가필요하다.친구를위해일어서는것또한그렇다.
Before - 띄어쓰기가 있는 문장
적에게 용감하게 맞서기 위해서는 커다란 용기가 필요하다. 친구를 위해 일어서는 것 또한 그렇다.
After - 띄어쓰기가 있는 문장
"적에게", "용감하게", "맞서기", "위해서는", "커다란", "용기가", "필요하다", ".", "친구를", "위해", "일어서는", "것", "또한", "그렇다", "."
위의 첫 번째 문장을 보면 띄어쓰기가 하나도 없지만 뜻은 이해할 수 있다.
이런 특징 때문에 한국어는 영어에 비해 띄어쓰기가 잘 되어있지 않다. 따라서 한국어 자연어처리시에는 띄어쓰기를 기준으로 한 토큰화를 권장하지 않는다.
※ Wikidocs의 '딥 러닝을 이용한 자연어 처리 입문'을 바탕으로 한 학습 기록입니다 ※
'소소한 공부 일기 > NLP' 카테고리의 다른 글
정제(Cleaning) and 정규화(Normalization) (0) | 2021.07.20 |
---|