基於LSTM的研報分類系統

關於lstm的文本分類可以參考:https://blog.csdn.net/lilong117194/article/details/82217271

下面是基於東方財富中宏觀研究的研報分類系統介紹:

東方財富宏觀研究網址:http://data.eastmoney.com/report/hgyj.html

一、該系統是由以下幾步組成:

(1)爬蟲
(2)文本處理
(3)word2vec詞向量訓練
(4)Lstm模型訓練
(5)基於模型的新文本預測

二、運行該系統需要安裝的包

(1)爬蟲中需要安裝:selenium和PhantomJS,本人的安裝環境是mac下的anaconda,安裝過程可以參考:https://blog.csdn.net/lilong117194/article/details/83277075
(2)word2vec的訓練過程,需要安裝的包有jieba,這個包的安裝很簡單。
(3)lstm的訓練過程,需要安裝tensorflow和keras,mac下的安裝也很簡單

三、各個.py文件的說明

(1)reptile.py:爬蟲文件
下面是各個函數的說明

  • get_page_url(self,url,num):模擬鼠標點擊網頁,獲取指定頁的網址。
    參數url:網頁地址,num:指定的網頁數,也即是第幾頁,如下所示
    在這裏插入圖片描述
  • download_report(self,text_link,re_sum_info):下載指定網頁的研報文本。
  • get_report_page(self,page_start,page_end):以起始和終止頁面數爲爬取標準
  • get_report_date(self,start_date,end_date):以起始和終止時期爲爬取標準

(2)del_Ds_store.py:輔助文件,該文件的作用是刪除mac系統下自動生成的.Ds_store文件,不去除的話會影響文本處理(windows下不會生成該文件)。
(3)filename_mod.py:輔助文件,該文件的作用是給新增的人工打標籤重新命名,然後加入打過標籤的文本庫。
(4)interface.py:接口文件,即其他文件會調用該文件的函數

  • __init__(self):大部分的參數調整都在這裏
  • tokenizer(self,text):對文本分詞並去掉空格
  • load_w2v_file(self,w2v_file_path):加載訓練文件
  • text_proce(self,text_raw):# 對文本進行處理
  • file_test_vec(self,w2indx,file_reshape):測試文本的向量化

(5)word2vec.py:詞向量訓練文件

  • word2vec_train(self,combined):詞向量訓練
  • create_dictionaries(self,model=None,combined=None):創建詞語字典,並返回每個詞語的索引,詞向量,以及每個句子所對應的詞語索引
  • test(self):該文件僅做測試用
    (6)lstm.py:lstm模型的訓練
  • splice_data(self,path):該函數初步處理訓練數據
  • load_train_file(self):拼接訓練文件和文件的標籤
  • parse_dataset(self,combined):得到每篇文本在詞典中的索引列表
  • train_data_struc(self,combined):lstm模型訓練數據的結構化
  • get_train_data(self,word_index,word_vectors,struc_w2index,y):
    index_dict:所有的詞索引列表(詞:索引), word_vectors:所有詞的詞向量, combined:所有文本的索引值。該函數得到的結果纔是用於lstm網絡結構的結構化數據
  • train_lstm:網絡訓練函數,網絡的參數也是在這裏調試。

(7)main_test.py:這裏是總的調用,爬蟲、詞向量訓練、lstm模型訓練、新文本預測都是在這個文件裏。

(8)terminal.py:該文件主要是預測新文本分類,也是最簡單的接口調用。

四、各個文件夾的說明

spider_report:該文件夾下是爬取的6000個研報文本,主要用於詞向量的訓練。
word2vec_model:是word2vec訓練保存的數據和模型
train_data:用於進行lstm訓練的打過標籤的文本
lstm_model:是lstm訓練保存的數據和模型
test_report:爬取的用於預測的文本
測試代碼:輔助處理文本的一些代碼。

由於這裏的訓練文本,是需要人工打標籤的,所以只給出了少部分用作訓練,準確率會有一定的限制。

github地址:https://github.com/TATlong/Research-report-Classification-system

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章