第三章 研究方法
3.8 遊戲推薦
本研究在人格特質相似度的計算將採用餘弦相似度(Cosine Similarity)為主 要的計算方法。餘弦相似度為最常被用來計算文本相似度的計算方法,用來比較
圖 3-32: 推薦方法一的雙方人格特質總分之間的相似度計算
圖 3-33: 推薦方法二的雙方人格特質總分之間的相似度計算
圖 3-34: 推薦方法三的雙方人格特質總分之間的相似度計算
3.9 滿意度評估
相似度計算完畢後,接著就是推薦結果關聯度的呈現,本研究將會依照相似 度高到低的順序列出前十名的遊戲。由於本研究在人格特質計算共有三種方法;
在向量表達的部分有兩種方法;在推薦的部分有三種方法,故全部組合後共有十 八種結果呈現,如圖 3-35 所示。
在受測的時候,本研究並不會告知受測者是用了什麼方法來進行推薦,以避 免出現偏誤的影響。本研究將透過受測者所決定的滿意度結果來評估這些方法,
推薦結果的呈現範例圖如圖 3-36 所示。
圖 3-35: 所用方法組合最後呈現出來的結果數目
圖 3-36: 推薦結果的呈現
在研究方法驗證方面,本研究將所提出的方法與 Mairesse et al. [5]以及李永 銘、張曉珍[6]所提的兩種方法進行比較。透過 3 種遊戲推薦法所呈現出的 18 種 推薦結果,進行滿意度評估來驗證研究方法的可行性。
第四章 研究資料與實驗評估
圖 4-1: JSON 格式檔案匯出
資料名稱 過濾前遊戲 過濾後遊戲 評論 評論作者 屬性標籤 數量 25715 2050 3048375 328972 313(種)
表 4-1: 資料集數量統計表
排名 屬性名稱 數量 排名 屬性名稱 數量
1
Singleplayer 156311
Open World 5182
Action 139012
Casual 5023
Adventure 119713
Simulation 5014
Indie 115814
First-Person 4765
Multiplayer 98815
Shooter 4746
Strategy 65216
2D 4247
RPG 61817
Sci-fi 4148
Great Soundtrack 61418
FPS 4069
Co-op 58819
Story Rich 38310
Atmospheric 57820
Funny 364表 4-2: 2050 款遊戲的前 20 名屬性分類標籤數量統計表
4.2 研究資料前置處理與字詞屬性種類選取
Lucene 斷詞器依斷詞過濾條件的種類主要有分成 Keyword Analyzer、
Whitespace Analyzer、Stop Analyzer、Simplae Analyzer、Standard Analyzer。本研 究依據所採取的 LIWC 字詞庫來選用最適合的 Standard Analyzer 分詞器來進行本 研究資料的斷詞與過濾處理。在進行斷詞時,本研究發現了許多評論之中參雜著 掉,像是 WC(總詞數)、WPS(每句詞數)、AllPct(所有標點符號)等。在標點符號 的部分本研究只保留了 Comma(逗號)、Period(句號)、Exclam(驚嘆號)、Qmark(問 號),各個方法詳細所使用到的 LIWC 屬性總數量如表 4-3 所示,圖 4-2 則為評 論字詞過濾與斷詞後之結果。
LIWC 屬性 Mairesse 之方法
李永銘、張曉珍之方法 本研究提出之方法數量 76 71 71
表 4-3: LIWC 字詞屬性使用數量統計表
圖 4-2: 評論字詞過濾與斷詞後之結果
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 檔內容
4.4 實驗評估
實驗評估的部分,本研究已經將整個遊戲推薦評估系統撰寫成網頁的方式呈 現。此系統可供受測者直接進行線上註冊登入與操作,系統註冊與登入畫面如圖 4-7 所示。由於本研究遊戲推薦的 18 種計算方法中,有 6 種計算方法是需要事先 蒐集使用者的文字評論回饋資訊,所以實驗流程一共被分成前後兩個階段來進 行。
圖 4-7: 遊戲推薦受測系統註冊與登入畫面
4.4.1
實驗流程第一階段本研究的實驗主要是以 Steam 社群上的玩家以及對遊戲有興趣及有遊戲遊 玩經驗的一般民眾玩家為受測對象。有完成第一階段評分的受測人數一共為 63 人,受測方式主要是採網路線上發放進行。研究受測發放地點主要有台灣 STEAM 臉書社團、STEAM 平台交流社團、國立高雄大學臉書社團、STEAM 官方社群 平台,受測者年齡主要分佈於 20 歲至 41 歲之間,性別與其他相關統計資訊如表 4-4 所示。
統計類別 受測總數 男 女
Steam 玩家
非 Steam 玩家數量(人) 63 47 16 43 20
表 4-4: 受測者數量統計表
在本研究實驗進行的一開始,會先請受測者挑選數量 1~10 款自己喜歡或是 有興趣的遊戲加入至遊戲清單中,若挑選錯誤可馬上移除。遊戲挑選的數量不可 低於最少的 1 款或是超過 10 款,如圖 4-8 所示。本研究為了方便受測者能快速 找到自己所想挑選的遊戲來加入遊戲清單之中,實作了一個遊戲檢索系統。檢索 模式一共分為 3 種,第 1 種為關鍵字查詢、第 2 種為直接列出全部的遊戲、第 3
圖 4-8: 受測者挑選喜愛或有興趣遊戲之遊戲清單畫面圖
圖 4-9: 遊戲檢索系統畫面圖
遊戲清單挑選完畢後,接下來就可以選擇開始進行遊戲推薦,選擇開始執行 畫面如圖 4-10 所示。
圖 4-10: 選擇開始進行遊戲推薦畫面圖
選擇開始進行受測推薦運算後,推薦系統會依據受測者所選取的遊戲之人格 特質對應總平均分數來計算,計算後會先列出 18 種算法的其中 12 種算法之推薦 結果,畫面如圖 4-11 所示。計算出的每一種結果,分別會列出分數相似度最高 的前 10 名遊戲給受測者,這前 10 名的遊戲中也包含 Steam 社群商城的遊戲詳細 介紹網址連結,以供受測者即時瀏覽推薦的遊戲詳細資訊為何。