OOV란? (Out Of Vocbulary)
- 단어 집합에 존재하지 않는 단어
- 이것 또한 정수인코딩을 할 필요가 있을 수 있다!
숫자 0과 oov토큰을 고려하여 단어 집합의 크기를 +2함
oov_token = 단어집합에 없는 단어들을 OOV로 간주하여 보존합니다.
vocab_size = 5
tokenizer =Tokenizer(num_words = vocab_size + 2, oov_token='OOV')
tokenizer.fit_on_texts(preprocessed_sentences)
Keras의 Tokenizer은 'OOV'를 인덱스 1로 합니다.
그래서 한번 출력해보자면
tokenizer.word_index
출력결과
{'OOV': 1,
'barber': 2,
'secret': 3,
'huge': 4,
'kept': 5,
'person': 6,
'word': 7,
'keeping': 8,
'good': 9,
'knew': 10,
'driving': 11,
'crazy': 12,
'went': 13,
'mountain': 14}
로 이렇게 나옵니다.
tokenizer.texts_to_sequences(preprocessed_sentences)
것 또한
이렇게 표현이 됩니다. 그러면 즉
barber person 이런식으로 되는거죠~
맨 마지막으를 보면 barber OOV huge OOV를 의미하고
oov는 훈련된 단어가 아니기때문에 어떤 단어인지 알 수 없습니다!
그래서 즉 빈도수 상위 5개 단어는 2~6까지 인덱스! 즉 2가 가장 많은거!
단어 집합 밖의 단어들은 전부 인덱스 1의 'OOV'로 인코딩이 됩니다.
'자연어(LLM)' 카테고리의 다른 글
순환신경망을 이용한 IMDB 리뷰 분류해보기(28) (3) | 2024.12.10 |
---|---|
[AI활용 자연어처리 챗봇프로젝트] Padding, 원핫인코딩 (5) | 2024.12.09 |
[AI활용 자연어처리 챗봇프로젝트] 케라스를 이용한 전처리 (1) | 2024.12.05 |
[AI활용 자연어처리 챗봇프로젝트] 정제 · 정규화 (1) | 2024.12.04 |
[AI활용 자연어처리 챗봇프로젝트] 토큰화 및 문장처리 (1) | 2024.12.03 |