• 沒有找到結果。

間選出較佳的句子,當作摘要。[21]提出了兩種分群式文件摘要器(clustering text summarizer)來抽取出文件中重要的語句產生摘要。第一個方法是使用自我組織映射 (Self-organizing Map)技術,透過此方法將文件句子做分群,再從各群之中挑選最佳 的句子當作摘要。第二個方法,結合潛在語意分析(Latent Semantic Analysis)與自我 組織映射技術,透過潛在語意分析將文件中的句子隱含的語意挖掘出來,將分析後的句 子透過自我組織映射進行分群,再從各群之中挑選最佳的句子當作摘要。

[21]的研究中,挑選句子之前必須決定各群挑選的優先權,優先權的決定方式則為 將每一群的所有句子分數做加總,總分數越高則該群的優先權越高。句子分數的計算方 式則是根據「句子的關鍵字含量」、「句子在文件中的位置」、「句子的標題含量」、「句子 的 TF-IDF(term frequency – inverse document frequency)強度」來決定之。本論文 參考此處設計計算句子分數以及挑選句子的方法。不過在各群優先權的挑選部分,由於

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

18

們主要目標是避免重複挑選相似句子,我們主要是希望分群方法能將句子分門別類,再 依預設好的分類挑選出前 20 個具有代表性的句子,避免重複挑選出相似句子並非我們 主要目標。我們的想法是,如果類似的句子一再被玩家討論,則該句子應該具有代表性。

[21]其中第一個自我組織映射語句摘要器系統,透過自我組織映射技術將文件句子 分群,再從各群之中挑選最佳的句子當作摘要。整個 SOM(Self-organizing Map)摘要器 包 含 三 個 階 段 , 分 別 為 (1) 前 置 處 理 (Pre-processing) , (2) 概 念 分 群 (Concept Clustering),(3)語句挑選(Sentence Selection),圖 9 為系統架構圖。我們研究主要 參考此架構圖。

圖 9、SOM 摘要器的流程[21]

由於論壇文章與新聞文章的特性並不同,本論文所採用的摘要系統架構是分析論壇 文章之後,針對其特性參考並混和了幾種一般文章摘要器的做法,部分過程修改或是重 新定義以符合對論壇多篇文章擷取摘要的特性。

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

19

3 章 初步資料分析

3.1 資料

巴哈論壇討論板有許多不同遊戲的看板,每個看板有看板首頁、板規、文章列表、

精華區、作品介紹。我們實驗資料來源為 LOL 哈拉板文章列表裡的文章。文章列表底下 有許多分類,作者撰文時可以自由選擇分類,板務人員有權力將一篇文章重新分類。

圖 10 中以置頂文章:【討論】板務建議專區為例,第一欄為分類,第二欄為標題,

每個標題為一個討論串,後面… 4 5 6 代表的是該討論串有 6 頁,點數字可以跳轉至該 頁。第三欄 GP 類似 FB 的讚(LIKE),代表此討論串共有 50 個 GP;第四欄 111 代表此討 論串有 111 人回覆,包含本文此討論串共有 112 篇文章,人氣就是點閱數;第五欄最後 發表的日期時間為最後一篇回覆,之後的文章編輯並不會更改此數值。

圖 10、巴哈姆特英雄聯盟哈拉板截圖

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

20

一個討論串點開後顯示的畫面如下圖,一個討論串裡討論的主題通常不會偏離太遠,

除非是刻意行為。若偏離主題太遠,管理員發現會將之刪除。以圖 11 為例,是標題為

「新手如何上手」的討論串,左圖為該討論串的 1 樓(第一篇文章,通常為開始此標題 的第一篇文章,除非該篇文章被刪除)、右圖為 2 樓。我們的實驗會將此討論串視為兩 篇文章,且屬於同一討論串。

圖 11、哈拉板討論串說明

由於巴哈遊戲論壇的文章量非常多,因此我們會需要網路爬蟲(crawler)將欲分析 處理的資料下載,讓系統得以快速地從本地端資料庫取出資料並進行分析。

網路爬蟲是一種自動化瀏覽網路的程式,被廣泛用於搜尋引擎,以取得或更新這些 網站的內容和檢索方式。其原理為爬蟲會始於一張稱作種子的統一資源位址(URLs)清單,

當爬蟲存取一個 URL,會在他執行的過程中複製、儲存網站上的資訊,同時間識別出頁

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

21

面上所有的超連結,並將它們寫入一張待訪清單,即所謂爬行疆域(crawl frontier)。

此疆域上的統一資源位址將被按照一套迴圈存取14

於 2013 年 5 月 29 號使用 HTTrack Website Copier 軟體針對巴哈論壇的英雄聯盟 看板進行複製,包含文章列表各分類下的文章以及精華區,共有 24,022 個 html 檔案。

每個檔案即為一個網頁頁面,一個頁面擁有不一定數量的文章。我們需要將文章內容以 及實驗過程中或許會參考到的數據擷取出來並儲存至資料庫,以便之後的分析。

接著使用 php 語言,讀取 html 檔並利用正規表示式對於 html 特定標籤進行擷取,

最後存入 MySQL 資料庫15。扣除掉重複的資料剩下 27,669 筆資料。每一筆資料均為一篇 文章,其資料表欄位及其說明如表 1 所示:

14 https://zh.wikipedia.org/wiki/網路蜘蛛

15 網頁擷取可使用 python 的 BeautifulSoup 套件更為方便

Content_no_tag 不含任何 html 標籤之文章內容

Content_br 留下 html 換行符號之文章內容 GP 該篇文章得到的「好」的點數 BP 該篇文章得到的「不好」的點數

ParentArticleID 該篇文章所屬討論串之 ID (網頁上不會呈現,透過 html 內容解析) ParentArticleFloor 該篇文章所屬討論串之樓層

Datetime 該篇文章最後編輯日期、時間

圖 12 為儲存的 html 以瀏覽器開啟的畫面,html 呈現畫面與 MySQL 資料表欄位的對 應圖。ArticleID、ParentArticleID 並不會在網頁上呈現,僅能透過 html 內容解析取 得。Content 內容取得後,會含有大量 html tag,因此另外儲存了不含任何 html 標籤 文章內容及僅留下<br>標籤之文章內容。之所以留下<br>標籤,是由於在遊戲論壇中通 常以換行代表一個句子,而非使用句號。

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

23

圖 12、文章與資料表欄位建立

由於實驗的目標是文章整合器,我們打算以新手為出發點,以對這個遊戲毫無所知 為前提,希望能夠提供使用者較為有價值的資訊。為了提供以上資料,我認為最便利的 方式即為攻略,因此我們參考國外大型攻略網站的呈現方式及內容,作為整合器最後輸 出的參考。

接著,我們分析論壇文章,希望從分析結果能得到一些假設,並以那些為基礎繼續 設計實驗方法。為了分析文章之特徵,建立數個類別的關鍵字資料庫如表 2.所示。其關 鍵字選取的準則為:若為討論玩法、心得走向的文章,會使用到的主題相關字詞,例如:

裝備、英雄名稱以及遊戲中其他會使用到的用詞。由於玩家於論壇中發表的文章可能會

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

26

個討論串中的 7.52%。從圖 13 可以看出討論串的文章數分布可以看出來玩家僅對於少數 的文章會有較高的發言參與度,其餘約 92.48%的討論串文章數不滿 50 篇。

圖 13、討論串文章數排名

文章數前三高(文章數分別為 512, 374, 344)的討論串均是以電競比賽為主題,三 場比賽在英雄聯盟的賽事規模都算大,且比賽也有配合實況播出。不過考慮到賽事、電 競隊伍、選手資訊更為複雜,暫時未將此部分做為實驗對象。

接著我們觀察文章數前 20 名的討論串,玩家有興趣的主題依序是裝備、英雄、戰 術,最後是技能、地圖,結果如表 4 所示。

0 100 200 300 400 500

1 60 119 178 237 296 355 414 473 532 591 650 709 768 827 886 945 1004 1063 1122 1181 1240 1299 1358 1417 1476 1535 1594 1653 1712

討論串文章數分布

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

27

表 4、前二十高文章數之討論串 與 關鍵字 間的關聯 有裝備關鍵字出現的討論串數 20 / 20 有技能關鍵字出現的討論串數 11 / 20*

有英雄名稱關鍵字出現的討論串數 5 / 20 有戰術關鍵字出現的討論串數 5 / 20 有地圖關鍵字出現的討論串數 1 / 20

*由於技能關鍵字分別為 q、w、e、r,出現機率太高,透過人工篩選後為 1 篇

綜合“關鍵字出現次數”及“玩家有興趣的主題”的結果,我們將會由“英雄”的 角度出發,然後按優先度依裝備、戰術、技能呈現整合器的輸出結果。會以“英雄”為 分析主軸,其中也是因為英雄聯盟遊戲的特性。該遊戲每次都需要和其他四位玩家組隊 並與另外五位敵對玩家競賽,而每位玩家可以操縱的單位即是一名“英雄”。

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

28

4 章 設計與實作系統

本系統之設計參考各文獻,架構主要參考[21]設計,大致可分為三階段:1. 資料前 處理 2. 分群 3. 句子挑選。詳細方法的說明及其參考文獻將於本章各節詳述。簡略示 意圖及流程如圖 14 所示:

圖 14、系統簡略流程示意圖

系統流程(對應圖中橢圓形步驟):

1. Term Extraction:從 MySQL 資料表中取出標題或內文含有欲查詢英雄的文章,並將 標題視為文章的第一個句子。將所有文章斷句,斷句的依據是“<br>”及“。”,

將句子利用“結巴”分詞。計算每個詞的 TF-IDF,僅保留前 33%的詞以進行接下來 的分析。

2. Identify Sentence:僅保留 8 個詞以上的句子,並去掉停用字。

3. Sentence representation -> Sentence Vector:建立句子向量空間,以矩陣儲存,

矩陣為 K-means 分群法之輸入。並計算每個句子的分數。

4. K-means Clustering:用 K-means 分群法對句子分群。

5. Calculate Cluster Total Score:計算群的分數,以決定群是屬於哪類。

6. Cluster Priority:依預先設定好的群優先權排序結果呈現順序。

7. Sentence Selection:再重新計算每一群中的句子分數,以挑選跟該群特徵較為相 似的句子。最後各群選前 20 高分的句子作為其輸出。

詞彙(word 或 token)是最小且有意義的語言單位,任何語言處理的系統都必須要先

央研究院漢語平衡語料庫詞集及詞頻統計(Word List with Accumulated Word Frequency in Sinica Corpus 3.0)」17加入停用字集合。其為五百萬詞(token),帶有標記的中央 研究院平衡語料庫所計算出的詞頻統計資料。根據每一個詞項在五百萬的語料庫中出現

16 https://github.com/fxsjy/jieba

17 http://www.aclclp.org.tw/doc/wlawf_abstract.pdf

現的頻率高即 TF(Term Frequency)高,並且在其他文章中很少出現即 IDF(Inverse Document Frequency)也高,則認為此詞具有很好的類別區分能力18。在資訊檢索領域中,

常用來評估一個詞彙對於一個文件集的重要程度[17]。這邊我們先計算欲分析文件集所

18 https://zh.wikipedia.org/wiki/TF-IDF

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

32

保持不變,𝐷為與某一主題相關的文章。TF 修改設計如(4)式:

𝑡𝑓𝑖 = 𝑓𝑟𝑒𝑞𝑖

∑ 𝑓𝑟𝑒𝑞𝑘 𝑘 (4)

會對 TF 進行修改是因為在本研究若採用 TF 原始的定義,則需要先從每篇文章擷取 部分字彙建立分析字庫,但是在論壇裡並非每篇文章素質都足夠,例如字數過少、與主

會對 TF 進行修改是因為在本研究若採用 TF 原始的定義,則需要先從每篇文章擷取 部分字彙建立分析字庫,但是在論壇裡並非每篇文章素質都足夠,例如字數過少、與主

相關文件