我已經訓練了一個效果很好的文本分類模型。我想更深入地了解句子中的哪些單詞/短語對分類結果影響最大。我想了解哪些詞對每個分類結果最重要
我使用 Keras 進行分類,下面是我用來訓練模型的代碼。這是我正在使用的簡單嵌入加最大池文本分類模型。
from tensorflow.keras.models import Sequential
from tensorflow.keras import layers
import tensorflow as tf
from tensorflow.keras.callbacks import EarlyStopping
# early stopping
callbacks = tf.keras.callbacks.EarlyStopping(monitor='val_accuracy', min_delta=0,
patience=5, verbose=2, mode='auto', restore_best_weights=True)
# select optimizer
opt = tf.keras.optimizers.Adam(learning_rate=0.001, beta_1=0.9, beta_2=0.999,
epsilon=1e-07, amsgrad=False, name="Adam")
embedding_dim = 50
# declare model
model = Sequential()
model.add(layers.Embedding(input_dim=vocab_size,
output_dim=embedding_dim,
input_length=maxlen))
model.add(layers.GlobalMaxPool1D())
model.add(layers.Dense(10, activation='relu'))
model.add(layers.Dense(1, activation='sigmoid'))
model.compile(optimizer=opt,
loss='binary_crossentropy',
metrics=['accuracy'])
model.summary()
# fit model
history = model.fit(X_tr, y_tr,
epochs=20,
verbose=True,
validation_data=(X_te, y_te),
batch_size=10, callbacks=[callbacks])
loss, accuracy = model.evaluate(X_tr, y_tr, verbose=False)
如何提取對分類結果影響最大的短語/單詞?
uj5u.com熱心網友回復:
看來你需要的關鍵詞是“神經網路可解釋性”和“特征歸因”。該領域最著名的方法之一稱為集成梯度;它顯示了模型預測如何取決于每個輸入特征(在您的情況下是每個詞嵌入)。
本教程演示如何實作IG在影像純tensorflow,和這一次使用的alibi庫來突出顯示輸入文本的話對分類模型的影響最大。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/367901.html
上一篇:我的輸入層需要什么形狀?我不斷收到ValueError:Layer"model"expected1input(s),butitreceived2inputtensors
