# 情感分析應用於預測股價 ## 專案目標 本專案旨在開發一個系統,利用情感分析技術分析新聞、社交媒體等文本數據,研究這些情感數據與股票價格之間的關係,並嘗試預測股票價格走勢。 ## 動機 半導體產業是台灣的經濟命脈,其高成長高報酬的產業特性,使其成為投資人的投資選項。也因為疫情的關係,可以看到電子類股報酬率的表現超乎預期,也看到社群對於電子類股的討論度上升。疫情中會充斥著更多投機、負面消息和謠言的訊息,因此對於不同情緒的探討也會顯得重要,也有研究證明投資人情緒會影響投資人對股價的關係。 # 數據收集與處理 ## 股票價格數據 - **數據來源**:Yahoo Fianace、台灣證券交易所等。 - **數據內容**:股票的歷史價格等。 - **數據處理**: - 清洗和處理缺失數據。 - 計算日收益率等衍生指標。 ## 情感數據 - **數據來源**:PTT、財報狗等。 - **數據內容**:相關半導體公司的新聞文章、推文、評論等。 - **數據處理**: - 數據清洗:去除噪聲和無關信息。 - 文本預處理:分詞、去停用詞、詞幹提取等。 # 情感分析模型 ## 情緒分數計算 - NTUSD 字典是由台灣大學自然語言處理實驗室所研發的中文情感情辭典(Ku, 2007),其中,NTUSD字典包含 2,810個正向詞和 8,276 個負向詞,共 11,088個字詞。 - 以NTUSD字典為基礎擴篩選成快樂、憤怒、恐懼和悲傷情緒字典,本研究則會透過人工篩選符合情緒在NTUSD裡面的述詞,來建立屬於本研究的四個情緒的字典,以利後面與文本比對之後的情緒指數計算。 ## 模型選擇 - 支援向量機器是一種監督式機器學習算法,用於解決線性、非線性、回歸問題。SVM的主要目標是在不同的類別之間找到一個最佳的決策邊界,以分隔不同的數據點,是最受歡迎的演算法之一。因為人工製作分類規則非常耗時且昂貴,所以針對文本分類的機器學習方法就顯得很重要。而SVM模型已被廣泛應用於情感分析的研究。 ## 模型訓練、評估與驗證 - 使用標注的情感數據集進行訓練和評估。 - 調整模型參數以提高準確性。 - 使用Accuracy、Precision、Recall、F1-score,並使用交叉驗證(Cross Validation)來做為衡量模型的效果。可以根據模型的預測結果和真實標籤來計算混淆矩陣。 # 分析結果 ## 情感數據與股票價格之間的關係 - 情緒與價格指數值的走勢並不完全一致,但從圖圈起來的地方可以看到,可以得知情緒與半導價格指數值劇烈的波動性有關,當文章中的恐懼情緒上揚,半導體價格指數就有下跌的趨勢;開心情緒上揚時,半導體價格指數就會有上漲的趨勢。 - ![image](https://hackmd.io/_uploads/BydqRqGIA.png) ## 主要發現 - 純技術指標和技術指標結合不同情緒指標的預測效果,以了解情緒指標與半導體指數之間的預測相關性。 ![image](https://hackmd.io/_uploads/rJzfJiMUR.png) - 以個別情緒的來看,開心情緒(HI)在以一天為單位於預測半導體指數價格有較好的表現。恐懼情緒(FI) 在以一周為單位於預測半導體指數價格有較好的表現。生氣情緒(AI) 在以三天為單位於預測半導體指數價格有較好的表現。悲傷情緒(SI) 在以一周為單位於預測半導體指數價格有較好的表現。情緒特徵對於以兩周為單位於預測半導體指數價格上之結果中,則無較好的表現。另外,研究發現情緒特徵組合(TI+FI+SI)在以一天、一周為單位於預測半導體指數價格上漲與下跌之結果有好的表現。 ![image](https://hackmd.io/_uploads/HyWq1oM8A.png) # 結論與未來工作 ## 結論 - 情緒與半導價格指數值劇烈的波動性有關。 - 情緒在以中短期時間單位對於半導體指數價格值進行預測是有幫助的。 - 關於股價的預測中,長期預測通常與基本面和技術指標有較強的關聯性,這符合傳統的投資分析方法。在短中期預測中,將情緒因素納入模型可以提升對股價的預測能力 ## 未來工作 - 開發一個實時情感分析系統,提供即時的情感指標和股票價格預測。 - 探索更多數據來源,提升模型的準確性和穩定性。 ## 資料來源 焦榮安(2023)。以多元情緒探討台灣半導體股價指數之研究 —以PTTSTOCK版為例。﹝碩士論文。元智大學﹞。 https://hdl.handle.net/11296/62rr9k。 Ku. (2007). Mining opinions from the Web: Beyond relevance retrieval. Journal of the American Society for Information Science and Technology, 58(12), 1838-1850.