1. 토큰화(Tokenization)란?
토큰화라는 것은 텍스트를 토큰의 단위로 분할하는 작업을 말한다. 토큰의 단위를 단어(어절)를 기준으로 하면 단어 토큰화(Word Tokenization)- 단어구 포함, 문장을 기준으로 하면 문장 토큰화(Sentence Tokenization)라고 일컫는다.
또한 문자를 기준으로 하거나 서브워드 기준으로 토큰화를 할 수도 있다. 문자를 기준으로 토큰화하면,
다음과 같이 토큰화된다. "저는 따뜻한 커피를 좋아합니다 > 저, 는, 따, 뜻, 한, 커, 피, 를, 좋, 아, 합, 니, 다"
서브워드 기준으로 토큰화하면, 하나의 단어를 여러 서브워드로 분리한다. 다음과 같이 "돌다리 > 돌, 다리"로 구분될 수 있다. 자주 등장한 단어는 그대로 두고, 자주 등장하니 않은 "희소한" 단어는 의미있는 서브 워드 토큰들로 분절한다.(원칙)
대규모의 텍스트 데이터, 즉 말뭉치( 코퍼스, corpus)를 인공지능 학습에 사용하기 위해서는 전처리가 필요하다.
데이터를 사용하려는 용도에 맞게 토큰화&정제&정규화를 해야 한다.
토크나이저? 토크나이저는 토큰화하는 도구를 말한다. 정규표현식으로 일일히 처리하려면 번거로운데 토크나이저 라이브러리를 가지고 손쉽게 토크나이징할 수 있다.
NLTK, KoNLPy, Kss 등이 있다.
nltk의 wordTokenizerTreebankWordTokenizer
transformer의 BertTokenizer(서브워드 토크나이저), XLNetTokenizer
트랜스포머 라이브러리에서 활용되는 세 가지 토크나이즈 기법
Byte-Pair Encoding(BPE), WordPiece, SentencePiece
2. 표제어 추출(Lemmatization)
표제어 추출은 단어의 원형을 찾는 것이다. nltk.stem에서 WordNetLemmatizer import
표제어 추출은 어간 추출과는 달리 단어의 형태가 적절히 보존되는 양상을 보인다.
jumped -> jump
3. 어간 추출(Stemming)
nltk.stem에서 PorterStemmier import
formalize -> formal
먹고 -> 먹
'자연어 처리(NLP) 공부' 카테고리의 다른 글
[NLP 스터디] BoW(Bag of Words), TF-IDF (0) | 2023.05.03 |
---|---|
[NLP 스터디] Language Model, N-gram (0) | 2023.05.01 |
자연어 처리(NLP) - 품사 태깅(Tagging) (0) | 2023.03.17 |
자연어 처리(NLP) - 정규 표현식(Regular Expression) 모듈 re (0) | 2023.03.17 |
자연어 처리(NLP) - 어간 추출과 표제어 추출 모두 수행하기 (0) | 2023.03.16 |