如何显示来自文本分类的其他情绪分数?
How do I show the other sentiment scores from text classification?
我正在做情绪分析,我想知道如何显示其他情绪分数 对我的句子进行分类:“Tesla 的股票刚刚增加了 20%。”
我有三种情绪:正面、负面和中性。
这是我的代码,其中包含我要分类的句子:
pip install happytransformer
from happytransformer import HappyTextClassification
happy_tc = HappyTextClassification("BERT", "ProsusAI/finbert", num_labels=3)
result = happy_tc.classify_text("Tesla's stock just increased by 20%")
这是结果代码和输出:
print(result)
TextClassificationResult(label='positive', score=0.929110586643219)
这是情绪分数,只显示积极的分数:
print(result.label)
print(result.score)
positive
0.92
现在,我该怎么做才能显示负面和中性以及正面的情绪分数?
看起来像这样的东西:
positive
0.92
negative
0.05
neutral
0.03
谢谢。
因为 HappyTransformer 不支持多重 class 概率我建议使用另一个库。库 flair
提供了更多功能,可以为您提供所需的多重 class 概率,如下所示:
from flair.models import TextClassifier
from flair.data import Sentence
tc = TextClassifier.load('en-sentiment')
sentence = Sentence('Flair is pretty neat!')
tc.predict(sentence, multi_class_prob=True)
print('Sentence above is: ', sentence.labels)
只需 pip install flair
即可使用。
请注意,我们使用的模型与 BERT 不同,并且只有 returns 两个标签而不是三个。
另一种选择是使用 HuggingFace
库。它允许使用自定义标签。
from transformers import pipeline
classifier = pipeline("zero-shot-classification")
classifier(
"This is a course about the Transformers library",
candidate_labels=["education", "politics", "business"],
)
{'sequence': 'This is a course about the Transformers library',
'labels': ['education', 'business', 'politics'],
'scores': [0.8445963859558105, 0.111976258456707, 0.043427448719739914]}
在您的情况下,您将标签切换为 ["positive", "negative", "neutral"]
。
我正在做情绪分析,我想知道如何显示其他情绪分数 对我的句子进行分类:“Tesla 的股票刚刚增加了 20%。”
我有三种情绪:正面、负面和中性。
这是我的代码,其中包含我要分类的句子:
pip install happytransformer
from happytransformer import HappyTextClassification
happy_tc = HappyTextClassification("BERT", "ProsusAI/finbert", num_labels=3)
result = happy_tc.classify_text("Tesla's stock just increased by 20%")
这是结果代码和输出:
print(result)
TextClassificationResult(label='positive', score=0.929110586643219)
这是情绪分数,只显示积极的分数:
print(result.label)
print(result.score)
positive
0.92
现在,我该怎么做才能显示负面和中性以及正面的情绪分数?
看起来像这样的东西:
positive
0.92
negative
0.05
neutral
0.03
谢谢。
因为 HappyTransformer 不支持多重 class 概率我建议使用另一个库。库 flair
提供了更多功能,可以为您提供所需的多重 class 概率,如下所示:
from flair.models import TextClassifier
from flair.data import Sentence
tc = TextClassifier.load('en-sentiment')
sentence = Sentence('Flair is pretty neat!')
tc.predict(sentence, multi_class_prob=True)
print('Sentence above is: ', sentence.labels)
只需 pip install flair
即可使用。
请注意,我们使用的模型与 BERT 不同,并且只有 returns 两个标签而不是三个。
另一种选择是使用 HuggingFace
库。它允许使用自定义标签。
from transformers import pipeline
classifier = pipeline("zero-shot-classification")
classifier(
"This is a course about the Transformers library",
candidate_labels=["education", "politics", "business"],
)
{'sequence': 'This is a course about the Transformers library',
'labels': ['education', 'business', 'politics'],
'scores': [0.8445963859558105, 0.111976258456707, 0.043427448719739914]}
在您的情况下,您将标签切换为 ["positive", "negative", "neutral"]
。