0

我正在尝试获取情绪分析任务的显着性分数。每次我运行代码时,我都会得到不同的显着性分数。应该是这样吗?我附上我的代码以供更多参考。

from allennlp.predictors.predictor import Predictor
import nltk
from allennlp.interpret.saliency_interpreters import SmoothGradient


data = "purchase costume year old grandson halloween arrive one week earlier expect happy grandson absolutely love glad order larger size size barely fit material durable well make think wear many time play since halloween happy purchase worth dollars spend"

words = nltk.word_tokenize(data)

predictor = Predictor.from_path("https://storage.googleapis.com/allennlp-public-models/stanford-sentiment-treebank-roberta.2021-03-11.tar.gz")
predicted = predictor.predict(words)
saliency_scores = SmoothGradient(predictor).saliency_interpret_from_json({'sentence':words})

每次我打印相同数据的显着性分数时,值都会不断变化。模型生成的标记也被扭曲,例如万圣节闯入大厅、ow 和 een。我怎样才能解决这个问题?任何帮助,将不胜感激。

4

1 回答 1

1

解释器SmoothGradient向嵌入添加随机噪声。它的设计不是确定性的。有关详细信息,您可能需要阅读论文:https ://arxiv.org/abs/1706.03825

如果您需要确定性结果,请尝试SimpleGradient

于 2021-04-05T20:08:23.853 回答