購買電玩遊戲之前,玩家通常會先查看其他玩家對於這款遊戲的評價或是遊玩心得,再決定是否購買該款遊戲,尤其是相當具知名度的作品,更容易出現極端評價,遊戲評價的高低會影響銷量表現,因此遊戲公司更加重視玩家對於該款遊戲的體驗與想法。

本組以SONY在自家遊戲平台Play Station 4 上所推出的「戰神」(God of war)系列作品,作為評論分析主題,最新作品「戰神4」於2018年04月20日發行,故事舞台從希臘神話轉到北歐神話,主角克雷多斯為達成妻子菲的願望,與他的兒子阿特柔斯一同踏上旅程,玩法與前作不同,玩家可一次操作兩人,透過攻擊與輔助搭配,讓戰鬥系統變的更加豐富,遊戲推出後,獲得許多獎項(年度最佳遊戲、最佳動作遊戲、視覺設計、聲訊設計等),以及電玩網站極高評分與評價。

以下,我們將針對PTT PlayStation版中所有討論戰神的文章進行分析,了解玩家對於戰神的評價與討論話題為何。

Sys.setlocale(category = "LC_ALL", locale = "zh_TW.UTF-8") # 避免中文亂碼
## Warning in Sys.setlocale(category = "LC_ALL", locale = "zh_TW.UTF-8"): 作業
## 系統回報無法實現設定語區為 "zh_TW.UTF-8" 的要求
## [1] ""

安裝需要的packages

## Loading required package: readr
## Loading required package: dplyr
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
## Loading required package: stringr
## Loading required package: jiebaR
## Loading required package: jiebaRD
## Loading required package: tidytext
## Loading required package: NLP
## Loading required package: tidyr
## Loading required package: ggplot2
## 
## Attaching package: 'ggplot2'
## The following object is masked from 'package:NLP':
## 
##     annotate
## Loading required package: ggraph
## Loading required package: igraph
## 
## Attaching package: 'igraph'
## The following object is masked from 'package:tidyr':
## 
##     crossing
## The following objects are masked from 'package:dplyr':
## 
##     as_data_frame, groups, union
## The following objects are masked from 'package:stats':
## 
##     decompose, spectrum
## The following object is masked from 'package:base':
## 
##     union
## Loading required package: scales
## 
## Attaching package: 'scales'
## The following object is masked from 'package:readr':
## 
##     col_factor
## Loading required package: reshape2
## 
## Attaching package: 'reshape2'
## The following object is masked from 'package:tidyr':
## 
##     smiths
## Loading required package: widyr
## Loading required package: knitr
## 
## Attaching package: 'data.table'
## The following objects are masked from 'package:reshape2':
## 
##     dcast, melt
## The following objects are masked from 'package:dplyr':
## 
##     between, first, last
## Loading required package: RColorBrewer
## Loading required package: webshot
## Loading required package: htmlwidgets

載入資料集

#載入原始資料集
gow<- read_csv("./god_of_war_articleMetaData.csv") %>%
              mutate(sentence=gsub("[\n]{2,}", "。", sentence))
## Parsed with column specification:
## cols(
##   artTitle = col_character(),
##   artDate = col_date(format = ""),
##   artTime = col_time(format = ""),
##   artUrl = col_character(),
##   artPoster = col_character(),
##   artCat = col_character(),
##   commentNum = col_integer(),
##   push = col_integer(),
##   boo = col_integer(),
##   sentence = col_character()
## )
gow %>% head(10) %>% kable %>% 
  kable_styling(bootstrap_options = c("striped", "hover")) %>% 
  scroll_box(height = "300px")
artTitle artDate artTime artUrl artPoster artCat commentNum push boo sentence
[情報]戰神4將不會有微交易 2018-03-06 21:20:27 https://www.ptt.cc/bbs/PlayStation/M.1520400392.A.916.html swallow753 PlayStation 24 12 0 來源: http://tinyurl.com/ycrl2d57 http://tinyurl.com/y8awjtz3 遊戲總監Cory Barlog在推特說明了,不會有需要花真錢的微交易。順便貼個台索的戰神Pro網址: http://tinyurl.com/y7kx4ps3 Limited Edition售價及內容物。2018年4月20日 NT$14,480。・PlayStation®4 Pro主機(CUH-7100系列、1TB1硬碟機) x 1 原創設計。・DUALSHOCK®4無線控制器 x 1 原創設計。・PS4™遊戲《God of War™》Blu-ray Disc™ 版(包括免費特典下載內容2:XP增幅、 鍛爐圓盾、光之精靈魂盾及暗影蟄伏盾) x 1。・免費追加內容下載卡2:死亡誓言盔甲、流亡人守護者盾、Dark Horse漫畫下載版、美 術畫集下載版及動態主題 x 1。・免費PlayStation®Plus 3個月會籍之特典卡3 x 1。2 期限至2021年4月20日。。3 期限至2018年10月20日。
Re:[情報]戰神PS4Pro同捆機 2018-03-07 21:28:00 https://www.ptt.cc/bbs/PlayStation/M.1520487247.A.C40.html likemagic PlayStation 14 6 4 文中說10點至10點半開放排隊,大家認為當天去還有機會嗎?。火龍機之前請特休想去排,結果當天去根本排不到 https://i.imgur.com/Ji5fdKS.jpg 普雷伊FB。 前進台北信義,「普雷伊 信義門市」正式開幕。 《戰神》限定 PS4 Pro 主機同捆組100組預購 PlayStation 4 Pro 台灣專用機(極致黑)100組現貨販售。詳情連結 http://smarturl.it/playEsliteXinYiStore ~~~~~ 全面慶祝 PlayStation 全新概念店「普雷伊 信義門市」正式開幕。 當天限量推出 100 組《戰神》限定 PS4 Pro 主機同捆組預購資格。 現場「普雷伊 信義門市」當天更提供100台PS4 Pro(極致黑)現貨可以購買 ( 只要加購1000元,即可擁有PS4新款無線控制器(極致黑)乙隻,超划算der )。 活動日期:3 月 10 日(六)當日下午13:15 開始販售。 (當天早上10:0010:30開放排隊,11:0011:30發放號碼牌,號碼牌包含100組PS4 Pro戰 神限定同捆預購資格 ,與100組PS4 Pro極致黑購買資格 。)。 活動地點:普雷伊 信義門市(台北新光三越信義新天地 A11 館一樓)(台北市信義 區松壽路 11 號 1 樓)。當日可預購和販售數量有限,預購以及現貨皆售完為止,若仍有問題,詳情可以聯繫普雷 伊統一窗口(2356-7068#74)。。#普雷伊信義門市 #正式開幕 #200台PS4Pro #高清娛樂時代 #前進信義 #戰神限定同捆
Re:[情報]戰神PS4Pro同捆機 2018-03-12 01:35:58 https://www.ptt.cc/bbs/PlayStation/M.1520847721.A.E75.html Askalaphos PlayStation 79 46 0 火龍機 2.0 來惹啦 ~ 綁綁綁 綁 下去 https://i.imgur.com/1Hfwg9D.jpg https://www.game4fun.com.tw/web_product/product_detail/85/2199 2.預購(即將開放)- PS4 Pro 主機。《戰神》利維坦之斧特仕機 +《真.三國無雙 8》+「DS4」手把造型抱枕,。 每人僅限購一台。 https://www.game4fun.com.tw/web_product/product_detail/85/2226
[情報]戰神9分鐘實機遊玩影片 2018-03-16 20:30:37 https://www.ptt.cc/bbs/PlayStation/M.1521261399.A.100.html Jiajun0724 PlayStation 174 109 0 https://youtu.be/lr_4WH_aWy8 看起來超讚的啦..有種跟以往戰神不同的視覺體驗。已預購
[情報]《戰神GodofWar》社群營銷監製來台 2018-03-19 19:27:10 https://www.ptt.cc/bbs/PlayStation/M.1521516796.A.F7C.html gi1234g PlayStation 64 34 6 (GNN 記者 KEN 報導) 2018-03-19 23:00:02   PS4 獨佔動作遊戲《戰神(God of War)》將於 4 月 20 日同步在台港推出中文版 ,台灣索尼互動娛樂(SIET)日前特別舉辦了《戰神》媒體體驗會,搶先試玩遊戲開頭約 兩個小時的內容。同時邀請 SIE 聖塔莫尼卡工作室資深社群策略及市場營銷監製 Aaron Kaufman 來台,在媒體試玩告一段落後接受訪問,解答關於遊戲的各種疑問。以下為訪問 內容,有興趣的玩家不妨參考。 https://p2.bahamut.com.tw/M/2KU/27/268e79b0dbdae4d3affb4e308a108yj5.JPG 標題完全重啟的《戰神》象徵遊戲界聞名遐邇的「克雷多斯」,他將迎向一個全新的開 始。克雷多斯離開眾神的陰影,在陌生的土地過著凡人生活,並面臨無法預測的威脅、挑 戰為人父的第二次機會。他將和兒子「阿特柔斯」結伴上路,探索嚴酷的北歐荒野,面對 各種挑戰,完成一個與他切身相關的目標。 媒體:為什麼新的《戰神》要選擇將遊戲標題名重啟,而不是取作《戰神 4》? Aaron:可能有玩家從以前就耳聞過《戰神》這款遊戲,但會覺得沒玩過 1、2、3 代,沒 有辦法銜接到 4 代而卻步。重啟的標題名稱也讓從來沒玩過的玩家可以比較好銜接進來 ,也象徵列《戰神》迎來了一個全新的時代。雖然聖塔莫尼卡工作室也很喜愛過去的希臘 神話題材,但他們在五年前就開始規劃,為玩家帶來耳目一新的體驗。 https://p2.bahamut.com.tw/M/2KU/28/addf918e70a4af5d00006d1eb8108yk5.JPG 媒體:在全新的《戰神》中,克雷多斯和過去有什麼不同? Aaron:克雷多斯在新系列中,外觀上最大的改變就是「鬍子」。已經受盡折磨的克雷多 斯,他相信過去充滿暴戾的個性是致命的缺陷,很害怕兒子阿特柔斯會和他如出一轍,所 以他努力的抑制怒氣,並努力的成為一個更稱職的父親,成為阿特柔斯的榜樣。克雷多斯 將教會阿特柔斯怎麼成為一個「神」,而阿特柔斯則是會教會克雷多斯怎麼像個「人」。 媒體:本作改以「過肩視點」遊玩,怎麼保有過去的動作性? Aaron:視點的改動,讓新的《戰神》更加向動作的部分靠攏。傳統的固定視角是製作團 隊強迫「看他們要玩家看的」,但這款開始玩家可以自由移動視角「看自己想看的」。戰 鬥也可以自由轉動視角,觀察敵人和弱點。。  這次的視角,從頭到尾都是從克雷多斯背後來看,沒有任何時候會強迫變成像軌道那 樣的固定視點。這也是我們的創意總監 Cory Barlog 的堅持,實際上要達成這樣的自由 運境,在調整上有很高的難度。實際進去遊戲之後,可以很快的就可以發現,更接近肩膀 的視角和靈活的運鏡,會給玩者帶來更具臨場感的體驗。 https://p2.bahamut.com.tw/M/2KU/80/497a9e8c23a2a9ee211d51c4c2108x85.JPG 媒體:遊戲中有些指令可以指揮兒子,後面有沒有機會實際操縱他遊玩? Aaron:在五年前開始規劃的時候,團隊有過很多討論。但最終結論是:這不是協力遊戲 ,我們要強化單人遊玩的體驗。實際玩起來,就像是父母跟小孩的關係,我們扮演父親去 領導自己的小孩,交給小孩學著自己去判斷局勢。另一方面也可以想成阿特柔斯是武器, 像是另一種攻擊的方式。。  不過最主要的理由是,我們需要玩家專注在操縱克雷多斯的體驗。 https://p2.bahamut.com.tw/M/2KU/82/27529df0504b90969db299987c108xa5.JPG 媒體:在目前的遊玩中,可以使用的武器只有斧頭一種,但過去可以使用五花八門的各種 武器,後面會出現其他的武器嗎? Aaron:這個作品是重視質量,數量是次要。斧頭在設置上已經是最好的決定。隨著進度 的推進,之後可以升級斧頭、弓箭、魔法攻擊和裝甲,每次升級之後獲得的技巧,玩起來 都是新鮮的體驗。。  你知道,以前的作品可以拿到很多新的武器,但用來用去可能,大家最後還是回頭拿 雙刀。我們花了很多心力,專注在單一武器的遊玩體驗。這個遊戲裡面每個要素都是有他 的「目的」,在故事中有它的重要性在,斧頭跟弓箭對故事的發展有重要的地位。 媒體:遊戲中還可以把斧頭丟出去,赤手空拳打爆敵人,打擊感拳拳到肉,相當爽快。是 否有強化肉搏流的技能呢? Aaron:這個時間點還沒辦法洩露太多,還不能說詳細解鎖什麼能力。隨著進度可以解鎖 更多新招式。 媒體:想請問阿特柔斯的 AI 的調整,會不會因戰鬥的表現,讓父子的對話有動態上的即 時變化? Aaron:過往三年,我們花了很大的心力設計 AI。阿特柔斯會根據戰鬥的情況、敵人的遠 近展現不同的動作。對話也是動態呈現,會根據不同的情況變化,但一邊戰鬥一邊聊天的 部分就比較沒有,戰鬥的時候是希望集中在動作上面。。  克雷多斯和阿特柔斯講話的方式,後面也會比較有變化。旅途中他會嚴格地教兒子怎 麼成為一個戰士,在經歷過很多挑戰之後,隨著信任感的累積,他們對話的氛圍也會改變 不少。 https://p2.bahamut.com.tw/M/2KU/33/2d2c42a9ba62dcba75a0ed7b24108yp5.JPG 媒體:在 PS4 Pro 上的畫面表現,有可以調整的選項嗎? Aaron:遊戲是以解析度優先運作,PS4 Pro 上可以實現 4K 搭配 HDR 顯示的表現。 媒體:本作的終結技看起來動作模組重複性有點高,一種敵人目前只看到一個,後面會有 更多不同的組合? Aaron:每個敵人最少都會有一種終結的動作。應該說,你們都知道《戰神》以前就是一 款很狂很暴力的作品。但這作帶來了親情的主題,方向不是要強調「為了暴力而暴力」, 所以在很多表現上都沒過去那麼獵奇。 媒體:實際試玩之後,發現本作的難度提升不少,很多部分得多運用策略和防守才能過關 ,跟過往暴力爽殺的感受改變不少。本作在難度的調整上是? Aaron:在開頭的 ,那個設置是故意讓玩家學習 必須要運用閃躲和防禦,不是一款一直連打按鈕就可以無腦打完的遊戲,要過關必須要運 用所有攻防技巧。 ,必須要升級武器和技能,才可以順利 過關。。  你知道,過去是強調爽快感,一直衝一直按按鈕就可以打贏。但不想讓新的《戰神》 朝向那個方向,所以一開始難度調整比較高,讓玩家必須去防禦和閃躲。 https://p2.bahamut.com.tw/M/2KU/30/509b846fb6d258e87a3704b70a108ym5.JPG 來源: https://gnn.gamer.com.tw/9/160319.html
[情報]<戰神>A9VG專訪:新作依然能體驗到熟悉感 2018-03-20 20:30:00 https://www.ptt.cc/bbs/PlayStation/M.1521606964.A.2C0.html swallow753 PlayStation 28 23 0 來源: http://tinyurl.com/yco2rhu7 A9VG:Aaron你好,在去年E3中我曾對你的同事Cory Barlog進行過採訪。他曾解答過我關 於這款遊戲的很多疑惑,不過在這次實機試玩之後我有一些新的問題。 Aaron Kaufman(以下Aaron):你和Cory聊過?太好了,那我的回答會和他完全一樣(大 笑)。 A9VG:這一次的《戰神》在鏡頭視角、武器、神話背景方面都和以往有很大不同,那麼對 於老玩家來說,這一部作品中不變的元素是哪些? Aaron:我覺得對於老玩家來說,在戰鬥時的感覺和那些史詩瞬間的感受(是不變的)。 曾經的鏈刃有著非常酷的戰鬥循環,比如方塊方塊三角之類的攻擊, 我想你在試玩了新作 的戰斧之後應該也能體驗到相同的感受,尤其是將斧子召回的那一瞬間。我覺得對於粉絲 們來說,他們想要的是那種無法預料到的驚喜、想要巨大的怪物敵人、想要感受到奎托斯 的強大力量,我覺得這些相比以前的《戰神》系列來說是不變的元素。 A9VG:你剛剛提到了巨大的怪物,請問這些怪物會和以前一樣巨大嗎,這樣的大怪物或者 boss的數量大概會有多少? Aaron:這款遊戲不僅僅是關於巨大boss的,更重要的是那些大場面的瞬間、家庭、角色 等等, 敵人的大小並不是關鍵,讓人感到吃驚才是重要的。 在本作初期你和那位「陌生人 」的戰鬥就是如此,他的體型並不像巨像一樣龐大,但和他的戰鬥可以讓你感覺到像是在 和巨人戰鬥。目前我們不想透露遊戲中有多少場boss戰,我們希望玩家能專注於「旅程」 以及「為何要踏上這個旅程的原因」。 A9VG:奎托斯來到北歐神話的原因會在本作中解釋清楚嗎?還是會留到以後再解釋? Aaron:對於Cory Barlog來說,他認為不論是否玩過以往的《戰神》遊戲,都能上手玩本 作並從頭到尾理解劇情是很重要的事,而不用他們去了解奎托斯曾經的經歷。在這部作品 中我們不太想表達奎托斯的過去, 我們不會講述他過去在哪裡的細節。這些都是有目的的 ,為了能讓大家專注於今後將會發生的故事。之前我們做過「The Lost Pages」的推廣宣 傳,它能填補一點這兩者之間的空白。Cory還有很多沒有講的故事,比如奎托斯在希臘和 北歐神話之間的故事。 A9VG:遊戲有收集、經驗值、裝備打造、地圖等RPG元素,這麼做是為了可以延長游玩的 時間和重複遊玩的新鮮感嗎? Aaron:如果我們只是重複做以往那些帶有紅綠黃魂的《戰神》遊戲是不會有重大意義上 的改變的。我們已經看到了動作冒險遊戲類型的進化,這些進化來自《地平線零之曙光》 《刺客信條》《鬼泣》以及最初的《戰神》等等,我們也看到了能給玩家有很多選擇性的 遊戲。Cory希望打造一個能給人們帶來發現美妙情感的遊戲,一個奎托斯和阿特柔斯站在 鏡頭前的理由,一個玩家們能做出選擇的理由。於是 我們在探索遊戲的秘密時能獲得經驗 值和素材,然後通過它們來升級和獲得技能,這樣能為遊戲帶來更多的策略性。這些結合 起來就是我們希望加入RPG元素的原因。 A9VG:本作在遊戲節奏方面你們是怎麼把握的,比如探索場景、解謎和戰斗大概是怎樣的 比例? Aaron:設計師在設計遊戲時沒有一個特定的筆記本寫上了必須要設計幾個謎題,我們設 計這些探索和解謎都是出於某些原因和目的。比如在試玩中你和阿特柔斯需要解開一個旋 轉的輪盤來達到下個地點,設計這個謎題的目的是為了讓大家知道阿特柔斯可以翻譯解釋 北歐的文字。我們希望你在玩本作時就像是坐上了一輛過山車,你會有時間喘息並探索世 界,也會有敵人讓你喘不過氣。 A9VG:對於一些玩家來說,看到自己喜歡的英雄變老其實是一件很難過的事,你們在設計 本作中奎托斯的年齡和形象時是怎麼考慮的? Aaron:我們Santa Monica工作室隨著《戰神》系列在一起成長。曾經的《戰神》來自於 一群大學生年齡的製作者,我們可以做任何我們想要的東西。隨著這個遊戲類型的成長, 我們也在成長,很多製作組成員也有了自己的孩子,所以遊戲中也會出現很多來自我們真 實生活的體驗。。從奎托斯這個角色的進化方面來講,人們不再會將他和復仇、憤怒、眾神之中的怪物等詞 語聯繫起來。對Cory來說,奎托斯的進化對他來說最重要的是給了他一個“為什麼”—— 為什麼我要玩這個遊戲?為什麼我要再次得到一個憤怒的奎托斯?。我想,《戰神》的粉絲們已經做好了迎接這個改變的準備。人們在戰鬥時還能感到和以前 相同的感受,此外還能看到一個映射了自己影子的奎托斯。我們都希望能看到一個更好的 明天,所以奎托斯的成長是一件非常重要的事。 A9VG:新作中的戰鬥武器包括斧頭、盾牌空手戰鬥、兒子阿特柔斯和他的箭,是否還存在 其它不同的戰斗方式?過去會有一些其它的武器,比如錘子等等,這次為什麼只設計了一 把戰斧? Aaron:過去的作品我們給了玩家很多武器,但最後大多數人依然是只是用鏈刃,其它武 器大概就像是助興節目一樣。在本作的戰斧和弓背後有很大的學問,到時你在遊戲中就會 發現。另外 隨著升級武器和解鎖更多技能之後,你會覺得它們就像是新武器一樣,它們也 成為了人物角色的一部分。 對於新《戰神》來說,像以前那樣加入多種武器並不是最重要 的事,重要的是“對這個版本的遊戲來說怎樣才是最好的設計”以及“我們希望玩家感受 到什麼” 。 A9VG:北歐神話中有很多其它的武器,你們最後為何會選擇用戰斧來做為奎托斯的武器? 而不是類似雷神的錘子等等武器。 Aaron:沒錯,雷神的米約爾尼爾錘存在於北歐神話體系中。但是這個利維坦戰斧和遊戲 中故事有緊密聯繫,它和奎托斯的妻子有關聯,你會在遊戲中了解到它的起源和歷史。我 想你玩過遊戲後就會明白了。 A9VG:在系列此前的解謎過程中,跳躍也是一個相當重要的解謎過程,很多場景也都有高 低差的設計。本次取消了跳躍功能之後,在設計上有著怎樣的變化呢? Aaron:移除跳躍按鈕引起了很多爭論,這也讓開發團隊花了很長時間才適應,這和我們 想要呈現的鏡頭以及想要打造的戰鬥系統有關係。在遊戲中你想要跳躍的地方我們會讓你 按圓圈鍵跳過去, 在解謎方面不會有謎題會讓你覺得跳躍能幫助到你,當你玩了幾小時之 後也能感受到跳躍對戰斗方面毫無幫助。 我覺得戰鬥設計師做出這樣選擇的結果是希望奎 托斯腳踏實地施展招式動作,而不是依賴過去《戰神》的那套戰鬥機制。 A9VG:在遊戲中我看到奎托斯身後用來背著斧子的物品是系列經典的Ω 標誌,這是否意 味著一些希臘神話的元素會在本作中再次出現,比如希臘的神? Aaron: 我覺得這是他過去的一個寫照,在此前的遊戲預告片中你也能看見拿著鏈刃的奎 托斯印在一個花瓶上。我們不會忘記奎托斯來自哪裡,但是他在不斷向前看,本作講述的 故事不是關於那些過去的希臘神話元素,每件事都是有它的特定目的。 A9VG:新《戰神》在通關時是一個完整的故事嗎?它會留下一些更大的謎團等到以後去解 決嗎? Aaron: 目前我們還不太希望談論這些,這是個很棒的問題。 在25-35小時的遊戲流程中 你能體驗到很多內容,如果你在途中錯過了某些秘密的話,遊戲後期的機制會允許你重新 收集所有東西。這是一個有具體目標的任務,遊戲的目的地也很單一,遊戲的結局也很特 定。 A9VG:假如Cory把北歐神話的故事講述完之後,請問製作組是否還會考慮別的神話體系, 比如中國的神話? Aaron:Cory的腦海中有很多瘋狂的想法,他是一個很棒的故事講述者。這些世界上的神 話體係都是同時存在的,奧丁和眾神在斯堪的納維亞地區戰鬥,與此同時希臘、埃及、亞 洲的神也都存在於不同地區,這些給了我們很多機會來將這個系列帶向不同的方向。目前 這個故事章節只講述了奎托斯和他的兒子在北歐神話中的故事,我們不會去管這個世界上 其他地區的人和神在做什麼。至於今後這個系列會朝哪裡發展,Cory有很多龐大的想法, 希望他的想法能和你一樣吧。 A9VG:本作在PS4 Pro上有哪些增強? Aaron:我們主要談論的是4K 2160p、動態光源、HDR支持,這些是PS4 Pro和標準PS4上的 不同之處。主要就是畫面上會有一點區別。 A9VG:最後能請你對中國玩家說些話嗎? Aaron:從你的問題中可以感受到你是一個《戰神》的核心粉絲,我也一樣。當我第一次 拿起這個新《戰神》的時候,它的視角、戰鬥都讓我感到有些不習慣。不過在上手了之後 ,我就徹底忘記了鏈刃、跳躍鍵等等,我不再在乎這些東西是因為遊戲實在太好玩了。我 們相信《戰神》系列的核心粉絲在玩到本作之後依然能體驗到熟悉的感覺,我希望中國的 玩家也做好了體驗它的準備。
Re:[問題]買戰神同捆機訂單變這樣? 2018-03-26 00:12:40 https://www.ptt.cc/bbs/PlayStation/M.1522052322.A.535.html Askalaphos PlayStation 50 19 0 關於GAME休,戰神機搶搶樂預購,。系統異常處理方式 ~
Re:[情報]戰神PS4Pro同捆機 2018-03-30 01:26:01 https://www.ptt.cc/bbs/PlayStation/M.1522402323.A.857.html Askalaphos PlayStation 66 34 0 各通路,也即將開放的戰神機,搶搶樂預購活動了,。若還沒入手,想入坑購買的板大們,。可以參考看看 ~ 凡事都是機會!
Re:[情報]戰神PS4Pro同捆機 2018-04-03 08:52:38 https://www.ptt.cc/bbs/PlayStation/M.1522774721.A.75D.html Askalaphos PlayStation 48 27 0 大家好 ~。祝各位板大兒童節快樂啊 ~ !!。在這個重要的連假日子, 別忘了參加 ..。博客來戰神機,搶搶樂活動 ~ 預購時間,4月4日,早上10:00開始, 記得別睡過頭,忘了搶搶樂啊 ~ !!。【商品連結】 http://ez2o.co/4gHNV
[情報]<戰神>公開四種難度及沉浸模式 2018-04-11 03:58:05 https://www.ptt.cc/bbs/PlayStation/M.1523448249.A.1FD.html swallow753 PlayStation 69 43 0 來源: http://tinyurl.com/yajb7aqg http://tinyurl.com/y7z4fk2y 四種難度。Give Me A Story:。在沒有太多困難的情況下體驗故事,可以輕鬆玩到北歐神域的山頂,而在面對敵人的時候能 擁有更高的容錯率。。Give Me A Balanced Experience:。推薦大多數玩家的難度,給玩家相當平衡,不失挑戰性的遊玩體驗。。Give Me A Challenge:。難度更高,容錯率將更低,給擅長動作遊戲的玩家,及那些對自己有信心且曾經突破過 《戰神》系列前作困難模式的死忠粉絲們。。Give Me God of War:。這個難度是個留給那些喜歡光著身子跟北極熊肉搏的玩家們。官方並不光削弱克雷多斯的 能力並提高敵人的攻擊而已。他們還檢視了每一個敵人在戰鬥中的表現方式以及配置,並 且盡量將每一次戰鬥都調整成極為充滿威脅。 最重要的是,一旦選擇了這個模式,全程都 無法修改難度 ,所以這代表當你覺得這個難度已經超出你的能力範圍,你就必須要另外重 開一輪遊戲了。不要道歉,要變強。。除了難度之外,《戰神》還讓玩家可以自由調整遊戲的玩家介面,並推出了一個「沉浸模 式」,這模式幾乎把螢幕上的所有資訊介面都拿掉了。。沉浸模式:。這個模式將大量的 HUD 資訊通通移除,只留下一些極為必要的介面要素。要啟動這個沉浸 介面,玩家只要前往設定選單中,選擇 HUD 並將 HUD 模式調整成沉浸模式。而這個模 式隨時都能自由調整!。除此之外,官方還加入了一個額外的模式,讓玩家 可以自行選擇想要的介面要素,或關閉 一些不想看到的選項,也能調整成按下 DualShock 4 的觸控面板才會暫時顯示一下的方 式。這模式讓玩家能真正調整像是敵人血條、方向羅盤、敵人位置指標等介面要素,藉此 打造出各種獨特的遊玩體驗。

對全部文章進行斷句,並儲存斷句結果

#記錄每篇文章發稿的日期與時間,未來分析情緒用,另外分
gow_datetime = gow %>%
  select(artUrl,artDate,artTime) %>%
  arrange(artDate,artTime)
# 以全形或半形 驚歎號、問號、分號 以及 全形句號 爲依據進行斷句
gow_sentences <- strsplit(gow$sentence,"[。!;?!\\?;]")
# 將每句句子,與他所屬的文章連結配對起來,整理成一個dataframe
gow_sentences <- data.frame(
                        artUrl = rep(gow$artUrl, sapply(gow_sentences, length)), 
                        sentence = unlist(gow_sentences)
                      ) %>%
                      filter(!str_detect(sentence, regex("^(\t|\n| )*$")))

gow_sentences$sentence <- as.character(gow_sentences$sentence)

gow_sentences %>% head(10) %>% kable%>% 
  kable_styling(bootstrap_options = c("striped", "hover")) %>% 
  scroll_box(height = "300px")
artUrl sentence
https://www.ptt.cc/bbs/PlayStation/M.1520400392.A.916.html 來源: http://tinyurl.com/ycrl2d57 http://tinyurl.com/y8awjtz3 遊戲總監Cory Barlog在推特說明了,不會有需要花真錢的微交易
https://www.ptt.cc/bbs/PlayStation/M.1520400392.A.916.html 順便貼個台索的戰神Pro網址: http://tinyurl.com/y7kx4ps3 Limited Edition售價及內容物
https://www.ptt.cc/bbs/PlayStation/M.1520400392.A.916.html 2018年4月20日 NT$14,480
https://www.ptt.cc/bbs/PlayStation/M.1520400392.A.916.html ・PlayStation®4 Pro主機(CUH-7100系列、1TB1硬碟機) x 1 原創設計
https://www.ptt.cc/bbs/PlayStation/M.1520400392.A.916.html ・DUALSHOCK®4無線控制器 x 1 *原創設計
https://www.ptt.cc/bbs/PlayStation/M.1520400392.A.916.html ・PS4™遊戲《God of War™》Blu-ray Disc™ 版(包括免費特典下載內容*2:XP增幅、 鍛爐圓盾、光之精靈魂盾及暗影蟄伏盾) x 1
https://www.ptt.cc/bbs/PlayStation/M.1520400392.A.916.html ・免費追加內容下載卡*2:死亡誓言盔甲、流亡人守護者盾、Dark Horse漫畫下載版、美 術畫集下載版及動態主題 x 1
https://www.ptt.cc/bbs/PlayStation/M.1520400392.A.916.html ・免費PlayStation®Plus 3個月會籍之特典卡*3 x 1
https://www.ptt.cc/bbs/PlayStation/M.1520400392.A.916.html *2 期限至2021年4月20日
https://www.ptt.cc/bbs/PlayStation/M.1520400392.A.916.html *3 期限至2018年10月20日

文章內容斷詞

# 使用默認參數初始化一個斷詞引擎
# 先不使用任何的字典和停用詞
jieba_tokenizer = worker()

chi_tokenizer <- function(t) {
  lapply(t, function(x) {
    if(nchar(x)>1){
    tokens <- segment(x, jieba_tokenizer)
    # 去掉字串長度爲1的詞彙
    tokens <- tokens[nchar(tokens)>1]
    return(tokens)
    }
  })
}

#載入stop word
stop_words <- scan(file = "./dict/stop_words.txt", what=character(),sep='\n', 
                   encoding='utf-8',fileEncoding='utf-8')
## Warning in scan(file = "./dict/stop_words.txt", what = character(), sep =
## "\n", : 輸入連結 './dict/stop_words.txt' 中的輸入不正確
#載入negation word
negation_words <- scan(file = "./dict/negation_words.txt",
                       what=character(),sep=',',
                       encoding='utf-8',fileEncoding='utf-8')
#去除出現在 stop word 上的negation word
stop_words <- stop_words[!(stop_words %in% c(negation_words))] 
#進行斷詞,並計算各詞彙在各文章中出現的次數
gow_words <- gow_sentences %>%
  unnest_tokens(word, sentence, token=chi_tokenizer) %>%
  filter(!str_detect(word, regex("[0-9a-zA-Z]"))) %>%
  count(artUrl, word, sort = TRUE)

#計算每篇文章的字詞數
total_words <- gow_words %>% 
  group_by(artUrl) %>% 
  summarize(total = sum(n))

#加入斷詞結果中
gow_words <- left_join(gow_words, total_words)
## Joining, by = "artUrl"
# 去除stop word
gow_words_no_stopword <- gow_words %>% 
  filter(!word %in% stop_words)

gow_words_no_stopword %>% head(10) 
## # A tibble: 10 x 4
##    artUrl                                                word      n total
##    <fct>                                                 <chr> <int> <int>
##  1 https://www.ptt.cc/bbs/PlayStation/M.1524554131.A.81~ 遊戲     46  1759
##  2 https://www.ptt.cc/bbs/PlayStation/M.1524554131.A.81~ 戰神     42  1759
##  3 https://www.ptt.cc/bbs/PlayStation/M.1525437832.A.0B~ 遊戲     31  1291
##  4 https://www.ptt.cc/bbs/PlayStation/M.1548575083.A.47~ 戰神     29  1213
##  5 https://www.ptt.cc/bbs/PlayStation/M.1521606964.A.2C~ 遊戲     28  1045
##  6 https://www.ptt.cc/bbs/PlayStation/M.1525437832.A.0B~ 戰神     26  1291
##  7 https://www.ptt.cc/bbs/PlayStation/M.1524554131.A.81~ 世界     24  1759
##  8 https://www.ptt.cc/bbs/PlayStation/M.1550223022.A.07~ 得獎     24   309
##  9 https://www.ptt.cc/bbs/PlayStation/M.1525437832.A.0B~ 系列     23  1291
## 10 https://www.ptt.cc/bbs/PlayStation/M.1526285104.A.B5~ 奧丁     22   305

只刪除掉stop word的部分,斷詞分割的結果並不是很好,且有些較長的角色名稱被分開來,因此我們需要加入遊戲專用字典及遊戲評價字典,讓斷詞變得有意義。

加入自訂字典

gow_lexicon <- fread(file = "./dict/gow_lexicon.txt", 
                     header= F, sep = "\n" , encoding = "UTF-8")
colnames(gow_lexicon)[1] <- "word"
gow_lexicon <- as.character(gow_lexicon$word)
gow_lexicon
##  [1] "戰神"       "希臘"       "希臘神話"   "北歐"       "北歐神話"  
##  [6] "神話"       "諸神黃昏"   "諸神的黃昏" "動作遊戲"   "解謎遊戲"  
## [11] "解謎"       "探索"       "升級"       "角色技能"   "技能"      
## [16] "遊戲節奏"   "克雷多斯"   "奎爺"       "奎多斯"     "奎托斯"    
## [21] "奎格斯"     "阿特柔斯"   "菲"         "勞菲"       "弗蕾亞"    
## [26] "巴德爾"     "密米爾"     "米德加爾特" "約頓海姆"   "索爾"      
## [31] "曼尼"       "摩迪"       "奧丁"       "戰斧"       "斧頭"      
## [36] "充能"       "魔法"       "弓箭"       "箭矢"       "箭筒"      
## [41] "箭"         "盾牌"       "雙刀"       "雙刃"       "鎧甲"      
## [46] "咒術"       "護身符"     "飛行道具"   "符文"       "暈眩"      
## [51] "寶箱"       "芬布爾之冬" "打擊"       "連擊"       "親子關係"  
## [56] "親子"
game_co_pos_words <- fread(file ="./dict/game_company_positive.txt",
                           sep=',', header= F, 
                           stringsAsFactors = F, encoding='UTF-8')
game_co_pos_words <- data.frame(word=t(game_co_pos_words))
rownames(game_co_pos_words)<-c(1:89)
game_co_pos_words <- as.character(game_co_pos_words$word)
game_co_pos_words
##  [1] "支持"     "分享"     "喜歡"     "成功"     "真實"     "溫馨"    
##  [7] "肯定"     "好玩"     "想玩"     "很棒"     "有趣"     "不錯"    
## [13] "吸引"     "好評"     "感人"     "爆紅"     "突破"     "暢銷"    
## [19] "熱銷"     "創作"     "創作才能" "投資"     "神作"     "簡單"    
## [25] "專業"     "超棒"     "強"       "期待"     "興趣"     "營利"    
## [31] "超屌"     "真實"     "讚"       "支持"     "驕傲"     "推"      
## [37] "仔細"     "信任"     "值得"     "優秀"     "免費"     "最好"    
## [43] "冠軍"     "分享"     "可愛"     "合理"     "吸引"     "喜歡"    
## [49] "好玩"     "安全"     "完美"     "害怕"     "強烈"     "很棒"    
## [55] "情緒"     "想像"     "感謝"     "成功"     "才能"     "挑戰"    
## [61] "挑戰性"   "支持"     "有趣"     "流行"     "熱烈"     "瘋狂"    
## [67] "相信"     "真實"     "肯定"     "重要"     "開心"     "順利"    
## [73] "願意"     "驚嚇"     "享受"     "優美"     "細膩"     "技巧"    
## [79] "流暢"     "刺激"     "溫暖"     "成長"     "超讚"     "讚"      
## [85] "互動"     "佳"       "優質"     "驚奇"     "驚訝"
game_co_neg_words <- fread(file = "./dict/game_company_negative.txt",
                           header= F, sep=',', stringsAsFactors = F,
                           encoding='UTF-8')
game_co_neg_words <- data.frame(word=t(game_co_neg_words))
rownames(game_co_neg_words)<-c(1:89)
game_co_neg_words <- as.character(game_co_neg_words$word)
game_co_neg_words
##  [1] "抵制"     "封殺"     "盜版"     "禁止"     "批評"     "辱罵"    
##  [7] "憤怒"     "氣憤"     "暴怒"     "噁心"     "譴責"     "退款"    
## [13] "退費"     "退貨"     "業配"     "滾"       "下架"     "排斥"    
## [19] "氣憤"     "商業制裁" "制裁"     "批鬥"     "投訴"     "批評"    
## [25] "客訴"     "反對"     "問題"     "迫害"     "風險"     "警告"    
## [31] "討厭"     "諷刺"     "禁忌"     "困擾"     "垃圾"     "失去"    
## [37] "抱歉"     "放棄"     "不好"     "不爽"     "侮辱"     "傷害"    
## [43] "無聊"     "無趣"     "無味"     "沒趣"     "枯燥"     "乏味"    
## [49] "不可怕"   "不好玩"   "奇怪"     "單調"     "老梗"     "騙子"    
## [55] "負評"     "爭議"     "封殺"     "出戲"     "失望"     "無邏輯"  
## [61] "沒邏輯"   "失望"     "可憐"     "隨便"     "簡單"     "白痴"    
## [67] "白癡"     "嘲笑"     "嘲諷"     "噁心"     "誤植"     "困難"    
## [73] "惡意"     "放棄"     "手殘黨"   "手殘"     "吃鱉"     "崩潰"    
## [79] "惡夢"     "尖叫"     "嚇人"     "嚇到"     "嚇死"     "嚇"      
## [85] "怕.jpg"   "怕"       "怕爆"     "可怕"     "難玩"
#依照自訂字典進行斷詞
jieba_tokenizer = worker()

new_user_word(jieba_tokenizer, c(gow_lexicon,negation_words))
## [1] TRUE
# 進行斷詞,並計算各詞彙在各文章中出現的次數
gow_words <- gow_sentences %>%
  unnest_tokens(word, sentence, token=chi_tokenizer) %>%
  filter(!str_detect(word, regex("[0-9a-zA-Z]"))) %>%
  count(artUrl, word, sort = TRUE)

#計算每篇文章的字詞數
total_words <- gow_words %>% 
  group_by(artUrl) %>% 
  summarize(total = sum(n))  

#加入斷詞結果中
gow_words <- left_join(gow_words, total_words)
## Joining, by = "artUrl"
gow_words_no_stopword_add_lexicon <- gow_words %>% filter(!word %in% stop_words)
gow_words_no_stopword_add_lexicon %>% head(10) 
## # A tibble: 10 x 4
##    artUrl                                                word      n total
##    <fct>                                                 <chr> <int> <int>
##  1 https://www.ptt.cc/bbs/PlayStation/M.1524554131.A.81~ 遊戲     46  1745
##  2 https://www.ptt.cc/bbs/PlayStation/M.1524554131.A.81~ 戰神     42  1745
##  3 https://www.ptt.cc/bbs/PlayStation/M.1525437832.A.0B~ 遊戲     31  1273
##  4 https://www.ptt.cc/bbs/PlayStation/M.1548575083.A.47~ 戰神     29  1206
##  5 https://www.ptt.cc/bbs/PlayStation/M.1521606964.A.2C~ 遊戲     27  1030
##  6 https://www.ptt.cc/bbs/PlayStation/M.1525437832.A.0B~ 戰神     26  1273
##  7 https://www.ptt.cc/bbs/PlayStation/M.1524554131.A.81~ 世界     24  1745
##  8 https://www.ptt.cc/bbs/PlayStation/M.1550223022.A.07~ 得獎     24   307
##  9 https://www.ptt.cc/bbs/PlayStation/M.1525437832.A.0B~ 系列     23  1273
## 10 https://www.ptt.cc/bbs/PlayStation/M.1526285104.A.B5~ 奧丁     22   301

文字雲

 gow_words_no_stopword_add_lexicon %>%
  group_by(word)   %>%
  summarise(sum=sum(n)) %>%  
  arrange(desc(sum)) %>%
  top_n(10)     %>%
  ggplot(aes(word, sum)) +
  geom_col() +
  xlab(NULL) +
  ylab("出現次數")  +
  coord_flip()
## Selecting by sum

#找出出現頻率大於50個字
gow_words_no_stopword_add_lexicon %>%
group_by(word)   %>%
summarise(sum=sum(n))  %>%
filter(sum >=10)  %>%
wordcloud2::wordcloud2()

根據文字雲出現詞彙表示,玩家討論較多的議題是遊戲劇情及戰鬥系統,除了主要劇情之外,新角色與新敵人的名子也出現較多次,然而僅使用斷詞來判斷可能不會相當準確,因此我們接下來使用tfi-idf的方式來了解各詞彙在每篇文章中的重要程度。

計算 tf-idf

#計算每篇文章的字詞數
total_words <- gow_words %>% 
  group_by(artUrl) %>% 
  summarize(total = sum(n))

#加入斷詞結果中
gow_words <- left_join(gow_words, total_words)
## Joining, by = c("artUrl", "total")
gow_words_tf_idf <- gow_words %>%
  bind_tf_idf(word, artUrl, n)

gow_words_tf_idf %>% 
  group_by(artUrl) %>%
  top_n(10) %>%
  arrange(desc(artUrl))
## Selecting by tf_idf
## # A tibble: 2,161 x 7
## # Groups:   artUrl [156]
##    artUrl                           word       n total     tf   idf tf_idf
##    <fct>                            <chr>  <int> <int>  <dbl> <dbl>  <dbl>
##  1 https://www.ptt.cc/bbs/PlayStat~ 沒玩過     1    12 0.0833  2.75  0.229
##  2 https://www.ptt.cc/bbs/PlayStat~ 系列       1    12 0.0833  1.65  0.137
##  3 https://www.ptt.cc/bbs/PlayStat~ 非常感謝~     1    12 0.0833  5.05  0.421
##  4 https://www.ptt.cc/bbs/PlayStat~ 建議       1    12 0.0833  2.41  0.201
##  5 https://www.ptt.cc/bbs/PlayStat~ 是不是     1    12 0.0833  2.56  0.214
##  6 https://www.ptt.cc/bbs/PlayStat~ 這個       1    12 0.0833  1.24  0.104
##  7 https://www.ptt.cc/bbs/PlayStat~ 連貫       1    12 0.0833  5.05  0.421
##  8 https://www.ptt.cc/bbs/PlayStat~ 麻煩       1    12 0.0833  3.66  0.305
##  9 https://www.ptt.cc/bbs/PlayStat~ 劇情       1    12 0.0833  1.22  0.102
## 10 https://www.ptt.cc/bbs/PlayStat~ 請問       1    12 0.0833  2.22  0.185
## # ... with 2,151 more rows
gow_top6 = gow[sample(nrow(mtcars),6),] %>% 
  select(artUrl)
  head(gow_top6)
## # A tibble: 6 x 1
##   artUrl                                                    
##   <chr>                                                     
## 1 https://www.ptt.cc/bbs/PlayStation/M.1524193458.A.7E7.html
## 2 https://www.ptt.cc/bbs/PlayStation/M.1524220705.A.4BA.html
## 3 https://www.ptt.cc/bbs/PlayStation/M.1524275582.A.259.html
## 4 https://www.ptt.cc/bbs/PlayStation/M.1524160057.A.B54.html
## 5 https://www.ptt.cc/bbs/PlayStation/M.1520847721.A.E75.html
## 6 https://www.ptt.cc/bbs/PlayStation/M.1524257332.A.3E8.html
freq_by_rank <- gow_words %>%
  group_by(artUrl) %>%
  mutate(rank = row_number(),
         `term frequency` = n/total)

freq_by_rank %>%
  inner_join(gow_top6) %>%
  ggplot(aes(rank, `term frequency`, color = artUrl)) +
  geom_abline(intercept = -0.62, slope = -1.1, color = "gray50", linetype = 2) +
  geom_line(size = 1.1, alpha = 0.8, show.legend = FALSE) +
  scale_x_log10() +
  scale_y_log10()
## Joining, by = "artUrl"
## Warning: Column `artUrl` joining factor and character vector, coercing into
## character vector

由於我們採用隨機抽出六篇文章進行製作Zipf’s Law表,詞彙數量較少,圖中尾端長橫線可以看出,rank越高多出現的頻率是相同狀況越多,簡言之,可能是出現次數低,又跟本遊戲無關的自訂分詞,沒有切好,例如 碧血狂殺 出現了100次,拆成 碧血 100次 ,狂殺 100次 ,因為RANK是用列數去分,所以就變成,碧血100次 RANK 50 , 狂殺100次 RANK 51 …等,以此類推,X=RANK 越大,Y=頻率卻沒變,這類的狀況很多,最後就變成橫線,這樣並不能幫助我們了解玩家的遊戲體驗。

gow_words_tf_idf %>% 
  group_by(artUrl) %>%
  top_n(10) %>%
  arrange(desc(artUrl)) %>%
  ungroup() %>%
  count(word, sort=TRUE)
## Selecting by tf_idf
## # A tibble: 1,919 x 2
##    word     nn
##    <chr> <int>
##  1 玩家      9
##  2 難度      7
##  3 奎爺      6
##  4 下載      5
##  5 斧頭      5
##  6 武神      5
##  7 預購      5
##  8 戰鬥      5
##  9 之後      4
## 10 支線      4
## # ... with 1,909 more rows
gow_words_tf_idf %>%
  inner_join(gow_top6) %>%
  arrange(desc(tf_idf)) %>%
  mutate(word = factor(word, levels = rev(unique(word)))) %>%
  group_by(artUrl) %>%
  top_n(10) %>%
  ungroup %>%
  ggplot(aes(word, tf_idf, fill = artUrl)) +
  geom_col(show.legend = FALSE) +
  labs(x = NULL, y = "tf-idf") +
  facet_wrap(~artUrl, ncol = 2, scales = "free") +
  coord_flip()
## Joining, by = "artUrl"
## Warning: Column `artUrl` joining factor and character vector, coercing into
## character vector
## Selecting by tf_idf

根據上述tf-idf分析結果,可以得知玩家較關心的話題是戰鬥系統及遊戲內容,與文字雲的結果相符合,但是文章之間的關聯性較低,有些文章是討論遊戲之間的比較,會出現主題以其他遊戲為主,而戰神相關詞彙出現在該篇文章情況,而透過分詞不一定能看出玩家對於戰神這款遊戲的體驗感受如何,因此我們需要使用情緒辭庫幫助我們進行分析。

載入LIWC情緒辭庫

#情緒分析
#準備LIWC字典
liwc_p <- read_file("./dict/liwc_positive.txt")
liwc_n <- read_file("./dict/liwc_negative.txt")

#切出LIWC情緒的正負評價,製作對照表
positive <- strsplit(liwc_p, "[,]")[[1]]
negative <- strsplit(liwc_n, "[,]")[[1]]
positive <- data.frame(word = positive, sentiment = "positive",stringsAsFactors = F)
negative <- data.frame(word = negative, sentiment = "negative",stringsAsFactors = F)

LIWC_ch = rbind(positive,negative)

game_positive=data.frame(word=game_co_pos_words,sentiment=c("positive"))

game_negative=data.frame(word=game_co_neg_words,sentiment=c("negative"))

#將遊戲情緒併入LIWC情感詞庫
LIWC_ch = LIWC_ch %>%rbind(game_positive)%>%
            rbind(game_negative) %>%
            distinct(word,sentiment)
#情緒分析
gow_sentiment = gow_words_tf_idf %>%
  inner_join(LIWC_ch) %>%
  inner_join(gow_datetime) %>%
  arrange(artDate,artTime)
## Joining, by = "word"
## Joining, by = "artUrl"
## Warning: Column `artUrl` joining factor and character vector, coercing into
## character vector
head(gow_sentiment)
## # A tibble: 6 x 10
##   artUrl word      n total      tf   idf tf_idf sentiment artDate   
##   <chr>  <chr> <int> <int>   <dbl> <dbl>  <dbl> <chr>     <date>    
## 1 https~ 免費      3    57 0.0526  3.95  0.208  positive  2018-03-06
## 2 https~ 遊戲      2    57 0.0351  0.517 0.0181 positive  2018-03-06
## 3 https~ 死亡      1    57 0.0175  2.97  0.0521 negative  2018-03-06
## 4 https~ 信義      9   137 0.0657  4.36  0.286  positive  2018-03-07
## 5 https~ 可以      2   137 0.0146  0.732 0.0107 positive  2018-03-07
## 6 https~ 娛樂      1   137 0.00730 3.44  0.0251 positive  2018-03-07
## # ... with 1 more variable: artTime <time>
gow_sentiment %>%
  select(word,sentiment,n) %>%
  acast(word ~ sentiment,value.var = "n", fill = 0) %>% 
  wordcloud::comparison.cloud(random.order=FALSE,
                              colors = c("indianred3", "gray80"),
                              max.words = 108)
## Aggregation function missing: defaulting to length

圖中也有一些實際上並不代表該情緒的字詞,負面情緒像是戰鬥、攻擊、敵人等詞彙,這些詞彙出現在文章的次數雖多,但不一定表示該篇文章是負面的,例如:玩家在PTT版上發文尋求解決建議,或是分享戰鬥技巧時所使用的詞彙,而正面情緒中的可以、仔細、才能等詞彙,其情緒並不明確,如果單看每個詞在途中出現的次數,並不能完全了解玩家發文的實際狀況如何(尋求協助、提供遊戲資訊、個人遊玩心得等)。

Allsentiment=gow_sentiment %>% mutate(line = 1:nrow(gow_sentiment)) %>%
  count(artDate, sentiment) %>%
  spread(sentiment, nn, fill = 0) %>%
  mutate(sentiment = positive - negative)
ggplot(Allsentiment, aes(artDate, sentiment, fill = 0)) +
  geom_col(show.legend = TRUE) +
  ylab("情緒值")+
  xlab("發文日期")  

由圖中可以看出2018四月到2018七月討論的最熱烈,這段時間文章中正面情緒者大於負面情緒者較多,且在遊戲發售後開始上升,遊戲討論熱度大約維持兩個月,討論熱度才逐漸下降,通常在這個時間點已經有遊戲攻略資訊,因此玩家較不會到討論版上詢問遊戲相關問題;去年十月左右遊戲大作「碧血狂殺2」發售後,戰神系列的討論度降低許多,直到今年年初才開始有較多的討論度,通常在與其他遊戲比較時,便會再次有討論熱度。

#找出出現頻率大於10個字
gow_words_wc <- gow_words %>%
inner_join(gow_top6)   %>%
group_by(word)   %>%
summarise(sum=sum(n))  %>%
filter(sum >=2)  %>%
wordcloud2::wordcloud2()
## Joining, by = "artUrl"
## Warning: Column `artUrl` joining factor and character vector, coercing into
## character vector
saveWidget(gow_words_wc, "gow_words_wc.html", selfcontained = F)
img <- webshot("gow_words_wc.html", "wc1.png", delay=5)
## PhantomJS not found. You can install it with webshot::install_phantomjs(). If it is installed, please make sure the phantomjs executable can be found via the PATH variable.

使用結巴分詞之後,我們選擇隨機抽樣的六篇文章製作文字雲,會看到像是討論角色、遊戲購買、操作系統等資訊,討論內容過於分散,可能因為篇數不夠多,分詞效果並不好。

bigram_tokenizer <- function(t) {
 lapply(t, function(x) {
    if(nchar(x)>1){
      tokens <- segment(x, jieba_tokenizer)
      bigram<- ngrams(tokens, 2)
      bigram <- lapply(bigram, paste, collapse = " ")
      unlist(bigram)
    }
  })
}
  gow_bigram = gow_sentences %>%
  arrange(artUrl) %>%
  unnest_tokens(bigram, sentence, token = bigram_tokenizer) %>%
  filter(!str_detect(bigram, regex("[0-9a-zA-Z]"))) %>%
  separate(bigram,c("word1","word2")) %>%
  filter(!(word1 %in% stop_words) 
         ,!(word2 %in% stop_words))

  head(gow_bigram)
##                                                       artUrl word1 word2
## 1 https://www.ptt.cc/bbs/PlayStation/M.1520400392.A.916.html  遊戲  總監
## 2 https://www.ptt.cc/bbs/PlayStation/M.1520400392.A.916.html  推特  說明
## 3 https://www.ptt.cc/bbs/PlayStation/M.1520400392.A.916.html  需要  花真
## 4 https://www.ptt.cc/bbs/PlayStation/M.1520400392.A.916.html  花真    錢
## 5 https://www.ptt.cc/bbs/PlayStation/M.1520400392.A.916.html    微  交易
## 6 https://www.ptt.cc/bbs/PlayStation/M.1520400392.A.916.html  順便  貼個
  gow_bigram_1= gow_bigram %>%
  count(word1,word2,sort = T) %>%
  filter(!(word1==" "|word1=="") ,!(word2 ==""| word2 ==" "))
  
  head(gow_bigram_1)
## # A tibble: 6 x 3
##   word1 word2     n
##   <chr> <chr> <int>
## 1 女    武神    127
## 2 戰神  難度     59
## 3 新    戰神     46
## 4 開放  世界     31
## 5 不    知道     22
## 6 都    會       22
gow_bigram_1 %>%
  filter(n >=10) %>%
  graph_from_data_frame() %>%
  ggraph(layout = "fr") +
  geom_edge_link(aes(edge_alpha = n, edge_width = n), edge_colour = "cyan4") +
  geom_node_point(size = 5) +
  geom_node_text(aes(label = name), repel = TRUE,
                 point.padding = unit(0.2, "lines"))   

由圖中可看出,”女“跟”武神“ 一起出現次數高達一百多次,由此可判斷“女武神”為一個辭彙,實際上女武神是遊戲中重要的敵人,需要打敗九位女武神才能推進遊戲劇情,由於女武神不容易打敗,因此相關戰鬥技巧的討論度很高,同時出現次數多、分析上相關性也會比其他詞彙高出許多。

#接著設定ngrams=3跟4,看看分詞效果
gow_bigram_3 = gow %>% 
  unnest_tokens(trigram,sentence,token="ngrams",n=3) %>%
  filter(!str_detect(trigram, regex("[0-9a-zA-Z]"))) %>%
  separate(trigram,c("word1","word2","word3")) %>%
  filter(!(word1 %in% stop_words) 
           ,!(word2 %in% stop_words) ,
            !(word3 %in% stop_words)) %>%
 count(word1,word2,word3,sort = T)

gow_bigram_3 %>%
  filter(n >=5) %>%
  graph_from_data_frame() %>%
  ggraph(layout = "fr") +
  geom_edge_link(aes(edge_alpha = n, edge_width = n), edge_colour = "cyan4") +
  geom_node_point(size = 5) +
  geom_node_text(aes(label = name), repel = TRUE,
                 point.padding = unit(0.2, "lines"))   

玩家討論劇情或遊操作時,會寫出完整角色名稱或綽號,因此當角色人名拆成數個字時,其相關性仍然很大,其中也出現其他遊戲名稱,在原始資料中可能混雜了其他遊戲討論的文章。

gow_bigram_4 = gow %>% 
  unnest_tokens(trigram,sentence,token="ngrams",n=4) %>%
  filter(!str_detect(trigram, regex("[0-9a-zA-Z]"))) %>%
  separate(trigram,c("word1","word2","word3","word4")) %>%
  filter(!(word1 %in% stop_words) 
         ,!(word2 %in% stop_words) ,
         !(word3 %in% stop_words),
         !(word4 %in% stop_words)
  ) %>%
  count(word1,word2,word3,word4,sort = T)  

gow_bigram_4 %>%
  filter(n >=2) %>%
  graph_from_data_frame() %>%
  ggraph(layout = "fr") +
  geom_edge_link(aes(edge_alpha = n, edge_width = n), edge_colour = "cyan4") +
  geom_node_point(size = 5) +
  geom_node_text(aes(label = name), repel = TRUE,
                 point.padding = unit(0.2, "lines"))

圖中除了角色人名有相關性高的狀況外,也出現前幾張圖所沒有的關聯,像是戰神與無傷,許多玩家會以打王但沒有損血(無傷)作為目標,並且分享如何在戰鬥時閃避敵人攻擊、如何選擇裝備等資訊,因此這兩個詞的相關性就會提升。

jieba_tokenizer = worker(user = "./dict/gow_lexicon.txt",stop_word ="./dict/stop_words.txt" )
new_word_gow_lexicon = c("女武神","斯巴達之怒","米爾密","盧恩符文","盧恩符","特柔斯"
                         ,"尼福爾海姆","穆斯貝爾海","希格露恩")
new_user_word(jieba_tokenizer, c(new_word_gow_lexicon,gow_lexicon,negation_words))
## [1] TRUE
new_gow_words <- gow_sentences %>%
  unnest_tokens(word, sentence, token=chi_tokenizer) %>%
  filter(!str_detect(word, regex("[0-9a-zA-Z]"))) %>%
  count(artUrl, word, sort = TRUE)

new_gow_words_ws <- new_gow_words %>%
  filter(!word %in% c("遊戲","戰神") ) %>%
  group_by(word) %>%
  summarise(sum=sum(n)) %>%
  arrange(desc(sum)) %>%
  wordcloud2()

saveWidget(new_gow_words_ws, "new_gow_words_ws.html", selfcontained = F)
img <- webshot("new_gow_words_ws.html", "wc1.png", delay=5)
## PhantomJS not found. You can install it with webshot::install_phantomjs(). If it is installed, please make sure the phantomjs executable can be found via the PATH variable.

女武神相較於其他角色更容易被討論到,主要是女武神共有九位(八位加一位女王),依照遊戲劇情必須要打敗她們,如何選擇裝備或需要注意的戰鬥模式就變成玩家的主要話題,再來才是劇情與遊戲內容等話題。

gow_bigram_graph <- gow_bigram_1 %>%
  filter(n >10)%>%
  graph_from_data_frame()

ggraph(gow_bigram_graph,layout = "fr") +
  geom_edge_link() +
  geom_node_point() +
  geom_node_text(aes(label = name),vjust = 1,hjust =1,
                 family = "Heiti TC Light")
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x,
## x$y, : font family not found in Windows font database

a <- grid::arrow(type="closed",length=unit(.15,"inches"))
ggraph(gow_bigram_graph,layout = "fr") +
  geom_edge_link(aes(edge_alpha=n),show.legend = F,
                 arrow=a,end_cap = circle(.07,'inches')) +
  geom_node_point(color="lightblue" ,size =5) +
  geom_node_text(aes(label=name),vjust=1,hjust=1,
                 family = "Heiti TC Light")+
  theme_void()
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x,
## x$y, : font family not found in Windows font database

新→戰神→難度的關係中可以得知,遊戲的難易程度一直是許多玩家關心的事,不僅需要豐富的遊戲內容,亦需要考慮遊戲本身的難易程度是否具備挑戰性,讓玩家可以盡情體驗遊戲內容。

gow_word_pairs = new_gow_words %>%
  pairwise_count(word,artUrl,sort=T)

gow_word_pairs
## # A tibble: 3,562,372 x 3
##    item1 item2     n
##    <chr> <chr> <dbl>
##  1 戰神  遊戲     93
##  2 遊戲  戰神     93
##  3 覺得  戰神     64
##  4 戰神  覺得     64
##  5 真的  戰神     59
##  6 戰神  真的     59
##  7 一個  戰神     55
##  8 戰神  一個     55
##  9 看到  戰神     51
## 10 戰神  看到     51
## # ... with 3,562,362 more rows
gow_word_pairs %>%
  filter(n >=20) %>%
  graph_from_data_frame() %>%
  ggraph(layout = "fr") +
  geom_edge_link(aes(edge_alpha = n, edge_width = n), edge_colour = "cyan4") +
  geom_node_point(size = 5) +
  geom_node_text(aes(label = name), repel = TRUE,
                 point.padding = unit(0.2, "lines")) 

根據共線圖,遊戲一詞與下半部的詞彙相關性高,包含遊戲表現、劇情任務、技能裝備等詞彙。

#使用皮爾森相關係數
gow_word_cors = new_gow_words %>%
  group_by(word) %>%
  filter(n() >= 5) %>%
  pairwise_cor(word,artUrl,sort=T)

set.seed(2000001)
gow_word_cors %>%
  filter(!correlation %in% 'Inf', correlation > .60) %>%
  graph_from_data_frame() %>%
  ggraph(layout = "fr") +
  geom_edge_link(aes(edge_alpha = correlation) , show.legend = F) +
  geom_node_point(color="lightblue" ,size =5) +
  geom_node_text(aes(label = name), repel=T)+
  theme_void()

根據下圖可以了解玩家討論主題多半圍繞在劇情及神話(上半部)與戰鬥系統操作(下半部),遊戲操作所使用的詞彙相關性特別高,表示玩家在PTT上多在討論操作技巧與裝備問題,如何配戴裝備會影響角色攻擊與防禦的程度,各個敵人的攻擊模式與應對方法,因此玩家會藉由討論版來交流裝備配戴、戰鬥的心得;其中,眼力與考驗兩個詞具有關聯性,由於遊戲中有許多隱藏很隱密的收集物,玩家需要花點時間找尋物品位置,因此會有玩家討論收集物的藏匿地點。

結論

根據上述的圖表可以得知,討論資料如果單純使用結巴分詞時,需要配上適當的NGRAM,才能更明顯地找出詞與詞的共現性與相關性,進而更容易調整分詞上的錯誤,讓分析結果變得更正確,而討論文章的情緒反應通常較為明確。

此次分析文章中發現,玩家對GOW大部份都是抱持正面評價,討論話題多圍繞在「遊戲攻略」、「劇情內容」,認為遊戲是具有挑戰性,而熱烈的討論期也在剛發行後的2018/4~2018/07之間比較熱烈,由此可見一個此類遊戲的週期,大概三個月內網路就會有完整的攻略,所以玩家之後就沒特別討論了,玩家再次回味遊戲內容,或是跟其他遊戲比較時,才會在文章中被提到。

討論版文章的分析結果,與該遊戲作品於各大電玩遊戲論壇中的討論內容相當接近,並獲得玩家的肯定,遊戲內容開發專注於深度劇情與戰鬥系統上,將會對提升遊戲銷量有所幫助。