0

在为我的 NLP 使用编译 Tensorflow/Keras 模型时,我已经成功定义了自定义混淆矩阵。但是,我无法在训练和评估模型时实现 BLEU 分数。

from nltk.translate.bleu_score import bleu
from keras import backend as K

def BLEU(y_true, y_pred):
    y_true = K.eval(K.argmax(y_true,-1))
    y_pred = K.eval(K.argmax(y_pred,-1))
    return K.mean(K.variable([bleu([t], p, weights=(1.0,)) for t in y_true for p in y_pred], dtype='float32'))

model.compile(optimizer=optimizer, loss='categorical_crossentropy', metrics=['accuracy', precision, recall, f1, BLEU])

NLTK 不再支持这个功能了吗?

4

0 回答 0