靈感範文站

位置:首頁 > 論文 > 理工論文

基於深度神經網絡的標題分類研究

《人工智能原理》課程技術報告

基於深度神經網絡的標題分類研究
基於深度神經網絡的標題分類研究

——基於深度神經網絡的標題分類研究

班級:XX

學號:XX

姓名:XX

2020年10月25號

基於深度神經網絡的標題分類研究

XX

摘要:新聞是人們對時事、最新行業相關消息瞭解的重要途徑,本文將新聞標題作爲新聞分類的切入點,由於新聞標題屬於文本中的短文本類別,所以本文主要通過利用深度學習相關方法對新聞標題短文本進行分類,針對前期分類出現過的問題,結合深度學習網絡並引入的SVM 模型,解決新聞分類以及短文本分類過程中的常見困難問題。

關鍵詞:深度學習;SVM;標題分類

1 引言

隨着大數據時代的來臨,我們日常的信息規模呈現出爆炸式增長的趨勢。數據挖掘和人工智能逐漸成爲時代的主題。縮小信息規模的方法有很多種,而分類就是其中一種極其有效的方式,所以它當前仍是吸引國內外學者研究的重點問題和熱點問題。文本分類是在自然語言處理領域廣泛研究的問題,在工業領域內,現在已經有着較爲成熟的應用,無論是樸素貝葉斯還是決策樹又或是最大熵以及神經網絡都在工業領域有着相關應用。而文本分類技術在新聞分類領域的應用仍然有限,當前的文本分類系統大多基於統計學原理再結合相關機器學習方法訓練相關數據集,從而得到所需的分類器並使用其達成對無標籤數據進行分類的目的。在2017 年自然語言處理及中文計算會(NLPCC)也曾對新聞分類相關問題設立相關課題,這也間接表現出了其可能爲文本分類領域的發展研究做出較大的貢獻。

由於中文新聞文本分類起步較晚,再加以複雜精深的漢語語法的影響,使得之前關於中文新聞文本分類的研究相比於英文顯得稍微落後,但現在伴隨各種中文新聞語料庫的出現和完善,中文新聞文本分類漸漸走上正軌。以往對新聞進行分類時通常是解析新聞的正文,由於部分新聞的篇幅較長,往往導致了新聞分類時的效率低下。而通過中文新聞標題對中文新聞文本進行分類,相比與傳統的新聞分類來說在分類效率上可以得到很大的優化。除此之外,新聞標題往往是對新聞主題的高度概括,以有限的字數對全文內容進行凝鍊,所以這屬於一個短文本分類領域的相關問題。通過對中文新聞標題分類的研究,對短文本分類領域的部分問題有着借鑑意義。

2 算法原理與系統設計

2.1 算法原理

支持向量機(Support Vector Machine ,SVM)的主要思想是:建立一個最優決策超平面,使得該平面兩側距離該平面最近的兩類樣本之間的距離最大化,從而對分類問題提供良好的泛化能力。對於一個多維的樣本集,系統隨機產生一個超平面並不斷移動,對樣本進行分類,直到訓練樣本中屬於不同類別的樣本點正好位於該超平面的兩側,滿足該條件的超平面可能有很多個,SVM正式在保證分類精度的同時,尋找到這樣一個超平面,使得超平面兩側的空白區域最大化,從而實現對線性可分樣本的最優分類。支持向量機中的支持向量(Support Vector)是指訓練樣本集中的某些訓練點,這些點最靠近分類決策面,是最難分類的數據點。SVM中最優分類標準就是這些點距離分類超平面的距離達到最大值;“機”(Machine)是機器學習領域對一些算法的統稱,常把算法看做一個機器,或者學習函數。SVM是一種有監督的學習方法,主要針對小樣本數據進行學習、分類和預測,類似的根據樣本進行學習的方法還有決策樹歸納算法等。

2.2 詳細設計

簡單的Python機器學習實現新聞標題自動分類,爬蟲獲取的新浪新聞的分類,先對新聞進行分詞,手動分類一些分詞後的標題,然後以它爲輸入做SVM模型訓練,然後用訓練好的SVM模型對其他標題做預測。

3 系統實現

#news_

import xlrd

import xlwt

import jieba

import numpy as np

from ure_ import CountVectorizer

from ure_ import TfidfTransformer

from import SVC

def read_data(file, sheet_index=0):

"""讀取文件內容"""

workbook = _workbook(file)

sheet = t_by_index(sheet_index)

data = []

for i in range(0, s):

nd([x for x in _values(i) if p()])

return data

def get_classified_sample():

"""返回手動分類的新聞"""

data = read_data('')

return {

'經濟': data[1] + data[14] + data[20],

'社會': data[2] + data[3] + data[4] + data[9] + data[17] + data[18],

'政法': data[5] + data[6] + data[7] + data[8] + data[11] + data[13] + data[15] + data[16] + data[19],

'軍事': data[10],

'娛樂': data[12],

}

def classify():

"""進行分類"""

# 一共分成5類,並且類別的標識定爲0,1,2,3,4

category_ids = range(0, 5)

category = {}

category[0] = '經濟'

category[1] = '社會'

category[2] = '政法'

category[3] = '軍事'

category[4] = '娛樂'

corpus = []# 語料庫

classified_sample = get_classified_sample()

for k, v in classified_s():

line = ' '(classified_sample[k])

nd(line)

data = read_data('')

# 把未分類的文章追加到語料庫末尾行

# 21開始是因爲我手動分類了前20條

for lst in data[21:]:

line = ' '(lst)

nd(line)

# 計算tf-idf

vectorizer = CountVectorizer()

csr_mat = _transform(corpus)

transformer = TfidfTransformer()

tfidf = _transform(csr_mat)

y = y(category_ids)

# 用前5行已標分類的數據做模型訓練

model = SVC()

(tfidf[0:5], y)

# 對5行以後未標註分類的數據做分類預測

predicted = ict(tfidf[5:])

# 結果

# print(len(predicted))

for i in range(len(predicted) - 1):

print(corpus[i + 5], '============》', category[predicted[i]])

if __name__ == '__main__':

classify()

4 實驗或測試結果

程序運行後出現如下界面(一部分):

中巴經濟走廊“圍堵”印度?新華社: 印度想太多了============》娛樂

央行報告:上海已經基本確立國內金融中心地位============》社會

國網北京電力: 北京地區煤改電今年累計破100 萬戶============》娛樂

湖南沅江原市長肖勝利犯三罪判5 年: 爲升遷送13 萬============》娛樂

顏寧爲何從清華跳槽去普林斯頓?她終於說出原因============》娛樂

國家文物局公佈346 萬件全國館藏文物信息供監督============》娛樂

裏皮首次對續約中國男足表態:我說了我願意( 圖) ============》經濟

5 結論

本項目實現的是以標題分類爲核心的Python程序的一個簡單嘗試,本項目採用爬蟲獲取的新浪新聞的分類,利用機器學習,深度學習的方法完成了標題分類任務,但模型還有待改進。

參考文獻

[1]楊崧. 基於LSTM-Attention的中文新聞標題分類研究[D].中南財經政法大學,2019.

[1]王渤茹,範菁,張王策,李晨光,倪旻.基於深度神經決策森林的新聞標題分類[J].雲南民族大學學報(自然科學版),2020,29(05):472-479.

[1]王慧亮.簡析新聞標題分類[J].傳播與版權,2014(07):31.

標籤:神經網絡 標題