一種金融文本情感分析方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及自然語(yǔ)言處理,人工智能領(lǐng)域,具體涉及一種金融文本情感分析方法。
【背景技術(shù)】
[0002]隨著互聯(lián)網(wǎng)的普及,人們的生活也發(fā)生了很大的變化。網(wǎng)絡(luò)逐漸成為社會(huì)中各種信息的載體,特別是隨著中國(guó)經(jīng)濟(jì)的不斷發(fā)展,股票、國(guó)債等金融產(chǎn)品逐漸成為人們討論的熱點(diǎn)話題,越來(lái)越多的人通過(guò)網(wǎng)絡(luò)獲取金融、財(cái)經(jīng)、其它經(jīng)濟(jì)新聞及相關(guān)信息。Web文本也已成為我們獲取信息、發(fā)表觀點(diǎn)和交流情感的重要來(lái)源。越來(lái)越多的人喜歡在網(wǎng)上交流他們的意見(jiàn),因而網(wǎng)絡(luò)上存在大量包含傾向性的文本信息。
[0003]—般的情感分析是采用監(jiān)督的方式對(duì)文本中的情感進(jìn)行識(shí)別,提取文本中的情感詞進(jìn)行極性判斷,找出文本中對(duì)應(yīng)的情感詞特征向量。通過(guò)對(duì)這些已知樣本的訓(xùn)練,建立分類(lèi)模型,對(duì)新的文本信息進(jìn)行情感傾向判斷。監(jiān)督模型多采用K最鄰近結(jié)點(diǎn)算法(KNN)、樸素貝葉斯和支持向量機(jī)(SVM)、最大熵的情感分類(lèi)模型,其中涉及到情感詞的提取和極性判斷,這種方法與情感詞詞典的構(gòu)建有很大關(guān)系,需要完備的情感詞詞典。所建立的分類(lèi)模型和具體領(lǐng)域有很大關(guān)系,對(duì)某一個(gè)領(lǐng)域構(gòu)建的模型通常對(duì)另外一個(gè)領(lǐng)域不太適用,而且情感詞詞典的構(gòu)建費(fèi)時(shí)費(fèi)力。新聞消息中存在一定的噪音,對(duì)訓(xùn)練樣本的質(zhì)量有影響,使得訓(xùn)練出來(lái)的模型容易受到噪音影響,并最終影響分類(lèi)的準(zhǔn)確度和召回率。非監(jiān)督模型的研究不是很多,主要有:用HowNet對(duì)中文詞語(yǔ)語(yǔ)義進(jìn)行情感傾向計(jì)算,用句法結(jié)構(gòu)和依存關(guān)系對(duì)中文句子語(yǔ)義進(jìn)行情感分析等等。
【發(fā)明內(nèi)容】
[0004]大多數(shù)網(wǎng)絡(luò)信息往往只是將相關(guān)新聞報(bào)道或信息展現(xiàn)給用戶(hù),通過(guò)人工的方式識(shí)別海量新聞?dòng)绊戁厔?shì)是一件非常繁瑣和困難的事情,因此本發(fā)明用情感挖掘技術(shù),基于監(jiān)督技術(shù),結(jié)合非監(jiān)督技術(shù)對(duì)文本進(jìn)行一定的智能理解,分析人們對(duì)指定文本中描述事件的金融情感傾向。
[0005]本文提供了一種金融情感分析方法,用于判斷金融消息或新聞文本情感傾向,幫助用戶(hù)更好的掌握相關(guān)個(gè)股或者公司的動(dòng)向。計(jì)算金融新聞的情感值來(lái)判斷對(duì)相關(guān)公司的影響好壞,為用戶(hù)提供快速的情感導(dǎo)向分析工具。在一篇文本的情感分析中,若得到的情感值大于1+ ε,則表示該新聞產(chǎn)生的是積極正面的影響;若情感值小于1- ε,則表示該新聞產(chǎn)生的是消極負(fù)面的影響;若情感值大于等于1- ε并且小于等于1+ ε,則表示該新聞產(chǎn)生的是中性的情感。ε為事先確定的小于I的正數(shù),如0.01,0.02,0.05等等。
[0006]上述發(fā)明包括如下步驟:
[0007]步驟1:構(gòu)建金融情感詞典。包括構(gòu)建包含正面情感傾向詞語(yǔ)的正面情感詞典和包含負(fù)面詞語(yǔ)的負(fù)面情感傾向情感詞典,構(gòu)建詞義情感需根據(jù)語(yǔ)言環(huán)境判定的不確定情感詞典,構(gòu)建修飾程度詞語(yǔ)的程度詞典,構(gòu)建用于確定否定詞語(yǔ)的否定詞典,構(gòu)建表示唯一的單獨(dú)概念詞典,構(gòu)建轉(zhuǎn)折詞詞典,構(gòu)建規(guī)范詞詞典等。程度詞格式如下(部分詞項(xiàng)):
[0008]詞項(xiàng),程度值
[0009]偉大,1.5
[0010]最好,1.5
[0011]非常,1.4
[0012]上等,1.3
[0013]好,1.2
[0014]較好,1.1
[0015]略微,0.95
[0016]比較,0.9
[0017]過(guò)頭,0.8
[0018]過(guò)分,0.7
[0019]慘,0.6
[0020]太過(guò)分,0.5
[0021]詞項(xiàng)從上到下依褒義向貶義排列,最大程度向最低程度排列。如果程度詞修飾正面情感詞,則修飾后的情感值為程度值X情感詞情感值,程度值大于1.0的程度詞修飾正面情感詞可擴(kuò)大正面情感,程度值小于1.0的程度詞修飾正面情感詞可縮小正面情感。如果程度詞修飾負(fù)面情感詞,則大部分修飾后的情感值為情感詞情感值+大于1.0的程度值或者情感詞情感值X小于1.0的程度值。程度值的值域[0.5,1.5],對(duì)應(yīng)情感值的值域[0.5,1.5]。
[0022]步驟2:文本預(yù)處理。用文本分析工具對(duì)每一個(gè)待處理的文本進(jìn)行分句,并對(duì)每個(gè)句子進(jìn)行分詞處理,得到分詞后的包含詞語(yǔ)文本、詞性和情感值的分詞序列向量。
[0023]步驟3:用詞語(yǔ)情感的乘法和句子情感的加法組成的乘法情感模型計(jì)算整篇文本的情感值,具體過(guò)程如下:
[0024]步驟301:用構(gòu)建好的金融情感詞典確定詞語(yǔ)的情感值。每類(lèi)詞語(yǔ)一個(gè)詞典,讀出詞典文件后將各個(gè)詞項(xiàng)放入各詞典的bloom過(guò)濾器中,加快訪問(wèn)速度。
[0025]步驟302:設(shè)定當(dāng)前詞的情感值。查詢(xún)當(dāng)前詞屬于哪一個(gè)情感詞典,如果當(dāng)前詞只屬于正面情感詞典,則置當(dāng)前詞的情感值為Vp,大于1,一般置為1.5。只屬于負(fù)面情感詞典,則置當(dāng)前詞的情感值為Vn,小于1,一般置為0.5。只屬于不確定情感詞典,則置當(dāng)前詞的情感值為Vu,小于1,大于0.9,一般置為0.95。如果不確定情感詞表示的負(fù)面情感較多可設(shè)為0.9,正面較多可設(shè)為I。
[0026]步驟303:句子情感值的計(jì)算需要修正否定詞、程度副詞、單獨(dú)概念詞、轉(zhuǎn)折詞以及規(guī)范詞的影響。為此對(duì)句子的分詞序列進(jìn)行掃描,將句子的開(kāi)始詞語(yǔ)到當(dāng)前詞語(yǔ)放入一個(gè)列表,則句子的具體修正過(guò)程為:
[0027]第一步:修正有否定詞修飾的情感詞的情感值。
[0028]a.計(jì)算掃描集中的否定詞集。
[0029]b.如果否定詞個(gè)數(shù)大于N_ ( 一般為I)并且小于N_ ( 一般為10),并且前兩個(gè)否定詞位置差大于Ndlff (—般為I),并且第一個(gè)否定詞位置小于Nfret (可調(diào),一般為6)。則當(dāng)前詞語(yǔ)的情感值受否定詞影響,應(yīng)將當(dāng)前詞語(yǔ)的情感值反轉(zhuǎn),即修正情感值等于原情感值的倒數(shù)。
[0030]c.如果否定詞個(gè)數(shù)等于1,并且否定詞位置小于Nfret(可調(diào),一般為6),與當(dāng)前詞之間沒(méi)有表唯一的詞語(yǔ)。則當(dāng)前詞語(yǔ)的情感值受否定詞影響,應(yīng)將當(dāng)前詞語(yǔ)的情感值反轉(zhuǎn)。
[0031]d.如果否定詞個(gè)數(shù)等于1,并且否定詞位置小于Nfret(可調(diào),一般為6),與當(dāng)前詞之間有表唯一的詞語(yǔ)。那么,如果不包含“沒(méi)有”開(kāi)頭的否定詞,并且已計(jì)算的情感值大于1,則修正情感值=aX已計(jì)算的情感值,a>l.0,可調(diào),可取1.2 ;如果已計(jì)算的情感值小于1,則修正情感值=bX已計(jì)算的情感值,b〈l.0,可調(diào),可取0.8 ;如果包含“沒(méi)有”開(kāi)頭的否定詞,則情感值反轉(zhuǎn)。如下句所示:公司不是只有一個(gè)盈利(虧損)項(xiàng)目。否定詞為“不是”,表唯一概念的詞語(yǔ)是“只有一個(gè)”,否定了 “只有一個(gè)”,通常理解為有多個(gè),應(yīng)該放大正面情感值或縮小負(fù)面情感值,而不是反轉(zhuǎn)情感值。
[0032]第二步:修正有程度詞修飾的情感詞的情感值。
[0033]a.當(dāng)前程度詞之前是負(fù)面情感詞。如果程度詞程度值大于1,則修改當(dāng)前程度詞情感值為程度值的倒數(shù),否則修改為程度值+0.05。
[0034]b.當(dāng)前程度詞之前是正面情感詞。如果不是a的情況(正面情感詞當(dāng)前程度詞之間可能有負(fù)面情感詞),則修改當(dāng)前程度詞情感值為程度值,否則為I。
[0035]c.當(dāng)前詞之前至少有一個(gè)程度詞。最近的程度詞不是否定詞,距離當(dāng)前詞小于等于2。最近程度詞不是情感詞或者是不確定情感詞并且前一次掃描不是a或b的情況,則存在下列情況:
[0036]如果最近程度詞程度值大于I并且當(dāng)前詞情感值大于1,修正當(dāng)前詞情感值=程度值X已計(jì)算當(dāng)前詞情感值。
[0037]如果最近程度詞程度值大于I并且當(dāng)前詞情感值小于1,修正當(dāng)前詞情感值=已計(jì)算當(dāng)前詞情感值+程度值。<