使用FinBERT提高情感分数准确性,并拥抱SOLID原则
用FinBERT提高情感分数准确度,追随SOLID原则
在之前的实验中,标题为“使用Python构建新闻情感和股价表现分析的NLP应用”的实验中,我简要介绍了使用自动化市场新闻情感分析进行算法交易的概念,以及它与股价表现的相关性。市场动向,特别是在短期内,往往受到投资者情绪的影响。情感分析交易策略的主要组成部分之一是从原始文本中算法计算情感得分,然后将情感得分纳入交易策略中。情感得分越准确,算法交易预测潜在股价动态的可能性就越好。
在之前的实验中,我使用了vaderSentiment库。这次,我决定探索另一个NLP竞争者,即FinBERT NLP算法,并将其与Vader的情感得分准确性进行比较,以改善交易策略的回报率。
主要数据来源保持不变。我利用RapidAPI Hub上提供的Yahoo Finance API获取了用于情感分析的新闻数据。
我使用Python Jupyter Notebook作为开发实验场所。在我的Jupyter笔记本中,我首先调用API类以从Yahoo检索市场数据,并将JSON响应转换为Pandas数据帧。您可以在我的之前的实验中或GitHub存储库中找到这段代码。然后,我对数据帧中的“Headline”列应用Vader和FinBERT ML算法来计算相应的情感得分,并将它们添加到每个NLP ML算法的新情感得分列中。
- 使用XGBoost和Python对DEHB进行机器学习模型优化的综合指南
- 使用Amazon SageMaker Canvas UI和AutoML API,将时间序列预测速度提升高达50%
- 构建一条端到端的边缘视觉质量检验的MLOps流水线 – 第一部分
这些得分的手动比较显示FinBERT ML算法更准确。
我还通过融入以下SOLID原则进行了重大代码重构。
- 单一职责原则:市场新闻准备逻辑已合并到API类中
- 开闭原则:两者Vader和FinBERT特定逻辑存在于SentimentAnalysisBase的子类中
希望本文对您有所帮助。您可以在GitHub存储库中找到代码。
祝您编码愉快!