用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证书签名生成
- 下一篇: 戴尔部分笔记本存GPU故障