Keras로 배우는 언어 모델링을 위한 순환 신경망(RNN)
David Cecchini
Data Scientist
문장은 구두점으로 구분됩니다. 예: .(마침표), !(느낌표), ?(물음표).
문장 토큰(예: <SENT>, </SENT>)으로 시작과 끝을 표시합니다.
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
확률 분포를 스케일링합니다.
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)