如何仅显示来自 Transformers Pipeline 的标签输出 - 情感分析
How can I show Label output only from Transformers Pipeline - Sentiment Analysis
Picture of Output
从图片中,我给了模型一些句子来分析。分析结果,我在名为“sentiment”的数据框中添加了一个新列。
如您所见,它以带有标签和分数的列表格式给出结果。
我想做的只是添加标签结果。即:“阳性”、“阴性”等。有办法做到这一点吗?
非常感谢。
我不知道你的 pipe
是如何工作的,但是你有 list
和 dict
并且 pandas
有 .str
来处理字符串但是 .str[index]
也适用于 list
或 dict
.
df['Sentiment'] = df['Sentiment'].str[0].str['label']
最小工作示例
import pandas as pd
df = pd.DataFrame({
'Sentiment': [
[{'label':'Negative', 'score': 0.1}],
[{'label':'Positive', 'score': 0.9}],
]
})
print('\n--- before ---\n')
print(df)
df['Sentiment'] = df['Sentiment'].str[0].str['label']
print('\n--- after ---\n')
print(df)
结果:
--- before ---
Sentiment
0 [{'label': 'Negative', 'score': 0.1}]
1 [{'label': 'Positive', 'score': 0.9}]
--- after ---
Sentiment
0 Negative
1 Positive
Picture of Output
从图片中,我给了模型一些句子来分析。分析结果,我在名为“sentiment”的数据框中添加了一个新列。
如您所见,它以带有标签和分数的列表格式给出结果。
我想做的只是添加标签结果。即:“阳性”、“阴性”等。有办法做到这一点吗?
非常感谢。
我不知道你的 pipe
是如何工作的,但是你有 list
和 dict
并且 pandas
有 .str
来处理字符串但是 .str[index]
也适用于 list
或 dict
.
df['Sentiment'] = df['Sentiment'].str[0].str['label']
最小工作示例
import pandas as pd
df = pd.DataFrame({
'Sentiment': [
[{'label':'Negative', 'score': 0.1}],
[{'label':'Positive', 'score': 0.9}],
]
})
print('\n--- before ---\n')
print(df)
df['Sentiment'] = df['Sentiment'].str[0].str['label']
print('\n--- after ---\n')
print(df)
结果:
--- before ---
Sentiment
0 [{'label': 'Negative', 'score': 0.1}]
1 [{'label': 'Positive', 'score': 0.9}]
--- after ---
Sentiment
0 Negative
1 Positive