Python基于百度智能云平台股票资讯情感分析

Python基于百度智能云平台股票资讯情感分析

全部代码和数据地址如下:Python基于百度智能云平台股票资讯情感分析


本文章详细内容如下:


导入相应的包

1.引入库

import pandas as pd
import datetime
from aip import AipNlp
import codecs

2.设置账户秘钥

APP_ID = ''
API_KEY = ''
SECRET_KEY = ''

client = AipNlp(APP_ID, API_KEY, SECRET_KEY)

3.导入数据

df = pd.read_csv('600519.csv')
del df["Unnamed: 0"]
df["date"] = pd.to_datetime(df["create time"].apply(lambda x: "2023-"+ x[:5]))

在这里插入图片描述

data= df[["date","title"]].sort_values(by="date").reset_index(drop=True)
data

在这里插入图片描述

4.数据合并

newvdata = data.groupby('date').agg(lambda x:list(x)) #按日期分组,把同一天的评论并到一起
newvdata

在这里插入图片描述

5.百度自然语言处理情感分析

sitems=client.sentimentClassify(text)['items'][0]#情感分析
   
for i in range(newvdata.shape[0]):
    print('正在处理第{}条,还剩{}条'.format(i,newvdata.shape[0]-1))
    dates=newvdata.index[i]
    for view in newvdata.title[i]:
        print(view)
        get_sentiments(view,dates)

6.分析结果

sent_df = pd.read_csv("./sentiment.csv",header=None)
sent_df.columns = ["date","positive_prob", "confidence", "sentiment"]
sent_df.date = pd.to_datetime(sent_df.date)
sent_df = sent_df.sort_values(by="date")
group_df = sent_df.groupby('date')["positive_prob"].mean()
group_df = pd.DataFrame(group_df)
group_df

在这里插入图片描述

group_df.plot(figsize=(20, 5))

在这里插入图片描述

7.获取股票数据

import tushare as ts 
# 茅台股票价格数据获取
stock_df = ts.get_k_data('600519',start='2023-01-03',end='2023-07-12')
stock_df["pct_change"] = stock_df["close"].pct_change()*10
stock_df = stock_df.dropna()
stock_df = stock_df.set_index('date')  # 设置日期为索引
stock_df.index = pd.to_datetime(stock_df.index)
stock_df

在这里插入图片描述

all_data = stock_df.join(group_df, how="left")
all_data = all_data.fillna(method="ffill")
all_data

在这里插入图片描述

all_data[["pct_change", "positive_prob"]].plot(figsize=(20, 5))

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_39559994/article/details/131716868