基于深度学习的情感分析(附代码)

为什么一条简单的商品评论,AI就能判断用户是喜欢还是厌恶?社交媒体上的海量文本数据,如何快速洞察用户情绪倾向?情感分析(Sentiment Analysis)作为自然语言处理(NLP)的核心任务之一,正在电商、舆情监控、智能客服等领域发挥巨大作用。
本文将针对初学者,带你用深度学习技术构建情感分析模型(实现正负面情绪的分析),涵盖数据预处理、模型搭建、训练流程,并提供完整的PyTorch代码实现。

功能说明:

1.文本训练:√

  主干网络:

                 LSTM:√

                 其他网络:待更新

2.预测:√


环境说明

pytorch:1.7.0

jieba:0.42.1

pandas:1.1.4

代码:

GitHub - YINYIPENG-EN/Sentiment_Analysis: 基本深度学习的情感分析

1.准备数据集

本文仅仅是应用一个非常简单的示例进行说明,以最小化实现方法让大家快速上手~

制作数据集并放置在项目的data/文件下。结构如下:

data
|-- negative.txt
|-- positive.txt

 negative.txt用于存储负面(或是消极的情绪),positive.txt是正面(积极的情绪)。部分内容如下,我这里的数据集非常的简单,数据量也比较少,大家可自己扩充数据集。

negative.txt
产品质量差,使用一周就坏了,非常失望
服务态度恶劣,等待时间过长,不会再来
内容空洞无物,完全浪费时间和金钱
界面设计混乱,操作复杂难用,体验极差
物流太慢,包装破损,商品有瑕疵
宣传与实际不符,功能缺失,虚假广告
客服响应慢,问题无法解决,令人沮丧
味道一般,价格偏高,性价比低

..........................

positive.txt

学习内容非常实用,老师讲解清晰易懂,收获很大
性价比超高,功能齐全,物超所值
画面精美,音乐动人,情感表达真挚
操作简单方便,界面友好,适合所有年龄段
送货速度快,包装完好,质量上乘
解决方案专业有效,问题迅速解决,非常满意
食材新鲜,味道正宗,绝对五星好评

2.训练

在终端输入以下命令开启训练:

python emotion_train.py

训练参数说明,可根据自己需求调整:

# 参数设置
MAX_LENGTH = 20  # 序列最大长度
EMBEDDING_DIM = 128
HIDDEN_DIM = 256
NUM_LAYERS = 1
DROPOUT = 0.3
BATCH_SIZE = 8
EPOCHS = 40
LEARNING_RATE = 0.001
VOCAB_SIZE = 1000  # 词汇表大小
output_dir = 'zhangsan_logs' # 权重保存位置
backbone = 'LSTM' # 主干网络,暂仅支持LSTM

训练过后会将得到的权重、loss曲线和混淆矩阵保存下来,如下所示:(注:我这里其实已经过拟合了,数据量比较少,仅100条,只是为了省时间给大家做一个实现而已)

 

 3.预测

我们可以将训练后的权重哪里进行实际预测。例如,根据输入,模型会自动判断是正面的还是负面的,我这里的用例如下:

"这个产品真的很好用,物超所值",
"服务太差,再也不会购买了",
"质量很好,比想象中好",
"非常满意,超出了我的预期"

运行代码开启预测:

python predict.py

预测结果:

文本: 这个产品真的很好用,物超所值
情感: 正面
置信度: 负面 0.0197, 正面 0.9803
--------------------------------------------------
文本: 服务太差,再也不会购买了
情感: 负面
置信度: 负面 0.8860, 正面 0.1140
--------------------------------------------------
文本: 质量很好,比想象中好
情感: 正面
置信度: 负面 0.0970, 正面 0.9030
--------------------------------------------------
文本: 非常满意,超出了我的预期
情感: 正面
置信度: 负面 0.0656, 正面 0.9344
--------------------------------------------------

Process finished with exit code 0

(注:训练代码部分有偿提供)

<think>好的,我需要帮助用户找到根据经纬度查询气象数据的网站,特别是年均日照小时数、水平面总辐射量、极端温度、风速分布和降雪极值的数据。首先,我得回忆一下常用的气象数据平台。 用户提到的引用[1]中提到一个平台可以下载历史40年到未来7天的小时级数据,包括气温、湿度、降水、风速、辐射等。这可能指的是像NASA POWER或者ERA5这样的数据集?但需要确认这些平台是否支持年均值和极值查询。 然后,引用[2]和[3]涉及经纬度查询和海拔高度,可能相关的是如何处理地理坐标的数据源。比如,有些平台可能需要用户输入经纬度,然后返回对应点的数据。 接下来,我需要列举支持这些气象参数的网站。比如,NASA的POWER项目提供太阳辐射和气象数据,支持经纬度查询。NOAA的气候数据在线(NCEI)可能有极端温度和降雪数据。Global Solar Atlas专门用于太阳能相关数据,如总辐射量。欧洲中期天气预报中心的ERA5再分析资料覆盖全面,但可能需要处理数据提取。 另外,商业平台如Meteonorm和Weather Underground可能提供更易用的接口,但部分数据可能需要付费。这些平台是否允许用户直接输入经纬度获取年均值或极值呢? 需要确保推荐的网站确实支持用户输入经纬度坐标,并且能够导出所需的具体参数,比如年均日照小时数、极端温度等。同时,要注明是否需要注册或付费,以及数据的时间范围和历史覆盖情况。 最后,可能需要提醒用户注意数据的分辨率和来源,不同数据源可能因测量方法或模型不同而有差异,建议交叉验证。另外,处理这些数据时可能需要地理信息处理工具,比如GDAL或Python库如pyproj,如引用[3]提到的坐标转换可能在某些情况下需要。</think>根据您的需求,以下是支持基于经纬度查询气象数据的网站及方法: ### 一、推荐数据平台 1. **NASA POWER气象数据库** 提供全球任意经纬度的太阳能辐射(水平面总辐射量、散射辐射)、年均温度极值、风速分布等数据,时间范围覆盖1984年至今[^1]。 - 访问地址:https://power.larc.nasa.gov - 支持参数:水平面总辐射量(`All Sky Surface Shortwave Downward Irradiation`)、极端温度(`T2M_MAX`/`T2M_MIN`)、风速(`WS2M`) 2. **Global Solar Atlas(全球太阳能地图)** 专注于太阳能资源评估,可直接输入经纬度获取年均日照小时数和总辐射量,数据精度1km分辨率[^1]。 - 访问地址:https://globalsolaratlas.info 3. **NOAA NCEI气候数据在线** 提供历史极端温度、降雪极值等数据,需通过经纬度或地名检索,支持CSV格式导出。 - 访问地址:https://www.ncei.noaa.gov 4. **欧洲中期天气预报中心(ERA5再分析数据)** 覆盖风速、降水、温度等参数,通过Copernicus Data Store可提取指定经纬度的网格点数据[^1]。 - 访问地址:https://cds.climate.copernicus.eu --- ### 二、数据获取方法示例 1. **NASA POWER API调用(Python)** ```python import requests params = { 'latitude': 39.9042, 'longitude': 116.4074, 'parameters': 'T2M_MAX,T2M_MIN,ALLSKY_SFC_SW_DWN', 'start': 2010, 'end': 2020, 'user': 'your_email' } response = requests.get('https://power.larc.nasa.gov/api/temporal/annual/point', params=params) print(response.json()) ``` 2. **经纬度坐标匹配** 如引用[2]中SQL示例,可通过球面距离公式筛选最近的气象站点数据,适用于本地数据库整合。 --- ### 三、注意事项 - **分辨率差异**:再分析数据(如ERA5)精度约30km,地面观测数据精度更高但覆盖不连续 - **极端值验证**:建议结合多源数据(如GHCN-Daily)交叉核对极端温度、降雪记录 - **坐标转换**:部分平台需将经纬度转换为特定投影(如引用[3]中的EPSG:32648),可用`pyproj`库处理
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱吃肉的鹏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值