텍스트 생성 함수

Keras로 배우는 언어 모델링을 위한 순환 신경망(RNN)

David Cecchini

Data Scientist

문장 생성

  • 문장은 구두점으로 구분됩니다. 예: .(마침표), !(느낌표), ?(물음표).

    • 구두점 문자는 어휘에 포함되어야 합니다.
  • 문장 토큰(예: <SENT>, </SENT>)으로 시작과 끝을 표시합니다.

    • 레이블을 삽입하도록 데이터를 전처리해야 합니다.
Keras로 배우는 언어 모델링을 위한 순환 신경망(RNN)

문장 생성

sentence = ''

# Loop until end of sentence while next_char != '.':
# Predict next char: Get pred array in position 0 pred = model.predict(X)[0]
char_index = np.argmax(pred)
next_char = index_to_char(char_index)
# Concatenate to sentence sentence = sentence + next_char
Keras로 배우는 언어 모델링을 위한 순환 신경망(RNN)

확률 스케일링

확률 분포를 스케일링합니다.

  • Temperature: 물리학에서 온 용어
    • 작은 값: 예측을 더 확신하게 함
    • 1일 때: 스케일링 없음
    • 큰 값: 예측을 더 창의적으로 함
    • 하이퍼파라미터: 필요에 맞게 값을 시도해 보세요
Keras로 배우는 언어 모델링을 위한 순환 신경망(RNN)

확률 스케일링

def scale_softmax(softmax_pred, temperature=1.0):
    # Take the logarithm
    scaled_pred = np.log(softmax_pred) / temperature

# Re-apply the exponential scaled_pred = np.exp(scaled_pred)
# Build probability distribution scaled_pred = scaled_pred / np.sum(scaled_pred)
# Simulate multinomial scaled_pred = np.random.multinomial(1, scaled_pred, 1)
# Return simulated class return np.argmax(scaled_pred)
Keras로 배우는 언어 모델링을 위한 순환 신경망(RNN)

연습해 봅시다!

Keras로 배우는 언어 모델링을 위한 순환 신경망(RNN)

Preparing Video For Download...