0

我正在使用 Flair 进行情感分析。但是,当我尝试预测标签时,我永远无法获得 Neutral 类。此外,类的置信度太不真实,即概率总是>0.97 为正,或概率如此之高为负。即使是非常中性的词也很有可能被预测为正面或负面。

classifier = TextClassifier.load('en-sentiment')
inputQuery='Go There and Walk'

sentence = Sentence(inputQuery)
classifier.predict(sentence)
label = sentence.labels[0]
labscore = (label.score)*100
response = {'result': label.value, 'score':"%.2f" % labscore}
print(response)

这里的输出是:{'result': 'POSITIVE', 'score': '96.66'} 我做错了什么?

4

1 回答 1

2

问题不在于您的代码,而在于模型(在幕后)的训练方式及其工作方式。Flair 使用的英文模型是基于发布的特定数据集(电影和产品评论)进行训练的。如果要查看模型文件,它通常位于.flair主目录的子文件夹中。

基本上,您使用的是提供给您分数的预训练模型。要获得不同的分数,您可以构建自己的模型,可能添加到现有模型中,也可以使用不同的模型。

您可以尝试其他模型,看看通过替换此行得到什么结果:

classifier = TextClassifier.load('en-sentiment')

和:

classifier = TextClassifier.load('sentiment-fast') # for a RNN based model

请注意,上面的模型不太可能给您更好的结果,但值得一试。否则,最好探索构建自己的情绪分析模型并加载它。

于 2020-09-12T16:07:00.890 回答