在为我的 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 不再支持这个功能了吗?