第三章 研究方法
4.3 資料向量化與研究方法分數計算
在資料前置處理淨化完畢之後,接下來就得將文字資料轉換為向量的形式以 供程式進行自動化的處理計算。除了評論的資料需要進行向量化之外,從 Steam 遊戲社群平台上擷取到的每款遊戲所屬的屬性標籤也必須同步的進行向量化。
由於本研究需要進行分析的文字資料量龐大,為了確保本研究使用到的方法 所演算出來的結果分數都為正確無誤,本研究已將整個向量化與計算的過程都切 成細部的程式流程,並在完成一個細部流程檢查程式處理後的結果是否為正確無 誤,確認皆無誤後才會繼續下一個流程。
本研究在進行向量轉換與計算的過程中碰上了許多的問題。首先在一般情況 下,所需分析的資料量沒有很大的時候是可以不必考慮到所撰寫出來的程式效能 問題,然而在資料量很龐大時就必須考慮到電腦運算效能速度上的問題。
以本研究在計算 tf-idf 分數的例子而言,在計算的時候一定必須先事先建立 好每篇評論所集合出來的字彙集字典,之後所有評論都必須運用此字典來計算每 個字詞的向量分數。本研究一開始並未考慮到任何程式優化上的問題,所以使用 Java 在運算的時候速度就會非常的緩慢,同時還有記憶體過量的問題,必須想辦 法改善記憶體空間浪費問題。字彙集字典的向量維度是由所有評論文字字詞所組 成,一篇評論在字彙集字典中只佔了幾個字詞,這也代表其他無關的字詞所代表 的向量分數為 0,這時候就應該把這些為 0 的字詞向量都去除,以降低每篇評論 向量維度在電腦記憶體空間上的不必要浪費。除此之外,為了增加在字詞上的比 對效率與速度,必須使用索引值的搜尋比對方式,事先給予每個字詞一個獨特的
索引或 key 值。tf-idf 字彙集字典與每篇評論計算出來後的向量化結果 JSON 格 式檔案內容如圖 4-3 與圖 4-4 所示,tf-idf 字彙集字典的部分依本研究所提的兩 種人格特質分數對映方法而被切開分成兩種不同的字彙集字典。
圖 4-3: tf-idf 向量化字詞字典
圖 4-4: tf-idf 評論向量化後計算結果
計算完 tf-idf 分數完之後,接下來就是使用 LIWC 軟體工具來為評論進行字 詞屬性數量的計算,取得字詞是屬於哪幾類屬性的字詞後,接著計算出每篇評論 的每個字詞的五大人格特質向量總分數為何。然而 LIWC 2015 軟體工具並未提 供批次計算輸出功能,例如現在手頭上有 5 篇文字檔案,只能一篇一篇慢慢匯入 並一篇一篇輸出成 CSV 計算結果檔案,因此本研究在這部分又碰上了一個新的 問題,亦即如何進行批次輸出。
LIWC 2015 軟體本身有附贈字典百科的 PDF 檔案,因此唯一的辦法就是使 用這個 PDF 檔案,然後撰寫出一個與 LIWC 2015 軟體一樣功能外加批次處理的
程式。本研究將 PDF 檔案轉換為 CSV 檔後再轉換為 JSON 檔案,接著再撰寫成 字詞比對計算程式,然後再以人工的方式將圖 3-12 至圖 3-13 中 Mairesse et al. [5]
所統計的 LIWC 與五大人格特質的皮爾森相關係數統計圖編製成 LIWC 不同屬 性字詞所代表的五大人格分數維度向量字典,編製後字典內容如錯誤! 找不到參 照來源。所示。
關於 Mairesse et al. [5]所開源出來的 Personality Recognizer Tool 這個工具使用的 部分,本研究發現,若所需分析的文字資料量非常大的時候,建議直接使用此工 具所附的 Java Class API 套件來分析。若直接使用 Personality Recognizer Tool 來 分析單一資料夾中所有大量的文字文件的話,最後結果可能會出現記憶體發生錯 誤或是結果跑不出來。提及這些問題都是希望能提供一些在使用上的經驗與意見 給後續相關未來研究有興趣加以利用這些工具的先進們做一些參考,事先的知道 利用這些工具可能會遇上的問題。
圖 4-5: LIWC 五大人格分數維度向量字典
所需的字詞字典都編制好以後,接下來就是將本研究第三章提到的計算方法 把 18 種結果都計算出來。本研究在推薦系統實作的部分主要切分成兩個處理步 驟,前半段步驟先利用 Java 將 2050 款遊戲所對映的人格特質分數計算出來,接 著後半段步驟再將這些遊戲分數資料倒入結合 PHP 網頁,實作成一個遊戲推薦
純文字的方式將資料倒入 MySQL 資料庫的方式來儲存資料,然後將不同計算方 法的計算結果切開成不同的資料表後,在利用 Join 的方式來處理推薦系統撈資 料呈現的方法來進行。但是其效能不如預期,MySQL 資料庫在處理本研究倒入 的資料的時候無法順利進行。於是本研究決定採取另外一種方式,就是直接讓 PHP 讀取 JSON 檔的方式。採取此方式後,速度與效能改善顯著,圖 4-6 為每一 款遊戲所對映的人格特質分數 JSON 檔案之內容。
圖 4-6: 每一款遊戲所對映的人格特質分數與屬性標籤 JSON 檔內容