PaddleHub教程合集—(2)PaddleHub预训练模型Senta完成情感分析

PaddleHub教程合集—(2)PaddleHub预训练模型Senta完成情感分析

Senta—情感倾向分析(Sentiment Classification);针对带有主观描述的中文文本,可 自动判断该文本的情感极性类别并给出相应的置信度,能够 帮助企业理解用户消费习惯、分析热点话题和危机舆情监控,为企业提供有利的决策支持

一、定义待预测数据

在aistudio运行直接以下语句; 如果在本地运行该项目示例,需要首先安装PaddleHub。

!pip install paddlehub==1.6.2 -i https://pypi.tuna.tsinghua.edu.cn/simple

项目具体代码


test_text = ["这家餐厅很好吃", "这部电影真的很差劲"]

with open("test.txt", 'r') as f:
    test_text = []
    for line in f:
        test_text.append(line.strip())
print(test_text)

数据准备完成,运行结果

[‘这家餐厅很好吃’, ‘这部电影真的很差劲’]

二、加载预训练模型+三、预测

Senta开源了一系列,供用户选择:
BOW(Bag Of Words)模型,是一个非序列模型,使用基本的全连接结构;关于该模型更多介绍, 查看PaddleHub官网介绍
CNN(Convolutional Neural Networks),是一个基础的序列模型,能处理变长序列输入,提取局部区域之内的特征;关于该模型更多介绍, 查看PaddleHub官网介绍
GRU(Gated Recurrent Unit),序列模型,能够较好地解决序列文本中长距离依赖的问题;关于该模型更多介绍, 查看PaddleHub官网介绍
LSTM(Long Short Term Memory),序列模型,能够较好地解决序列文本中长距离依赖的问题;关于该模型更多介绍, 查看PaddleHub官网介绍
Bi-LSTM(Bidirectional Long Short Term Memory),序列模型,采用双向LSTM结构,更好地捕获句子中的语义特征;关于该模型更多介绍, 查看PaddleHub官网介绍

import paddlehub as hub
senta = hub.Module(name="senta_bilstm")
input_dict = {"text": test_text}
results = senta.sentiment_classify(data=input_dict)
for result in results:
    print(result)

运行结果

{‘text’: ‘这家餐厅很好吃’, ‘sentiment_label’: 1, ‘sentiment_key’: ‘positive’, ‘positive_probs’: 0.9407, ‘negative_probs’: 0.0593}
{‘text’: ‘这部电影真的很差劲’, ‘sentiment_label’: 0, ‘sentiment_key’: ‘negative’, ‘positive_probs’: 0.02, ‘negative_probs’: 0.98}

四、总结

Senta—情感倾向分析(Sentiment Classification)

  1. 导包paddlehub
  2. 调paddlehub . Module(name=”senta_bilstm”)
    换模型直接改name

模型名 PaddleHub Module BOW hub.Module(name=’ senta_bow‘)
{‘text’: ‘这家餐厅很好吃’, ‘sentiment_label’: 1, ‘sentiment_key’: ‘positive’, ‘positive_probs’: 0.9782, ‘negative_probs’: 0.0218}
{‘text’: ‘这部电影真的很差劲’, ‘sentiment_label’: 0, ‘sentiment_key’: ‘negative’, ‘positive_probs’: 0.0124, ‘negative_probs’: 0.9876}
CNN hub.Module(name=’ senta_cnn‘)
{‘text’: ‘这家餐厅很好吃’, ‘sentiment_label’: 1, ‘sentiment_key’: ‘positive’, ‘positive_probs’: 0.7902, ‘negative_probs’: 0.2098}
{‘text’: ‘这部电影真的很差劲’, ‘sentiment_label’: 0, ‘sentiment_key’: ‘negative’, ‘positive_probs’: 0.0343, ‘negative_probs’: 0.9657}
GRU hub.Module(name=’ senta_gru‘)
{‘text’: ‘这家餐厅很好吃’, ‘sentiment_label’: 1, ‘sentiment_key’: ‘positive’, ‘positive_probs’: 0.9607, ‘negative_probs’: 0.0393}
{‘text’: ‘这部电影真的很差劲’, ‘sentiment_label’: 0, ‘sentiment_key’: ‘negative’, ‘positive_probs’: 0.0187, ‘negative_probs’: 0.9813}
LSTM hub.Module(name=’ senta_lstm‘)
{‘text’: ‘这家餐厅很好吃’, ‘sentiment_label’: 1, ‘sentiment_key’: ‘positive’, ‘positive_probs’: 0.9285, ‘negative_probs’: 0.0715}
{‘text’: ‘这部电影真的很差劲’, ‘sentiment_label’: 0, ‘sentiment_key’: ‘negative’, ‘positive_probs’: 0.0187, ‘negative_probs’: 0.9813}

  1. 将列表换成 字典格式input_dict = {“text”: test_text}
  2. 得结果results = senta.sentiment_classify(data=input_dict)

Original: https://blog.csdn.net/weixin_44554401/article/details/121400482
Author: -KWOK-
Title: PaddleHub教程合集—(2)PaddleHub预训练模型Senta完成情感分析

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/700226/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球