728x90

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

먹고 -> 먹

 

https://applepy.tistory.com/91

728x90

+ Recent posts