基于LSTM的研报分类系统
關(guān)于lstm的文本分類可以參考:https://blog.csdn.net/lilong117194/article/details/82217271
下面是基于東方財富中宏觀研究的研報分類系統(tǒng)介紹:
東方財富宏觀研究網(wǎng)址:http://data.eastmoney.com/report/hgyj.html
一、該系統(tǒng)是由以下幾步組成:
(1)爬蟲
(2)文本處理
(3)word2vec詞向量訓練
(4)Lstm模型訓練
(5)基于模型的新文本預(yù)測
二、運行該系統(tǒng)需要安裝的包
(1)爬蟲中需要安裝:selenium和PhantomJS,本人的安裝環(huán)境是mac下的anaconda,安裝過程可以參考:https://blog.csdn.net/lilong117194/article/details/83277075
(2)word2vec的訓練過程,需要安裝的包有jieba,這個包的安裝很簡單。
(3)lstm的訓練過程,需要安裝tensorflow和keras,mac下的安裝也很簡單
三、各個.py文件的說明
(1)reptile.py:爬蟲文件
下面是各個函數(shù)的說明
- get_page_url(self,url,num):模擬鼠標點擊網(wǎng)頁,獲取指定頁的網(wǎng)址。
參數(shù)url:網(wǎng)頁地址,num:指定的網(wǎng)頁數(shù),也即是第幾頁,如下所示
- download_report(self,text_link,re_sum_info):下載指定網(wǎng)頁的研報文本。
- get_report_page(self,page_start,page_end):以起始和終止頁面數(shù)為爬取標準
- get_report_date(self,start_date,end_date):以起始和終止時期為爬取標準
(2)del_Ds_store.py:輔助文件,該文件的作用是刪除mac系統(tǒng)下自動生成的.Ds_store文件,不去除的話會影響文本處理(windows下不會生成該文件)。
(3)filename_mod.py:輔助文件,該文件的作用是給新增的人工打標簽重新命名,然后加入打過標簽的文本庫。
(4)interface.py:接口文件,即其他文件會調(diào)用該文件的函數(shù)
- __init__(self):大部分的參數(shù)調(diào)整都在這里
- 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):創(chuàng)建詞語字典,并返回每個詞語的索引,詞向量,以及每個句子所對應(yīng)的詞語索引
- test(self):該文件僅做測試用
(6)lstm.py:lstm模型的訓練 - splice_data(self,path):該函數(shù)初步處理訓練數(shù)據(jù)
- load_train_file(self):拼接訓練文件和文件的標簽
- parse_dataset(self,combined):得到每篇文本在詞典中的索引列表
- train_data_struc(self,combined):lstm模型訓練數(shù)據(jù)的結(jié)構(gòu)化
- get_train_data(self,word_index,word_vectors,struc_w2index,y):
index_dict:所有的詞索引列表(詞:索引), word_vectors:所有詞的詞向量, combined:所有文本的索引值。該函數(shù)得到的結(jié)果才是用于lstm網(wǎng)絡(luò)結(jié)構(gòu)的結(jié)構(gòu)化數(shù)據(jù) - train_lstm:網(wǎng)絡(luò)訓練函數(shù),網(wǎng)絡(luò)的參數(shù)也是在這里調(diào)試。
(7)main_test.py:這里是總的調(diào)用,爬蟲、詞向量訓練、lstm模型訓練、新文本預(yù)測都是在這個文件里。
(8)terminal.py:該文件主要是預(yù)測新文本分類,也是最簡單的接口調(diào)用。
四、各個文件夾的說明
spider_report:該文件夾下是爬取的6000個研報文本,主要用于詞向量的訓練。
word2vec_model:是word2vec訓練保存的數(shù)據(jù)和模型
train_data:用于進行l(wèi)stm訓練的打過標簽的文本
lstm_model:是lstm訓練保存的數(shù)據(jù)和模型
test_report:爬取的用于預(yù)測的文本
測試代碼:輔助處理文本的一些代碼。
由于這里的訓練文本,是需要人工打標簽的,所以只給出了少部分用作訓練,準確率會有一定的限制。
github地址:https://github.com/TATlong/Research-report-Classification-system
總結(jié)
以上是生活随笔為你收集整理的基于LSTM的研报分类系统的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 房间门的尺寸(卧室门尺寸一般是多少)
- 下一篇: 六角龙鱼(说一说六角龙鱼的简介)