我已经熟悉Google的BERT,并将其用于情感分析。我设法重现了最基本的示例:
from transformers import pipeline
classify = pipeline('sentiment-analysis')
print(classify("This is so nice I am glad to be here"))
print(classify("lame boring hard to follow"))
第一个classify
返回了[{'label': 'POSITIVE', 'score': 0.9998354911804199}]
,第二个[{'label': 'NEGATIVE', 'score': 0.9997642040252686}]
返回了。到目前为止,完全符合计划。
但是,我需要用各种语言分析成千上万个这样的简短(或不太长,通常最多为3句长)的注释。幸运的是,BERT有使用104种语言训练的多语言模型,所以我认为这应该不是问题。我使用
下载了模型classify = pipeline('sentiment-analysis', model='bert-base-multilingual-uncased')
希望,一旦完成,我也可以就非英语评论获得类似的情感数据。但是,当我尝试输入一些随机的中文,土耳其语和匈牙利语文本时,总是得到这样的输出:
[{'label': 'LABEL_0', 'score': 0.5475049614906311}]
我做错了什么?以前的POSITIVE
和NEGATIVE
标签不见了,相反,我得到的LABEL_0
是不确定的,并且分数显然与真实的正负并不匹配还是我的输入评论。