当前位置: 首页 > news >正文

Python用langchain、OpenAI大语言模型LLM情感分析苹果股票新闻数据及提示工程优化应用...

全文链接:https://tecdat.cn/?p=39614 

本文主要探讨了如何利用大语言模型(LLMs)进行股票分析。通过使用提供的股票市场和金融新闻获取数据,结合Python中的相关库,如Pandas、langchain等,实现对股票新闻的情感分析。利用大语言模型构建情感分析模型,通过提示工程等技术优化模型,最终通过可视化展示股票市场的情感倾向,为股票投资决策提供参考点击文末“阅读原文”获取完整代码数据)。

关键词

大语言模型;股票分析;情感分析;API

一、引言

在当今的股票市场中,及时了解新闻和事件对于做出战略决策至关重要。认识到市场情绪对市场趋势的影响,是相应调整投资策略的关键。首先,我们需要从各种来源获取大量的市场新闻数据。这其中,数据质量(如来源数量、数据更新率等)和使用便捷性是重要的考量因素。
虽然数据在网上易于获取,但对于我们的需求来说,最便捷的方法之一是使用API端点将市场数据和新闻直接集成到代码中。有许多金融数据提供商提供API连接,它们在数据套餐、支持方式和数据质量上各有不同。
在本文中,我们将使用由提供的股票市场和金融新闻API。在我看来,该API在质量和价格之间达到了很好的平衡。该API提供了一个从金融新闻中提取见解的端点,便于进行市场情绪分析。由于其易于使用,用户可以查询和检索新闻文章,动态评估市场的积极或消极基调。
通过展示该API的功能,旨在展示其在情感分析中的无缝集成,使我们能够根据市场情绪做出明智的决策。在快速变化的股票市场环境中,获得这样的资源有助于我们采取更灵活和策略性的投资方法。

二、导入包

首先,我们需要在Python环境中导入所需的包。在本文中,我们将使用三个主要的包:Pandas用于处理数据帧,用于提取数据,langchain用于构建大语言模型。此外,我们还将使用其他辅助包,如config和re。

在导入之前,请确保使用命令行安装这些包。现在我们已经将所有所需的包导入到Python环境中,可以进行下一步,即激活API密钥。

三、API密钥激活

为了使用API的功能,必须注册API密钥。

四、数据提取

我们将通过访问:

response = client.financial\_news(s="AAPL.US", from\_date='2024-01-01', to_date='2024-01-30', limit=100)
data_frame = pd.DataFrame(response) # 将json输出转换为数据帧
data_frame.tail()

下面解释一下API中的参数:

  • s:字符串类型。如果未设置参数t,则此参数为必填项。表示要获取新闻的股票代码。

  • t:字符串类型。如果未设置参数s,则此参数为必填项。表示获取特定主题新闻的标签。可以

  • api_token:字符串类型。必填项。访问API的令牌,注册后可获得。

  • fromto:格式为YYYY-MM-DD。如果需要2021年3月1日至2021年3月10日的数据,则应使用from=2021-03-01to=2021-03-10

  • limit:数字类型。可选参数。表示查询应返回的结果数量。默认值为50,最小值为1,最大值为1000。

  • offset:数字类型。可选参数。表示数据的偏移量。默认值为0,最小值为0。例如,要从第200个开始获取100个符号,应使用limit=100offset=200
    数据如下所示:
    0e403be8bd063a5672718d620a3a549d.png
    输出数据包含以下字段:

  • date:文章的日期和时间。

  • title:文章的标题。

  • content:文章的全文。

  • link:文章来源的链接。

  • symbols:文章中提到的股票代码数组。

五、数据清洗

现在获取到的数据并不干净,包含许多换行符和不同的命令。因此,我们需要对其进行清洗:

# 清洗文本数据的函数
def clean\_textual\_data(text):clean_text = re.sub(r'\\s+','', text)return clean_text.strip()
# 将清洗函数应用到整个列
data\_frame\['content'\] = data\_frame\['content'\].apply(clean\_textual\_data)

现在我们已经将清洗函数应用到所有数据,可以继续构建我们的聊天机器人(这里指后续基于这些数据进行的分析流程类似聊天机器人调用数据的过程)。

六、大语言模型(LLM)

现在我们将使用Langchain与OpenAI模型形成一个大语言模型链。

language_model = ChatOpenAI(model="gpt-3.5-turbo",openai\_api\_key='YOUR OPENAI API KEY', 
temperature=0)

这段代码片段通过实例化gpt-3.5-turbo并将温度设置为0来初始化语言模型。选择温度为0可确保模型的确定性,防止其偏离主题,并保持专注和一致的生成结果。
现在,我们将使用不同的技术使其更精确地适用于我们的下游任务,即情感分析。有很多不同的方法可以实现:

6.1 提示工程

提示工程是一个不断发展的领域,涉及设计和优化提示,以最大限度地提高像GPT这样的大语言模型的性能。随着这些模型的不断发展,我们对其进行提示的方式变得越来越重要。最近的研究表明,精心设计的提示可以显著提高可靠性,并使模型能够处理比以前认为更复杂的任务。
常用的提示工程技术如下:

  • 零样本提示:这种方法使大语言模型(LLMs)能够处理新任务,即使没有先前的示例或对任务的理解。它通过一种称为“提示”的技术运作,即只需向大语言模型提供所需任务的自然语言描述。

  • 少样本提示:虽然大语言模型展示出卓越的零样本能力,但在使用零样本设置时,它们在处理更复杂的任务时仍存在不足。少样本提示可以作为一种技术,实现上下文学习,即在提示中提供示例,引导模型获得更好的性能。这些示例作为后续示例的条件,我们希望模型为后续示例生成响应。

  • 思维链提示:思维链提示是一种有助于人工智能系统将复杂任务分解为可管理步骤的技术。这种方法不是一次性解决具有挑战性的问题,而是通过将解决方案分解为一系列较小的增量步骤来促进推理过程的解释。它首先明确定义最终目标,然后考虑实现该目标所需的逻辑前提和子任务。

6.2 微调

微调是一个有用的过程,它允许用户针对特定任务定制预训练的语言模型(LLMs)。通过在包含特定任务数据的小数据集上对模型进行微调,可以在保持其整体语言理解能力的同时,提高其在该特定任务上的性能。
主要的两种微调方法如下:

  • 全指令微调:全指令微调是一种用于使大语言模型(LLMs)适应特定任务的技术。该过程涉及使用特定任务的数据调整大语言模型的所有参数。这种调整使模型能够在特定任务上更有效地执行,可能会导致性能提升。之所以需要全指令微调,是因为即使是最强大的预训练大语言模型也可能无法直接满足特定需求。例如,一个应用程序可能需要独特的结构或风格,或者预训练的大语言模型可能缺乏对该应用程序至关重要的特定文档的知识。此外,某些领域、行业甚至特定企业通常具有在一般预训练数据中未显著体现的独特术语、概念和结构。因此,全指令微调是使大语言模型适应更特定用例的有价值方法。

  • 参数高效微调:参数高效微调(PEFT)是一种用于使大型预训练模型适应各种下游应用而无需微调模型所有参数的技术。这是因为微调所有参数的成本可能过高。相反,PEFT方法仅微调少量(额外的)模型参数。这显著降低了计算和存储成本,同时产生与完全微调模型相当的性能。PEFT解决了诸如在消费级硬件上进行全量微调不可行、为每个下游任务独立存储和部署微调模型成本高昂等问题。它还克服了在大语言模型(LLMs)全量微调期间观察到的灾难性遗忘问题。
    在本文中,我们将利用提示工程技术,利用Langchain模板功能,构建一个优化的提示,用于在股票市场中进行情感分析。目标是创建一个提示,不仅提供情感分析,还能为模型的推断提供解释。

template = """
从新闻文章中识别对苹果(AAPL)股票的情绪,情绪评分范围为-10到+10,其中-10表示最负面,+10表示最正面,0表示中性。
同时给出你的答案的合理解释,以及它将如何影响不同股票的价格。
文章:{statement}
"""
# 使用Langchain PromptTemplate功能形成提示
prompt = PromptTemplate(template=template, input_variables=\["statement"\])
llm\_chain = LLMChain(prompt=prompt, llm=language\_model)

现在我们已经建立了大语言模型链,下面给出一个推理示例。

6.3 运行大语言模型链

输出如下所示:
c80f17fad34d0d4bf3bd9af6ed62f80e.png


点击标题查阅往期内容

42904705b141e12066c506f148f52e46.jpeg

【视频】LSTM模型原理及其进行股票收盘价的时间序列预测讲解|附数据代码

outside_default.png

左右滑动查看更多

outside_default.png

01

48943aca66ab47a82151a1c2f0821637.png

02

0cb6b4ac1da5ea5884ae0e8a5b6b2838.png

03

e8e5325e2ed885c1656c20695dac8c10.jpeg

04

534df45a202f7df36cf7c1378b7bb3dc.png

七、分析

为了分析苹果(AAPL)股票的市场状况,我们将分析100篇文章并得出一些结论。
首先,我们必须确保不超过模型的令牌限制,我的模型限制是4097。因此,我们将过滤掉令牌数小于3500的文章:

# 计算令牌数量的函数
def count\_token\_numbers(text):tokens = text.split()return len(tokens)

现在,我将更改提示模板,以便获得简洁的输出:

template_2 = """
从新闻文章中识别对苹果(AAPL)股票的情绪,评分范围为-10到+10,其中-10表示最负面,+10表示最正面,0表示中性。
仅用一个单词回答,且该单词应为分数。
文章:{statement}
"""
# 使用Langchain PromptTemplate功能形成提示
prompt\_2 = PromptTemplate(template=template\_2, input_variables=\["statement"\])

让我们形成新的大语言模型链:

下面展示一个推理:

print(new\_data\_frame\['content'\]\[2\])
print('')
print('新闻情绪:', llm\_chain\_2.run(new\_data\_frame\['content'\]\[2\]))

结果如图:
5c82bee35f124aac265888e8319c15bf.png
很好,我们现在能够得到简洁的输出。现在,我们将创建一个for循环,遍历数据并获取每条新闻的情绪:

results = \[\]
for i in range(0, new\_data\_frame.shape\[0\]):results.append(llm\_chain\_2.run(new\_data\_frame\['content'\]\[i\]))

八、可视化

现在让我们绘制一些饼图,以查看AAPL股票的市场情绪:

import matplotlib.pyplot as plt
data = pd.DataFrame(results) # 转换为数据帧
col_name = 0 # 这是我的列名,你应根据你的数据进行更改
counts = data\[col\_name\].value\_counts()
# 绘制饼图
plt.pie(counts, labels=counts.index, autopct='%1.1f%%', startangle=140)
plt.title(f'饼图')
plt.axis('equal') # 等比例确保饼图绘制为圆形
# 显示饼图
plt.show()

结果如图:
b374264a6331e70203d1a316b8549c41.png

饼图表明,大量文章是中性的。然而,为了确保准确性,我们应该过滤数据,只关注分析非中性信息。

8.1 删除中性值

value\_to\_delete = '0'
# 删除列中出现指定值的所有行
new\_data = data\[data\[0\]!= value\_to_delete\]

8.2 可视化新数据

counts = new\_data\[col\_name\].value_counts()
# 绘制饼图
plt.pie(counts, labels=counts.index, autopct='%1.1f%%', startangle=140)
plt.title(f'饼图')
plt.axis('equal') # 等比例确保饼图绘制为圆形
# 显示饼图
plt.show()

结果如图:
41083643d4a9b6cebe145492e782ab61.png

观察趋势,+5和+7的组合占数据的近40%。考虑到+10、+8和+3等其他值,正面文章的累积百分比上升到52.5%。这种模式表明普遍存在乐观情绪,意味着在最近的文章中对苹果公司的看法良好。所确定的积极前景可能对塑造苹果市场表现的整体情绪产生潜在影响。

九、结论

在本研究中,我们使用了API收集股票市场新闻文章,并利用OpenAI的情感分析模型评估这些文章中传达的情绪。


资料获取

在公众号后台回复“领资料”,可免费获取数据分析、机器学习、深度学习等学习资料。

10a4f64c691dcc21a04a25180b55a7e6.jpeg

点击文末“阅读原文”

获取全文完整代码数据资料。

本文选自《Python用langchain、OpenAI大语言模型LLM情感分析AAPL股票新闻数据及提示工程优化应用》。

点击标题查阅往期内容

Python生成对抗神经网络GAN预测股票及LSTMs、ARIMA对比分析ETF金融时间序列可视化

Python深度强化学习智能体DDPG自适应股票交易策略优化道琼斯30股票数据可视化研究

MATLAB贝叶斯优化混合Bayes-CNN-RNN分析股票市场数据与浅层网络超参数优化

Python用CEEMDAN-LSTM-VMD金融股价数据预测及SVR、AR、HAR对比可视化

Python注意力机制Attention下CNN-LSTM-ARIMA混合模型预测中国银行股票价格|附数据代码

R语言KERAS用RNN、双向RNNS递归神经网络、LSTM分析预测温度时间序列、 IMDB电影评分情感

Python用CNN-LSTM、ARIMA、Prophet股票价格预测的研究与分析|附数据代码

【视频讲解】线性时间序列原理及混合ARIMA-LSTM神经网络模型预测股票收盘价研究实例

RNN循环神经网络 、LSTM长短期记忆网络实现时间序列长期利率预测

结合新冠疫情COVID-19股票价格预测:ARIMA,KNN和神经网络时间序列分析

深度学习:Keras使用神经网络进行简单文本分类分析新闻组数据

用PyTorch机器学习神经网络分类预测银行客户流失模型

PYTHON用LSTM长短期记忆神经网络的参数优化方法预测时间序列洗发水销售数据

Python用Keras神经网络序列模型回归拟合预测、准确度检查和结果可视化

R语言深度学习卷积神经网络 (CNN)对 CIFAR 图像进行分类:训练与结果评估可视化

深度学习:Keras使用神经网络进行简单文本分类分析新闻组数据

Python用LSTM长短期记忆神经网络对不稳定降雨量时间序列进行预测分析

R语言深度学习Keras循环神经网络(RNN)模型预测多输出变量时间序列

R语言KERAS用RNN、双向RNNS递归神经网络、LSTM分析预测温度时间序列、 IMDB电影评分情感

Python用Keras神经网络序列模型回归拟合预测、准确度检查和结果可视化

Python用LSTM长短期记忆神经网络对不稳定降雨量时间序列进行预测分析

R语言中的神经网络预测时间序列:多层感知器(MLP)和极限学习机(ELM)数据分析报告

R语言深度学习:用keras神经网络回归模型预测时间序列数据

Matlab用深度学习长短期记忆(LSTM)神经网络对文本数据进行分类

R语言KERAS深度学习CNN卷积神经网络分类识别手写数字图像数据(MNIST)

MATLAB中用BP神经网络预测人体脂肪百分比数据

Python中用PyTorch机器学习神经网络分类预测银行客户流失模型

R语言实现CNN(卷积神经网络)模型进行回归数据分析

SAS使用鸢尾花(iris)数据集训练人工神经网络(ANN)模型

【视频】R语言实现CNN(卷积神经网络)模型进行回归数据分析

Python使用神经网络进行简单文本分类

R语言用神经网络改进Nelson-Siegel模型拟合收益率曲线分析

R语言基于递归神经网络RNN的温度时间序列预测

R语言神经网络模型预测车辆数量时间序列

R语言中的BP神经网络模型分析学生成绩

matlab使用长短期记忆(LSTM)神经网络对序列数据进行分类

R语言实现拟合神经网络预测和结果可视化

用R语言实现神经网络预测股票实例

使用PYTHON中KERAS的LSTM递归神经网络进行时间序列预测

python用于NLP的seq2seq模型实例:用Keras实现神经网络机器翻译

用于NLP的Python:使用Keras的多标签文本LSTM神经网络分类

0b08429b5131b93fc40a2933efafa71f.jpeg

04d9377ee203526f9891243fb8a6be71.png

4b0678eb3a3b6a10080df2b54571780c.png

3972cbed2599112f6bc51033e9dd9179.jpeg

ccf224aa3cd81993bd9f2dc59d6dd1d4.png

相关文章:

Python用langchain、OpenAI大语言模型LLM情感分析苹果股票新闻数据及提示工程优化应用...

全文链接:https://tecdat.cn/?p39614 本文主要探讨了如何利用大语言模型(LLMs)进行股票分析。通过使用提供的股票市场和金融新闻获取数据,结合Python中的相关库,如Pandas、langchain等,实现对股票新闻的情…...

【正点原子K210连载】第六十七章 音频FFT实验 摘自【正点原子】DNK210使用指南-CanMV版指南

第六十七章 音频FFT实验 本章将介绍CanMV下FFT的应用,通过将时域采集到的音频数据通过FFT为频域。通过本章的学习,读者将学习到CanMV下控制FFT加速器进行FFT的使用。 本章分为如下几个小节: 32.1 maix.FFT模块介绍 32.2 硬件设计 32.3 程序设…...

Centos Ollama + Deepseek-r1+Chatbox运行环境搭建

Centos Ollama Deepseek-r1Chatbox运行环境搭建 内容介绍下载ollama在Ollama运行DeepSeek-r1模型使用chatbox连接ollama api 内容介绍 你好! 这篇文章简单讲述一下如何在linux环境搭建 Ollama Deepseek-r1。并在本地安装的Chatbox中进行远程调用 下载ollama 登…...

ReactNative进阶(五十九):存量 react-native 项目适配 HarmonyOS NEXT

文章目录 一、前言二、ohos_react_native2.1 Fabric2.2 TurboModule2.2.1 ArkTSTurboModule2.2.2 cxxTurboModule: 三、拓展阅读 一、前言 2024年10月22日19:00,华为在深圳举办“原生鸿蒙之夜暨华为全场景新品发布会”,主题为“星河璀璨&…...

go并发和并行

进程和线程 进程(Process)就是程序在操作系统中的一次执行过程,是系统进行资源分配和调度的基本单位,进程是一个动态概念,是程序在执行过程中分配和管理资源的基本单位,每一个进程都有一个自己的地址空间。…...

一种解决SoC总线功能验证完备性的技术

1. 前言 通过总线将各个IP通过总线连接起来的SoC芯片是未来的大趋势,也是缩短芯片开发周期,抢先进入市场的常用方法。如何确保各个IP是否正确连接到总线上,而且各IP的地址空间分配是否正确,是一件很棘手的事情。本文提出了一种新…...

Web3 与区块链:开启透明、安全的网络新时代

在这个信息爆炸的时代,我们对网络的透明性、安全性和隐私保护的需求日益增长。Web3,作为新一代互联网的代表,正携手区块链技术,引领我们走向一个更加透明、安全和去中心化的网络世界。本文将深入探讨 Web3 的基本概念、区块链技术…...

c#中Thread.Join()方法的经典示例

在 C# 中,Thread.Join 是一个非常有用的方法,它可以让主线程(调用线程)等待子线程(被调用线程)执行完毕后再继续执行。 1、经典示例1 using System; using System.Threading;public class Example {stati…...

深入了解越权漏洞:概念、危害与防范

前言 越权漏洞作为一种常见且极具威胁的安全隐患,就像隐藏在暗处的 “黑客帮凶”,时刻威胁着我们的数据安全和隐私。就让我们一起揭开越权漏洞的神秘面纱,深入了解它的来龙去脉、危害以及应对之策。 一、什么是越权漏洞 想象一下&#xff0…...

MySQL 数据库编程-C++

目录 1 数据库基本知识 1.1 MYSQL常见命令 1.2 SQL注入 1.3 ORM框架 1 数据库基本知识 MySQL 为关系型数据库(Relational Database Management System), 这种所谓的"关系型"可以理解为"表格"的概念, 一个关系型数据库由一个或数个表格组成&#xff1a…...

dl学习笔记(9):pytorch数据处理的完整流程

1)自动导入常用库的设置方式 在开始之前,这里介绍一下自动导入常用的你需要加载的库的操作方式。 首先在我们的目录下找到ipython文件,如下图: 然后找到里面的startup文件: 然后新建一个文本文档,输入你每…...

wps中的vba开发

推荐先学习vba语言(兰色幻想80集) 保存代码时注意保存为 .xlsm(启用宏的工作簿) 子程序SUN和函数FUNCTION: Sub 第一个程序()MsgBox "这是第一个程序"End Sub 注释Sub 第二个程序()Dim str As Stringstr "这是第二个程序&…...

力扣 LCR 078 合并K个升序链表

思路 解题过程 分治合并 与 LeetCode 21题 合并两个有序链表 相似 只是在此题的基础上增加了链表的数量。 使用递归将链表数组不断分成两半,直到分成的小组都只剩下一个链表元素为止,随后开始合并链表。 复杂度 时间复杂度: O(N * logK) K 为 链表(li…...

【hive】记一次hiveserver内存溢出排查,线程池未正确关闭导致

一、使用 MemoryAnalyzer软件打开hprof文件 很大有30G,win内存24GB,不用担心可以打开,ma软件能够生成索引文件,逐块分析内存,如下图。 大约需要4小时。 overview中开不到具体信息。 二、使用Leak Suspects功能继续…...

React Native 开发 安卓项目构建工具Gradle的配置和使用

gradle基本知识 gradle是React Native和Flutter调试、构建安卓App的打包工具。 gradle可以简单的类比为前端的webpack,webpack将源文件打包成HTML、CSS、JavaScript,而gradle将源文件打包成apk或aar(Android Assemble Bundle)。…...

IntelliJ IDEA新版本的底部version control(或git)里local change窗口显示配置修改详细教程

环境 IntelliJ IDEA 2024.3.2.2 (Ultimate Edition) Runtime version: 21.0.58-b631.30 aarch64 (JCEF 122.1.9) macOS 14.2.1 自己记录下。 步骤 设置 --> Version Control(版本控制) --> Commit(提交) --> 去掉勾选:Use non-modal commit interface…...

MySQL三大日志——binlog、redoLog、undoLog详解

日志是mysql数据库的重要组成部分,记录着数据库运行期间各种状态信息,能帮助我们进行很多容错及分析工作,其中有三大日志与我们这些开发者息息相关,本文将介绍binlog、redoLog、undoLog三种日志: 1. redoLog 1.1 为什么…...

MCU应用踩坑笔记(ADC 中断 / 查询法)

问题描述 IC:SC92F7596,在使用过程中,发现一个问题,就是我们使用到了ADC功能,程序的代码如下: ADC采样周期200ms ,采样个数:4 在使用过程中,因配置了ADC中断使能,在中断…...

32.日常算法

1.最大子数组和 题目来源 给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。子数组是数组中的一个连续部分。 示例 1: 输入:nums [-2,1,-3,4,-1,2,1,…...

通过docker安装部署deepseek以及python实现

前提条件 Docker 安装:确保你的系统已经安装并正确配置了 Docker。可以通过运行 docker --version 来验证 Docker 是否安装成功。 网络环境:保证设备有稳定的网络连接,以便拉取 Docker 镜像和模型文件。 步骤一:拉取 Ollama Docker 镜像 Ollama 可以帮助我们更方便地管理…...

35 C 语言字符串转数值函数详解:strtof、strtod、strtold(含 errno 处理、ERANGE 错误)

1 strtof() 函数 1.1 函数原型 #include <stdlib.h> // 必须包含这个头文件才能使用 strtof() #include <errno.h> // 包含 errno 和 ERANGE #include <float.h> // 包含 FlOAT_MAX 和 FLOAT_MIN #include <math.h> // 包含 HUGE_VALF(inf)float…...

现代C++特性(一):基本数据类型扩展

文章目录 基础数据类型long long (C 11)numeric_limits()获取当前数据类型的最值warning C4309: “”: 截断常量值新字符类型char16_t和char32_tWindows编程常用字符类型wchar_tchar8_t (C 20) 基础数据类型 C中的基本类型是构建其他数据类型的基础&#xff0c;常见的基础类型…...

国标GB28181设备管理软件EasyGBS远程视频监控方案助力高效安全运营

一、方案背景​ 在商业快速扩张的背景下&#xff0c;连锁店门店数量激增&#xff0c;分布范围广。但传统人工巡检、电话汇报等管理方式效率低下&#xff0c;存在信息滞后、管理盲区&#xff0c;难以掌握店铺运营情况&#xff0c;影响企业效率与安全。网络远程视频监控系统可有…...

jenkins结合gitlab实现CI

Jenkins结合GitLab实现CI&#xff08;持续集成&#xff09; 持续集成&#xff08;Continuous Integration, CI&#xff09;是一种软件开发实践&#xff0c;开发者在代码提交后&#xff0c;系统会自动进行构建、测试&#xff0c;从而尽早发现问题。Jenkins和GitLab的结合可以高效…...

AI推荐系统演进史:从协同过滤到图神经网络与强化学习的融合

每一次滑动手机屏幕&#xff0c;电商平台向你推荐心仪商品的背后&#xff0c;是超过百亿量级的浮点运算。从早期的“猜你喜欢”到如今的“比你更懂你”&#xff0c;商品推荐引擎已悄然完成从简单规则到深度智能的技术跃迁。 一、协同过滤&#xff1a;推荐系统的基石与演进 协同…...

【OpenGL学习】(五)自定义着色器类

文章目录 【OpenGL学习】&#xff08;五&#xff09;自定义着色器类着色器类插值着色统一着色 【OpenGL学习】&#xff08;五&#xff09;自定义着色器类 项目结构&#xff1a; 着色器类 // shader_s.h #ifndef SHADER_H #define SHADER_H#include <glad/glad.h>#inc…...

关于安科瑞APD局部放电监测装置解决方案的应用分析

1 什么是局部放电&#xff1f; 局部放电&#xff08;Partial Discharge, PD&#xff09;是指发生在电气设备绝缘系统局部区域的、未贯穿整个电极的微小放电现象。它通常发生在高压电气设备&#xff08;如变压器、开关柜、电缆、GIS等&#xff09;内部存在绝缘缺陷、电场集中或…...

市面上哪款AI开源软件做ppt最好?

市面上哪款AI开源软件做ppt最好&#xff1f; aippt&#xff1a;AiPPT - 全智能 AI 一键生成 PPT 网站形式&#xff0c;需要注册 ai to pptx &#xff1a;SmartSchoolAI/ai-to-pptx: 前端后端同时开源。 Ai-to-pptx是一个使用AI技术(DeepSeek)制作PPTX的助手&#xff0c;支持在…...

在线OJ项目测试

一.项目简介 1.1项目背景 历史起源&#xff1a;最早的OJ系统&#xff08;如UVa、POJ&#xff09;是为国际大学生程序设计竞赛&#xff08;ICPC&#xff09;等赛事开发的&#xff0c;用于自动评判参赛者的代码正确性和效率。 需求场景&#xff1a;竞赛需要公平、高效的评分系统…...

Spring 中的disposableBean介绍

在 Spring 框架中&#xff0c;DisposableBean 是一个接口&#xff0c;用于定义 Bean 在被销毁前需要执行的清理逻辑。它是 Spring 容器生命周期回调机制的一部分。 &#x1f331; 什么是 DisposableBean DisposableBean 接口是 Spring 提供的一个标准接口&#xff0c;用于通知…...