online gambling singapore online gambling singapore online slot malaysia online slot malaysia mega888 malaysia slot gacor live casino malaysia online betting malaysia mega888 mega888 mega888 mega888 mega888 mega888 mega888 mega888 mega888 Python實作新聞情緒分析(Sentiment Analysis)

摘要: 情緒分析就是針對文本背後所詮釋的情緒進行分析。近來年機器學習和資料探勘正廣為學界和業界使用,而情緒分析則類似於資料探勘中的文字探勘,計算文本中各個字詞所代表的情緒分數,解讀進而轉化成資訊。

 


images/20220726_1_1.jpg

▲圖片來源:knowslist

什麼是情緒分析(Sentiment Analysis)?

情緒分析就是針對文本背後所詮釋的情緒進行分析。近來年機器學習和資料探勘正廣為學界和業界使用,而情緒分析則類似於資料探勘中的文字探勘,計算文本中各個字詞所代表的情緒分數,解讀進而轉化成資訊。

近年來比較常見的作法是針對新聞內容分析,投資的世界其實是一場資訊戰,投資人透過會計資訊、技術線圖的指標…等資訊進行投資決策,而情緒分析就像是伴隨科技更為進步的一種分析方法,針對字詞傳達出樂觀(Optimistic)、悲觀(Pessimistic)的情緒來判斷標的價格變化。

Python套件-Jieba結巴斷詞

在文本分析中,斷詞是一個大議題,因為沒辦法正確的斷詞,就得不出正確的資訊,而中文斷詞在執行上有個相當窒礙難行的地方,在於中文的詞與詞之間並沒有明顯的分隔。

舉例來說,市場預期未來六個月將持續高通膨。這句話就是許多詞的組合,例如市場(名詞)、預期(動詞)、未來(名詞)...等等,但如果寫成英文呢

英文: Market expects high inflation rate will last six months.

詞與詞之間有明顯的空白分隔,因此可以輕易地區分出這句話中共有多少詞,但中文的區隔邏輯是不一的。

Jieba套件就是用於解決中文斷詞的問題,來看下面的例子。

jieba斷詞程式碼範例

導入了結巴斷詞套件後,設定要用來判斷字詞的辭典,進行斷詞。

images/20220726_1_2.png

▲圖片來源:knowslist

上方cut()函數中有個參數cut_all,當設定為True時是全模式,設定為False的時候是精確模式。

精確模式不會有同的字分到兩個詞的問題,全模式則是將所有可能都列出來。

images/20220726_1_3.png

▲圖片來源:knowslist

透過斷詞套件的輔助,解決了困難的斷詞作業,接著就能用文本中的詞句來計算情緒分數。

情緒分數計算

計算情緒分數的作業上,還缺一個很重要的元素,就是字詞所隱含的情緒方向和分數,在這使用台灣大學情緒字典(NTUSD),裏頭提供正面詞彙和負面詞彙的字典。

台大自然語言處理實驗室中還提供了英文字詞及對應的分數,裏頭有許多很棒的資源可以使用,提供參考。

接著隨機挑一篇財金新聞來做分析,原文連結在這:https://news.cnyes.com/news/id/4754811?exp=a

images/20220726_1_4.png

▲圖片來源:knowslist

接著讀取正負面詞彙的資料

images/20220726_1_5.png

▲圖片來源:knowslist

有了文本和字典後,就能透過剛剛介紹的jieba套件來完成。

images/20220726_1_6.jpeg

▲圖片來源:knowslist

在上面的例子簡化了計算的方法,直接用正面字詞為1分,負面則為-1分的方式計算,實際上還有許多的計算方法,而不同的詞隱含的分數也可能多寡不一。

經過斷詞和情緒字詞判斷後,得出本篇新聞的情緒分數為-1,這篇新聞屬於盤勢解析的分類,而綜合許多盤勢解析的新聞之後,就能簡易的計算出當前市場投資人情緒分數。

轉貼自: knowslist

若喜歡本文,請關注我們的臉書 Please Like our Facebook Page: Big Data In Finance

 


留下你的回應

以訪客張貼回應

0
  • 找不到回應