728x90
반응형

맥락과 타깃

  • word2vec 신경망 입력은 '맥락'
  • 정답 레이블은 맥락에 둘러싸인 중앙의 단어 '타깃'

 

말뭉치에서 맥락과 타깃을 만드는 예

[그림1] 말뭉치에서 맥락과 타깃을 만드는 예

 

말뭉치 텍스트 단어 ID로 변환 - preprocess()

import sys
sys.path.append('..')
from util import preprocess

text = 'You say goodbye I say hello.'
corpus, word_to_id, id_to_word = preprocess(text)
print(corpus)

print(id_to_word)

[그림2] 말뭉치 텍스트 단어 ID로 변환

 

 

단어 ID의 배열인 corpus로부터 맥락과 타깃 작성하는 예

[그림3] 단어 ID의 배열인 corpus로부터 맥락과 타깃을 작성하는 예

 

맥락과 타깃을 만드는 함수

def create_contexts_target(corpus, window_size=1):
    target = corpus[window_size:-window_size]
    contexts = []

    for idx in range(window_size, len(corpus)-window_size):
        cs = []
        for t in range(-window_size, window_size + 1):
            if t == 0:
                continue
            cs.append(corpus[idx + t])
        contexts.append(cs)

    return np.array(contexts), np.array(target)
contexts, target = create_contexts_target(corpus, window_size=1)

print(contexts)

print(target)

[그림4] 맥락과 타깃을 만드는 함수

 

 

원핫 표현으로 변환


'맥락'과 '타깃' 원핫 표현 변환 예

[그림5] '맥락'과 '타깃 원한 표현 변환 예

 

데이터 준비 과정

import sys
sys.path.append('..')
from util import preprocess, create_contexts_target, convert_one_hot

text =  'You say goodbye I say hello.'
corpus, word_to_id, id_to_word = preprocess(text)

contexts, target = create_contexts_target(corpus, window_size=1)

vocab_size = len(word_to_id)
target = convert_one_hot(target, vocab_size)
contexts = convert_one_hot(contexts, vocab_size)

 

 

 

출처 : 밑바닥부터 시작하는 딥러닝2

https://www.hanbit.co.kr/store/books/look.php?p_code=B8950212853

 

밑바닥부터 시작하는 딥러닝 2

이 책은 『밑바닥부터 시작하는 딥러닝』에서 다루지 못했던 순환 신경망(RNN)을 자연어 처리와 시계열 데이터 처리에 사용하는 딥러닝 기술에 초점을 맞춰 살펴본다. 8장 구성으로 전체를 하나

www.hanbit.co.kr

 

728x90
반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기