Python 如何将情绪分类器应用于数据帧

Python 如何将情绪分类器应用于数据帧,python,pandas,huggingface-transformers,Python,Pandas,Huggingface Transformers,我有一个包含调查答案的数据框架。其中三列是开放式答案。使用HuggingFace NLP,我使用一个预先训练的情绪分析分类器。请查找以下代码: from transformers import AutoTokenizer, AutoModelForSequenceClassification, pipeline model_name = "nlptown/bert-base-multilingual-uncased-sentiment" model = AutoModelFo

我有一个包含调查答案的数据框架。其中三列是开放式答案。使用HuggingFace NLP,我使用一个预先训练的情绪分析分类器。请查找以下代码:

from transformers import AutoTokenizer, AutoModelForSequenceClassification, pipeline
model_name = "nlptown/bert-base-multilingual-uncased-sentiment"
model = AutoModelForSequenceClassification.from_pretrained(model_name)
tokenizer = AutoTokenizer.from_pretrained(model_name)
classifier = pipeline('sentiment-analysis', model=model, tokenizer=tokenizer)
classifier("This community is so helpful!")
分类器测试的结果是:“[{'label':'5stars','score':0.800311}]

我想做的是让分类器在我的开放式响应上运行,并且在我的数据框架的新列中,让它包括星星和排名分数

任何帮助都将不胜感激


编辑:我通过本地csv上传了数据集。我要使用的数据框列名是“Q72”

在列上应用模型,并使用分配函数创建另一列:

df = (
    df
    .assign(sentiment = lambda x: x['Q72'].apply(lambda s: classifier(s)))
    .assign(
         label = lambda x: x['sentiment'].apply(lambda s: (s[0]['label'])),
         score = lambda x: x['sentiment'].apply(lambda s: (s[0]['score']))
    )
)

这是太多的信息。您正在搜索的是如何在列上应用函数并创建包含结果的新列。NLP不会为问题添加任何有用的内容。一旦您以这种方式提问,就会有很多现有答案,例如,这是否回答了您的问题?请点击“接受答案”这太棒了。谢谢太感谢你了!有没有办法把结果分开(即第一个结果列是星星,下一个结果列是分数)?或者你认为这会是一个额外的步骤,就像把文本值分成不同的列一样?@CIHAnalytics更新了答案,现在你在单独的列中有两个字段。我收到一个错误,上面写着“字符串索引必须是整数。我如何解决这个问题?你能更新这个问题并告诉我你是如何加载数据集和的吗?你有哪些列,以及你如何应用我解释的内容?这样我才能帮助你。我更新了这个问题。我通过本地csv上传了数据集。我应用你答案的列是“Q72”“。所以我用x['Q72']替换了你答案中的x['touction']。该栏中的答案是测试答案,因此它们只包括“爱它”、“喵”和“恨它”。类型错误指向标签位。