죠으니 2022. 2. 23. 17:28

토큰(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]]