陳可嘉,陳榮暉
(福州大學經濟與管理學院,福州 350116)
根據中國結算數據顯示,截至2019年9月30日,滬深兩市投資者總數達1.57×108,其中個人投資者達到1.56×108。與此同時,投資者在線論壇不斷涌現并受到廣大投資者歡迎,這些在線評論包含的投資者情緒被學術界認定是造成股票市場系統性偏差的重要成因之一[1-2]。許多投資者喜歡在進行股市投資時查看在線論壇的評論,分析后再進行投資。但伴隨互聯網快速發展,信息體量快速增長,投資者無法輕易從中獲取重要信息,故借助計算機手段來科學測度其中的投資者情緒受到越來越多的投資者關注。基于情感詞典的方法是文本情緒的常用分析方法[3],所使用的情感詞典是否全面且精確將對投資者情緒測度結果產生重大影響,進而影響投資者收益[4]。
當前關于投資者情緒測度的研究多是基于現有的通用情感詞典而開展[5-6]。其中,知網情感詞典(HowNet)、中國臺灣大學情感詞典(NTUSD)和清華大學情感詞典(THUSD)被較高頻率采用。HowNet包含漢語和英語褒貶的評價詞、情感詞,并構建了詞語之間大型關系網絡;NTUSD來源于中國臺灣大學自然語言處理實驗室的中文情感極性詞典,包含2 810個褒義詞和8 276個貶義詞;THUSD多是通過對線上文本進行多輪人工篩選后而產生。這些通用情感詞典主要是通過閱讀大量文本或現有詞典,人工篩選出具有較強情感傾向的詞語,再對其標注情感極性或情感強度,進而構成詞典,此類方法耗費大量的人力物力,自動化程度低,與待分析文本聯系不夠緊密[7]。針對人工構建效率較低,也有較多學者提出改進。Bracewell[8]使用種子詞和現有詞典創建初始情感詞典并通過半自動方式實現情感詞典構建;楊超等[9]通過對HowNet和NTUSD進行擴展,并標注其情感傾向;周詠梅等[10]在詞典庫情感種子詞基礎上采用圖排序模型的方法來構建情感詞典。這些研究在一定程度上提高了詞典構建效率,但是所構建的詞典仍然是通用型,缺乏行業特異性[11]。Rao等[12]針對新聞領域情感分析則采用具有3種修剪策略的算法來自動構建單詞級情感詞典;嚴仲培等[13]提出了面向旅游在線評論的情感詞典構建方法。這些詞典與應用領域聯系較為密切,擁有較好的行業特異性,但是在已有研究中關于針對股市的仍然較少。孟雪井等[14]通過綜合Hounet、NTUSD和THUSD三大詞典并結合智能算法得到股票市場投資者關鍵詞庫,并應用于投資者情緒指數構建,該研究方法覆蓋三大詞典庫工作量較大,且未對情感極性進行深入分析,會限制情感詞典的使用。目前針對情感詞典情感強度的研究,主要通過計算詞語“空間”距離得出。Colace等[15]從文本中抽取詞語構成融合圖,再針對性地對詞語進行情感傾向計算;Mukkamala等[16]則是構建了一個四元模糊集,通過計算各模糊集之間關系得出情感強弱。這些研究在情感強度計量方面取得一定突破,但是存在缺乏對情感強度的調整的問題,具有一定改進空間。
情感詞典構建作為文本情緒分析的基礎性研究,現有研究仍然存在效率較低、情感判斷不夠精細、針對特定領域缺乏行業特異性等問題。為此,提出針對股市的情感詞典自動構建與優化方法,提高情感詞典構建效率,并優化提升詞典精確度:一是在構建股市基本情感詞典基礎上,選用Word2vec無監督添加高頻情感詞語并判斷極性與賦值,降低人工添詞工作量;二是將情感詞典構建問題轉化為優化問題,選用自行改進的模擬退火算法對股市情感詞典情感優化,不斷提升情感詞典性能。
提出的股市情感詞典自動構建與優化方法主要包括三個階段:第一階段為基本情感詞典構建;第二階段為高頻情感詞語添加;第三階段為情感分值優化。整個股市情感詞典構建與優化流程如圖1所示。

圖1 股市情感詞典構建與優化
在股市投資者情緒分析中,通過文本挖掘技術對指定文本的語義開展分析,不僅需要識別投資者的情感悲喜、判斷投資者觀點是同意或反對,更主要的目的在于了解投資者對于股市“上漲”或者“下跌”的預期以及其接下來的投資意愿,故股市情感詞典構建需要考慮股市特點。在基本情感詞典構建中,就需要考慮相關因素。基本情感詞典構建主要由基本情感詞語挑選和程度副詞與否定副詞挑選兩個部分構成。
1.1.1 基本情感詞語挑選
在股市文本情緒分析中,情感詞語為“多”或“空”對情感分析具有至關重要作用,在基本情感詞語挑選中,就需要做到做好相關詞語篩選工作。股市情感不僅受到常規情感詞語影響,投資者還容易受到一些股市專業詞語影響,例如“拋售”、“拉高”等詞語。除此之外,股市影響因素眾多,一些詞語在一定情境下,其情感極性也會發生變化。例如爆發負面信息后,“長生生物”、“樂視”在股市中均表達負面情感。先構建基本情感詞典,并在此基礎上進行擴充。其中基本多空情感詞語主要通過詞頻統計分析與人工篩選相結合的方法來完成,通過對大量文本進行詞頻統計,可從中挑選出股民經常使用的詞匯,結合人工篩選,就可以得出股市中常用的基本詞語。
1.1.2 程度副詞和否定詞挑選
參考梁亞偉[17]的情感分析模型,以情感詞語為中心,抽取其中的程度副詞和否定詞,以子句為單位,逐一計算情感傾向值,進行加權平均,進而得出文本的情緒指數。故情感副詞和否定詞在情感分析中起到關鍵作用,否定副詞將左右文本真實情感方向,而程度副詞則是情感程度強弱的重要載體。例如“我堅定認為股市會上漲”相比“我認為股市不會下跌”,兩句雖然都在表達看多股市,但是其情感強弱具有差異,在對股市投資者情緒計量時需要做到差異化對待。
1.2.1 Word2vec介紹
投資者在網絡論壇發表的評論數量繁多,但內容相對簡潔、直接,主要表達其對于股市投資的觀點和看法,且股市用語較少存在一詞多義等情況,故在構建詞空間向量時主要考慮構建效率。Word2vec是在2013年由Mikolov等[18]構建的一種神經概率語言模型,它減少了計算復雜度,在詞向量計算上具有明顯的優勢。Word2vec詞向量構建多是基于詞語的上下文內容得出,在分析上下文語義信息這一基礎上,進而得出兩個詞語的相似度。其已在評論情感[19]、關鍵詞抽取[20]、情感詞典構建[21]等領域已成功應用。Word2vec包含兩種訓練模型,分別是CBOW和Skip_gram。
CBOW模型是通過給定上下文內容用以預測給定詞,其數學表示如式(1)所示:
P[(Wt|τ(Wt-k,Wt-k+1,…,Wt,…,Wt+k-1,Wt+k)]
(1)
式(1)中:Wt為該語料詞典中的詞語,即通過和Wt相鄰上下文窗口大小為k的詞來預測詞Wt出現的概率;τ運算符表示將上下文窗口相鄰的詞匯的詞向量作相加運算。
Skip_gram則是通過當前詞預測其上下文內容,即通過詞匯Wt去預測相鄰窗口k內詞匯的概率。其數學表示如式(2)所示:
P(Wt-k,Wt-k+1,…,Wt,…,Wt+k-1,Wt+k|Wt|)
(2)
實際應用中,Skip_gram的語義準確率高于CBOW,故選用Skip_gram模型用于詞語向量空間構建。
1.2.2 高頻備選情感詞語
從大量文本中挑選詞語將其添加到情感詞典中去,需要先對文本進行分詞處理。使用Jieba工具對文本進行分詞處理,去除停用詞后,并以交易日為單位統計每日高頻詞語,挑選詞頻最高的若干個詞語作為情感詞語備選詞。如每日備選詞已在情感詞典中去,則不再添加;如為新詞,將其添加到詞典中等待詞性判斷與賦值。
1.2.3 高頻情感詞語極性判斷與賦值
選用Word2vec工具來判斷新添加高頻情感詞語情感極性并對其賦予情感分值。通過Python的Gensim工具訓練Word2vec模型,得出單一詞語在文本中的空間向量,A、B、Ai、Bi為各維度的數值,通過式(3)空間距離計算方法可得出詞語的關聯關系SAB。
(3)
在關聯度計算的種子詞的選擇方面,通過對東方財富“股吧”詞頻統計并結合人工篩選,選擇了5個看多詞語與5個看空詞語,將其作為與備選詞關聯度計算的種子詞。所選看多詞語為“上漲”“利好”“看多”“紅”“買入”;看空詞語為“下跌”“利空”“看空”“綠”“賣出”。上述詞語考慮了股市的走勢特點、股民操作行為等多因素,符合股市特點。
高頻詞語備選詞依次與種子詞計算關聯度,并根據其與看多種子詞的關聯度spos和看空種子詞的關聯度sneg強弱判斷其情感極性。強弱關系sw則以其累加關聯度為依據,計算方法如式(4)所示:
(4)
式(4)中:N為整數,當該詞語與看多種子詞關聯度之和更大時,其取值為正數,反之為負數。
1.3.1 股市情感詞語分值優化模型
杜偉夫等[22]的研究將文本挖掘問題轉化為優化問題,并利用模擬退火算法求解。參考其研究思想將每個情感詞語的情感分值作為優化對象,情感波動情況與股市波動情況一致性為優化目標,并通過改進模擬退火算法實現優化過程。每個子句情感值Bi計算方法如式(5)所示:
(5)
式(5)中:Zl為每個子句中的情感分值,當句子中包含情感詞則計算得分,如果不包含則該句子不計算分數;Fl為否定詞詞語得分,如果存在否定詞則為-1,不含則為1;Dl為程度副詞得分;l為每個子句編號;len(sen)為所包含的子句數量。根據該程度強弱進行計算得分。例如“我堅定認為股市不會上漲”句子得分為“上漲”情感詞得分、“堅定”程度詞得分和“不會”否定詞得分三者的乘積。
每日均會產生大量子句來影響股票市場,采用均值方法來衡量每日的投資者情感程度,故每日情感傾向值Kt計算方法如式(6)所示:
(6)
將先前兩日的變化情況作為當日投資者情緒,每日的投資者情緒指數Vt計算方法如式(7)所示。而休市期間的數據,將其歸入上一交易日處理。
Vt=Kt-Kt-1
(7)
為更好地體現詞典的準確性,將每日投資者情緒指數Vt與獲取的每日漲跌情況Rt歸一化后的殘差平方和作為算法求解目標,歸一化方法如式(8)所示,目標函數f如式(9)所示:
(8)
(9)
式中:t為期數;Z(Vt)為標準化后的當期情感分值;Z(Rt)為標準化后的當期收益率。
1.3.2 股市情感詞語分值優化
根據1.3.1所示的股市情感詞典優化模型,選用改進模擬退火算法進行優化。傳統模擬退火算法(simulated annealing,SA)由Steinbrunn等[23]于1953年提出,其思想參考物體退火降溫過程,使得算法在溫度低值時趨向最優解,該算法對于解決大規模組合優化問題具有較大的優勢,在解決收斂速度較慢、搜索空間窄、效率不高等問題上更為突出,故該方法可用于解決股市情感詞典構建中情感詞語分值優化問題。一般模擬退火算法步驟如下。
步驟1 輸入:初始解X0、降溫方式g(T)、初始溫度Tmax、平衡條件、停止準則等。
(1)生成初始解X=X0。
(2)初始溫度T=Tmax。
步驟2 重復以下步驟。
(1)針對當前溫度T,重復如下步驟。①生成隨機候選解X′,令Δf=f(X′)-f(X);②若Δf≤0,直接令X=X′,否則以概率exp(-Δf/T)接受解X′;③滿足平衡條件條件時,結束(例如迭代到了最大次數)。
(2)更新溫度,即T=G(T)。
(3)滿足停止準則時(T 步驟3 輸出得到的最優解X。 為進一步提高算法性能,在傳統模擬退火算法的基礎上,引入改進參數Iimp并改變其概率接受,避免其陷入局部最優,算法流程如圖2所示。具體步驟如下。 圖2 算法流程圖 在獲取初始情感詞典后,將其作為當前最優解,計算其目標值f(X)。 隨機選擇一定比例的情感詞語,對其進行情感分值優化:使用1.2.1節訓練的Word2vec模型對該詞語進行關聯度分析,分別計算其與看多種子詞與看空種子詞的之間的相關關系,并取兩者中較大值P,P計算方法如式(10)所示: (10) 采用隨機取值方法,對該情感詞的情感分值執行增加P或者減去P的操作。 計算改變后的目標值f(X′),并計算Δf=f(X′)-f(X)是否優化,如果已經優化則接受本次改變,如果未優化,則進行判斷,如滿足以下條件也可接受本次改變。 (1)Δf (2)改進參數Iimp取值為接受輪次Acc的整數倍。 如果不滿足上述條件,則標記改進參數Iimp+1,取消本次變化,開始當前溫度新一次迭代。如滿足優化條件,則令改進參數Iimp=0,接受本次改變為當前最優解,并開始當前溫度的新一輪迭代。 當迭代次數到達設定值時,則進行降溫操作,降溫變化函數G(T)為T=0.99T。 降溫后,開始新的溫度條件迭代,若溫度低于設定的最低溫度Tmin則結束算法,輸出結果。 數據于2019年4月14日通過Python爬蟲從東方財富“上證指數”股吧論壇中獲取前10 000 頁評論數據,獲取字段包括評論標題和日期,原始數據共有800 000 條,去除重復數據和由于評論更新導致進入該時間段的數量較少的時段數據,最終獲取2018年5月25日—2019年4月14日共745 726 條數據。指數漲跌數據通過東方財富Choice金融終端獲取該時段內交易日上證指數每日收益率215條。 2.2.1 基本情感詞詞典構建情況 多空情感詞語挑選主要通過對新浪財經博客內容去除停用詞后,進行詞頻統計,并依據詞頻統計結果進行人工挑選得出。根據挑選結果可將詞語分為技術面情感詞典和消息面情感詞語,共有207個詞語,其中看多情感詞語100個,看空情感詞典為107個,表1列舉了部分詞語。 表1 部分情感詞語 人工篩選了否定詞和程度副詞,并根據其感情程度進行分級,程度副詞包括:不為過、多、過、過于、略、逾、足、尤其、百分之百、最、倍加等;否定詞則包括:不是、否、不會、沒、沒有、別、休、否、弗、勿、罔等。 2.2.2 高頻情感詞語添加情況 在情感詞語添加中,選擇詞頻排名前20的高頻詞語,通過結果分析發現所構建的股市情感詞典針對股票市場具有良好的適應力,能較大限度地添加影響文本情緒的相關詞語。從消息面和技術面兩個角度出發,都可對原有情感詞典進行補充,進一步提升所構建股市情感詞典的行業特異性。此外,方法可以對一些中性詞語進行情感極性標注,例如“2449”被判定為看空情感詞語,則主要因為其為該期間內的最低點,“中信證券”一詞被判定為看空,則因為其被相關機構調為賣出評級,引發了市場回調。“入摩”和“入富”等詞語則主要是因為該事件將為市場帶來增量資金,提高市場信心,在股民看來是正面事件,則判定為看多詞語。表2列舉了情感分值絕對值較高的高頻情感詞語,從表2可見技術面情感詞語相對消息面情感詞語在情感表達方面有更強情感極性,相對而言消息面情感詞語表達因出現頻率較低,其情感極性則較弱。 表2 部分新增情感詞語和情感分值 2.2.3 情感詞典優化情況 在優化流程中,每次選擇1%的詞語開展優化,在對情感詞語的優化上也有較好的效果,除了對新增高頻情感詞語優化結果較好。從表3可知,部分基本多空情感詞語相對原始情感分值均有較大的變動,且其變化方向也區分了該詞語的情感極性。例如對股市影響的比較重大的資金相關詞語“融資額旺季”的權重得以提升。 表3 部分情感詞語分值變化 2.2.4 情感詞典構建效果分析與比較 為了評估本文方法的有效性和實用性,選擇NTUSD、THUSD和HowNet與本文方法進行比對分析。 行業特異性的提高,將提升文本利用情況,增加情感詞典對于文本的覆蓋率,使得文本詞語利用率得以提升,所構建的投資者情緒指數將有更多的情感詞語來與文本。從表4可知,本文方法相比其他情感詞典具有更強的覆蓋率,為78.50%,比THUSD提升47%,較HowNet也提升36%。 表4 各情感詞典覆蓋數量 進一步使用準確率QAcc、精確率PPre、召回率RRec和F1對實驗結果進行評估。各指標代表以下含義。 (1)準確率:對于股市走勢漲跌的測算趨勢正確的比例。 (2)精確率:測算結果為上漲且正確占全部預測為上漲的比例。 (3)召回率:測算結果為上漲且正確占全部實際為上漲的比例。 (4)F1:對精確率和召回率的整體衡量,其計算方法如式(11)所示。 (11) 由表5可知,本文方法所建情感詞典在投資者情緒表達的準確率、精確率、召回率和F1均高于其他三種情感詞典,其中準確度高其他6.98%~11.17%,精確率高其他8.51%~12.56%,召回率高其他7.92%~16.84%,F1高其他7.86%~14.66%.說明該股市情感詞典在股市投資者情緒分析中具有更好的精度。 表5 各指標計算結果 現有情感詞典構建方法存在自動化程度低、缺少情感計量等問題,探索一個具有自動化構建和自動優化的情感詞典具有重要意義。引入Word2vec用于高頻詞語情感分析,結合前期構建的基本情感詞語和程度副詞、否定詞,生成當期投資者情緒指數,并將情感詞典構建轉化為數學優化問題,引入改進參數并變更概率接受的改進模擬退火算法,用于情感詞語情感分值優化。通過將其與NTUSD、THUSD和HowNet相比,本文方法所構建的情感詞典可以提高文本覆蓋率,對股市有更強的行業特異性,將其運用于股市所構建的投資者情感指數較其他詞典有更好的精度。總體上,提出的股市情感詞典自動構建與優化方法具有良好性能。
2 實驗分析
2.1 數據介紹
2.2 結果與分析





3 結論