NLP
▶ 토큰(token) : 텍스트(문장)를 단어별, 문장별, 형태소별로 나눌 수 있는데, 나누어져서 의미가 있는 단위
▶ 토큰화(tokenization) : 입력된 텍스트를 잘게 나누는 과정
from tensorflow.keras.preprocessing.text import Tokenizer
token = Tokenizer() # 토큰화 함수 지정
token.fit_on_texts(docs) # 토큰화 함수에 문장 적용
▶ 각 단어 빈도수 : .word_counts
token.word_counts
▶ 총 문장 수 : .document_count
token.document_count
▶ 각 단어가 몇개의 문장에 포함되어 있는가 : .word_docs
token.word_docs
▶ 각 단어에 매겨진 인덱스 값 : .word_index
token.word_index
▶ 케라스 text 모듈의 text_to_word_sequence() 함수를 사용하면 문장의 단어 단위 토큰화가 가능
from tensorflow.keras.preprocessing.text import text_to_word_sequence
result = text_to_word_sequence(text)
토큰화:
['해보지', '않으면', '해낼', '수', '없다']
▶ Bag-of-Words : 같은 단어끼리 따로 따로 가방에 담은 뒤 각 가방에 몇 개의 단어가 들어있는지를 세는 기법
▶ 패딩(padding) : 문장의 단어 수를 똑같이 맞춰 주는 작업
pad_sequnce( ) 함수 : 원하는 길이보다 짧은 부분은 숫자 0을 넣어서 채워주고, 긴 데이터는 잘라줌
pad_sequnce(x, 4)
패딩 결과:
[[ 0 0 2 3]
[ 0 0 0 4]
[ 5 6 7 8]
[ 0 9 10 11]
[ 0 12 13 14]
[ 0 0 0 1]
[ 0 0 0 15]
[ 0 0 16 17]
[ 0 0 18 19]
[ 0 0 1 20]]