-
[NLP-Tensorflow] Part 1 Tokenization자연어처리 2022. 6. 6. 13:09
https://www.youtube.com/watch?v=fNxaJsNG3-s&list=PLQY2H8rRoyvzDbLUZkbudP-MFQZwNmU4S
How to process words in a way that a computer can process them.
단어들을 컴퓨터가 처리할 수 있는 모양으로 어떻게 처리할 것인가?
Tokenization 토큰화
단어에 포함된 각 문자를 encoding scheme을 통해 숫자로 표현할 수 있다.
하지만 밑의 두 단어처럼 구성한는 문자는 동일하지만 순서만 다른 경우에는 다른 뜻을 표현하기 어려울 수 있다.
따라서 단어에 있는 각 문자를 인코딩하기 보다는 각 단어를 인코딩하는 방법을 사용할 수 있다.
예를 들어, "I love my dog"라는 문장이 있을 때 'I'를 1로, 'love'를 2로 'my'를 3으로 'dog'를 4로 변환하는 것이다.
그 다음에 "l love my cat"이라는 문장이 주어지면 'cat'이라는 단어를 5로 인코딩할 수 있고, 두 문장은 각각 '1 2 3 4', '1 2 3 5'로 표현되므로 두 문장이 유사하다는 것을 알 수 있다.
import temsorflow as tf from tensorflow import keras from tensorflow.keras.preprocessing.text import Tokenizer // API sentences = [ 'I love my dog', 'I love my cat' ] tokenizer = Tokenizer(num_words = 100) // instance of tokenizer object, num_words parameter: maximum number of words to keep tokenizer.fit_on_text(sentences) word_index = tokenizer.word_index // full list of words print(word_index)
결과물:
sentences에 다음과 같은 문장을 하나 더 추가하게 되면,
"You love my dog!", 느낌표와 같은 특이 케이스를 알고 있어서 토큰을 하나 더 추가하지 않는다.
'자연어처리' 카테고리의 다른 글
[NLP-tensorflow] Training an AI to create poetry (NLP Zero to Hero - Part 6) (0) 2022.06.08 [NLP-tensorflow] Long Short Term Memory for NLP (0) 2022.06.08 [NLP-tensorflow] ML with Recurrent Neural Networks (0) 2022.06.08 [NLP-tensorflow] Part 3 Training a model to recognize sentiment in text (0) 2022.06.06 [NLP-tensorflow] Part 2 Turning sentences into data (0) 2022.06.06