python - 天才感伤分析未给出中性结果
问题描述
我正在使用 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'} 我做错了什么?
解决方案
问题不在于您的代码,而在于模型(在幕后)的训练方式及其工作方式。Flair 使用的英文模型是基于发布的特定数据集(电影和产品评论)进行训练的。如果要查看模型文件,它通常位于.flair
主目录的子文件夹中。
基本上,您使用的是提供给您分数的预训练模型。要获得不同的分数,您可以构建自己的模型,可能添加到现有模型中,也可以使用不同的模型。
您可以尝试其他模型,看看通过替换此行得到什么结果:
classifier = TextClassifier.load('en-sentiment')
和:
classifier = TextClassifier.load('sentiment-fast') # for a RNN based model
请注意,上面的模型不太可能给您更好的结果,但值得一试。否则,最好探索构建自己的情绪分析模型并加载它。
推荐阅读
- javascript - 分类器.__proto__ = LogisticRegressionClassifier.prototype
- sql-server - 来自链接 Firebird 数据库的动态 SQL 错误 -104
- python - Django 视图 - 无法使用现有的 ForeignKey 为空字符串创建对象
- c# - FakeItEasy:如何在方法调用时检查参数是否更改?
- qt - QMediaPlayer - 在 Qt 中连续播放 BGM
- c - 错误:c 中函数的类型冲突
- google-cloud-run - 谷歌云运行:服务能知道自己的url吗?
- google-apps-script - Google Apps 脚本:在对象 SpreadsheetApp 上获取方法或属性 openById 时出现意外错误
- javascript - 我不明白为什么一旦我尝试将 div 标签绑定到我的代码中的 v-for 指令,它就会停止可见
- java - 如何解析 Postgresql JDBC url 以获取主机名、端口和 db_name