Metin Üreten Fonksiyon

Keras ile Dil Modellemesi için Yinelenen Sinir Ağları (RNN)

David Cecchini

Data Scientist

Cümle üretimi

  • Cümle noktalama ile belirlenir. Örneğin . (nokta), ! (ünlem) veya ? (soru).

    • Noktalama işaretleri sözlükte olmalıdır.
  • Cümle belirteci vardır, ör. <SENT> ve </SENT>, cümlenin başlangıç ve bitişini belirler.

    • Etiketleri eklemek için veriyi ön işlemden geçirmek gerekir.
Keras ile Dil Modellemesi için Yinelenen Sinir Ağları (RNN)

Cümle üretimi

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 ile Dil Modellemesi için Yinelenen Sinir Ağları (RNN)

Olasılık ölçekleme

Olasılık dağılımını ölçekleyin.

  • Sıcaklık (Temperature): fizikten gelir
    • Küçük değerler: tahmini daha emin kılar
    • Bire eşit: ölçekleme yok
    • Daha yüksek değerler: tahmini daha yaratıcı kılar
    • Hiperparametre: İhtiyacınıza göre farklı değerleri deneyin
Keras ile Dil Modellemesi için Yinelenen Sinir Ağları (RNN)

Olasılık ölçekleme

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 ile Dil Modellemesi için Yinelenen Sinir Ağları (RNN)

Haydi pratik yapalım!

Keras ile Dil Modellemesi için Yinelenen Sinir Ağları (RNN)

Preparing Video For Download...