버트 모델을 이용해서 한글에 대한 토크나이징을 진행해 보겠습니다.
코드 10-53 문장의 토크나이징
text = "나는 파이토치를 이용한 딥러닝을 학습중이다."
marked_text = "[CLS] " + text + " [SEP]" ------ 문장의 시작은 [CLS], 문장의 끝은 [SEP]로 형태를 맞춥니다.
tokenized_text = tokenizer.tokenize(marked_text) ------ 사전 훈련된 버트 토크나이저를 이용해서 문장을 단어로 쪼갭니다.
print(tokenized_text)
다음은 “나는 파이토치를 이용한 딥러닝을 학습중이다.”라는 문장을 쪼갠(토크나이징한) 결과입니다.
['[CLS]', '나는', '파', '##이', '##토', '##치를', '이', '##용한', '딥', '##러', '##닝', '##을', '학', '##습', '##중', '##이다', '.', '[SEP]']
쪼개진 단어들이 정확하지 않은 것을 확인할 수 있습니다. 이것은 버트 토크나이저가 단어의 가장 작은 조각을 기준으로 쪼개도록 설계되었기 때문입니다. 따라서 과하다 싶을 정도로 잘게 쪼개져 있습니다. 영어의 경우 단어 기준으로 쪼개지기는 하지만 영어가 아닌 경우에는 토크나이징이 정확하지 않을 수 있기 때문에 KoBert 같은 국내에서 개발한 모델들을 이용하는 것도 좋습니다.
이제 모델을 훈련시킬 텍스트를 정의해 볼 텐데, 문장의 유사성을 확인하기 위해 ‘사과’라는 단어가 들어간 세 개의 문장을 만들었습니다. 이후 문장에 대한 토크나이징을 진행합니다.