用Python搭建股票舆情分析系统
写在前面
下面的这篇文章将手把手教大家搭建一个简单的股票舆情分析系统,其中将先通过金融界网站爬取指定股票在一段时间的新闻,然后通过百度情感分析接口,用于评估指定股票的正面和反面新闻的占比,以此确定该股票是处于利好还是利空的状态。
环境准备
本地环境:
库版本:
其中用到了百度的ai接口,通过pip安装的方式如下:
然后,导入需要用到的所有库:
代码实现
1、获取新闻数据
首先,我们需要通过金融界(http://stock.jrj.com.cn/share)的网站爬取股票的新闻信息。获取指定股票的新闻资讯的接口形式是:
如600381股票的新闻资讯如下图所示:
需要注意的是,当获取后面几页的新闻时,其接口需要加一个后缀,形式如下:
首先,我们定义一个函数,传入一个股票代码的列表,表示用于下载到本地的股票新闻的代码。然后将每个股票的代码拼接到api中,然后调用parse_pages()函数用于爬取该api下网页中的数据。
接下来,我们实现上面的parse_pages()函数。其中需要先获取每一页新闻数据的总的页数,然后针对每一页拼接对应的api接口,最后再对每一页的新闻数据进行下载。
获取最大页数的函数如下,其中用到了lxml下的etree模块来解析html代码,然后通过正则表达式获取最大页数。
接下来实现download_page()函数,它的作用通过正则表达式匹配页面中的新闻标题,并将获取的标题数据保存到本地文件中。
接下来,通过调用上面的download_news()函数,并传入需要爬取新闻的股票代码列表,就可以将新闻数据爬取到本地了。
得到的新闻数据形式如下图所示:
2、新闻情绪分析以及统计
在获取了股票的新闻数据之后,我们接下来需要对每支股票的所有新闻进行情感分析了。其中用到了百度人工智能接口aip下的aipNLP用于对所有新闻数据进行自然语言处理,并进行情感分析。需要注意的是,在通过百度人工智能接口进行情感分析之前需要先注册并获取APP_ID、API_KEY以及SECRET_KEY。获取的方式如下:
首先,登录并注册百度人工智能平台(https://ai.baidu.com/):
然后,在自己的控制台中找到自然语言处理,并创建应用,如下图所示:
创建完成之后就可以得到自己的APP_ID、API_KEY以及SECRET_KEY,如下图所示:
接下来通过一个函数来实现对指定的股票进行情感分析并保存到本地:
其中的analyze()函数实现如下,其中需要将前面申请的APP_ID、API_KEY以及SECRET_KEY进行定义。之后读取包含每个股票的所有新闻的文件,其中每一行表示一个新闻标题。然后通过aipNLP对每个标题进行情感分析,进而基于得到的分析结果来统计积极新闻和消极新闻的个数,最后将针对每支股票的分析结果返回:
调用下面的代码进行分析,并生成统计结果:
3、数据可视化
最后我们将得到的结果进行可视化,可以直观地看到每支股票的消极新闻和积极新闻所占的比例。
效果图如下所示:
总结
在这篇文章中,我们介绍了如何基于python搭建一个简单的股票舆情分析系统,其中将先通过金融界网站爬取指定股票在一段时间的新闻,然后通过百度情感分析接口对新闻进行情感分析,最后统计股票的正面和反面新闻的占比,以此确定该股票是处于利好还是利空的状态。基于此系统,大家可以进行进一步的进行扩展以应用。
总结
以上是生活随笔为你收集整理的用Python搭建股票舆情分析系统的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: Android证书签名生成
- 下一篇: 金蝶k3 使用两台服务器的优势,金蝶k3