• 沒有找到結果。

學年度專題製作期末報告 中華大學資訊工程學系 100

N/A
N/A
Protected

Academic year: 2022

Share "學年度專題製作期末報告 中華大學資訊工程學系 100"

Copied!
22
0
0

加載中.... (立即查看全文)

全文

(1)

1

中華大學資訊工程學系

100 學年度專題製作期末報告

網際網路熱門搜尋偵測-遊戲產業為例

專題生:B09602007 吳中峻 B09602090 陳雋峰 指導教授:周智勳 教授

專題編號: PRJ2011-CSIE-10035

執行期間 民國 100 年 3 月至 101 年 6 月

(2)

2

目錄

一、 專題簡介 3

二、 研究方法及步驟 4

(1)前處理 6

(2)特徵提取 7

(3)分類測試 12

三、 成果 13

四、 心得 15

五、 致謝 21

六、 參考文獻 22

(3)

3

一、 專題簡介:

利用網際網路來搜尋資料,在現代社會是相當普及的行為,在這 份專題中,希望能做到對網際網路蒐集來的遊戲相關文件與資料,進 行自動分類,增加搜尋的準確度與效率。

網際網路在現今的社會中,扮演著不可或缺的角色,大量的訊息 與資料在網際網路中,如何有效的利用網際網路進行資料搜尋,這份 專題,希望能對大量的資料進行有效率的處理與分析,增加搜尋的效 率。

這份專題主要鎖定在遊戲領域方面,首先在網際網路中收集遊戲 領域相關資料,這些資料分為五大類別,對各類別的資料進行讀入的 動作,同時將資料內的框架去除留下文字部分,文字部分經過斷詞處 理,去掉標點符號以及虛詞後,對處理後的資料作 n-gram , n-gram 後的詞透過下面四項指標 term frequency , document frequency , conformity , uniformity ,算出相關數值後,透過數值分析得出各 類別的關鍵字,即可利用關鍵字對文件進行自動分類,將文件放入正 確的類別中。

(4)

4

二、 研究方法及步驟

圖表 1

訓練用 HTML 資料

讀入資料

去 HTML 框架

去標點符號 標點符號

編碼表

N-gram rule 斷詞

計算指標

前處理

特徵提取

關鍵字分析

各類別關鍵字資料

測試資料

計算資料相似度

分類

分類後結果 分類測試

(5)

5

本次專題的研究方法及步驟如圖表 1 文件資料首先經由前處 理,將 html 格式的資料中,屬於網頁框架的部分去除留下文字部分,

斷詞將標點符號以及虛詞去除,同時經 n-gram 演算法處理後,配合 詞庫選出關鍵字的候選詞,關鍵字分析經四項關鍵字評估指標選出合 適的關鍵字,新進來的資料透過這些關鍵字便可自動分類到合適的資 料類別。

文件資料- 事先準備分類過的文件資料,讓程式獲得各類別的基 礎資料,進而對未知的新資料進行自動分類處理。

下圖為剛讀入的 HTML 資料

(6)

6

(1) 前處理

去 HTML 框架:將 HTML 文件中的數字、表格與框架移除,留下文字內 容,處理後的文件如下圖所示。

去除標點符號:透過讀入的標點符號編碼表,將標點符號、虛詞、特 殊字元去除,處理後的文件如下圖所示。

(7)

7

(2) 特徵提取

斷詞:在文件資料經過前處理後,文件中只剩下文字資料,對於英文 而言,空白以及標點符號 能有效的區分出每一個詞彙,但是對於中 文來說卻沒有明顯的一個分界可用於區分每一個詞彙,因此需要有一 個有效的機制來對中文句子進行分析處理來區分每一個詞彙,在斷詞 方面有很多的演算法廣為使用, long word priority rule , maximum matching rule , PAT tree-based rule , probabilistic learning rule and the n-gram rule ,在這份專題中使用的是 n-gram rule , n-gram rule 的運作方式如下

Step 1.刪除標點符號。

Step 2.刪除虛詞,在這份專題中虛詞的範例如圖表 TABLE2。

Step 3.透過 n-gram rule 整理出 2-gram 3-gram 4-gram 的詞彙,

並刪除只出現一次的詞彙。

Step 4.保留 2-gram 詞彙, 3-gram 4-gram 透過詞庫提取需要的詞 彙。詞庫中包含 43028 個 3-gram 與 4-gram 的常用詞彙。

(8)

8

下圖為經處理後 2-GRAM、3-GRAM、4-GRAM、5-GRAM、6-GRAM 資料。

(9)

9

將各個做 N-GRAM 後僅出現一次的詞去除,並計錄出現過次數,處理 後的文件如下圖所示。

(10)

10

關鍵字分析:處理後留下的關鍵字候選詞,經由下方四個演算法算出 四個關鍵字特徵值:

:計算該詞在該類別中出現的頻率相較於在所有類別中的比例。

:計算該詞在該類別中文件內含有該詞的比例相較於該詞在所有類別 文件中的比例。

:計算該類別文件中該詞出現次數比例相較於在該類別 中其他文件出現次數的比例。

Conformity – 計算該類別文件中含有該詞的數量相較於所有類別 文件中含有該詞的數量。

(11)

11

根據四個關鍵字特徵值演算法選出各類別代表關鍵字如下圖所示。

角色扮演類: 射擊類: 動作類: 策略模擬類: 運動類:

(12)

12

(3) 分類測試

測試資料經前處理後如下圖所示。

計算相似度:計算文章在各類別出現的關鍵字數量,如下圖所示。

關鍵字的出現數量分別為:

角色扮演類:57 射擊類:8 動作類:15 策略模擬類:115 運動類:31

從上面關鍵字的出現數量可以看出,策略模擬類的關鍵字出現數 量最多有 115 次,因此最後將此文件分類到策略模擬類這個類別。

(13)

13

三、 成果

測試環境

作業系統:Microsoft Windows 7 CPU:Intel i5

記憶體:8G 硬碟:320G

開發環境:Visual Stuido 2010 開發語言:C++

訓練用文章量為各類別 10 篇,總共 50 篇。

以下為另外 50 篇文章讀入後分類的結果:

網頁分類\判定結果 角色扮演類 射擊類 動作類 策略模擬類 運動類

角色扮演類 4 0 0 0 11

射擊類 1 6 0 0 4

動作類 1 0 6 0 1

策略模擬類 0 0 0 4 6

運動類 0 0 0 0 6

角色扮演類 射擊類 動作類 策略模擬類 運動類 總數

讀入文章數量 15 11 8 10 6 50

判定正確數量 4 6 6 4 6 26

判定正確率 26.67% 54.55% 75.00% 40.00% 100.00% 52.00%

(14)

14

分類判定時,在誤判的情況下總是會將文章歸類到運動類。我們 手動檢視運動類文章和選出來的關鍵字後發現,運動類遊戲文章比起 其他類別,比較沒有頻繁出現的共通字,因此在篩選關鍵字時,選到 了如巴哈姆特、遊戲…等在其他類別的文章也會頻繁出現的字為關鍵 字,因此當讀入文件的重要辭彙出現頻率不夠時,便容易誤判至運動 類。

(15)

15

四、心得

1.去掉網頁框架 - 這部分一開始採用,尋找"< br>"做為文字內容開 始以及結束的關鍵字,但"< br>"在 HTML 中還有其他的特殊用法,該 用法會導致程式在判定上產生失誤,無法正確的去除掉網頁框架。

解決方式 - 網頁的 HTML 語法多以英文撰寫,所使用的英文字皆 可用 ascii 的編碼格式表示,使用<ctype.h>中的 isascii 指令,傳 入的值若為 ascii 格式內的文字回傳非 0 的值,反之則為 0。

透過這個指令便能有效的將網頁框架去除,留下內文。

[程式範例 1]

2.去除中文標點符號(UTF-8 編碼格式) –在除去中文標點符號,一 開始對於編碼類型毫無概念,便認定了要用 big5 的編碼格式下去 做,但無法去除掉標點符號。

解決方式 - 在查詢資料後發現,事實上多數的網頁,為了方便 不同語言使用者之間的交流,採用 UTF-8 的編碼格式下去撰寫[參考 文獻 1],最早中文的編碼的格式皆為 big5 格式,而簡體中文則為 GB 格式,當設計出來的軟體開始外銷後便發現了問題,同一個字在不同 的編碼格式中可能代表了別的字元,甚至在該編碼中並沒有這個字

(16)

16

元,便無法正常顯示在使用者的介面上,為了處理這個問題,就產生 了 Unicode 俗稱萬國碼,在非 Unicode 環境下,由於不同國家和地區 採用的字符集不一致,很可能出現無法正常顯示所有字元的情況。在 這種情況下,一些非英語的歐洲語言編寫的軟體和文檔很可能出現亂 碼。而將內碼表設定為相應語言中文處理又會出現問題, 因此有了 Unicode,內碼表技術現在廣泛為各種平台所採用。

在確認 HTML 資料為 Unicode - UTF8 格式後,對常出現的中文標 點建立 UTF-8 格式的編碼表如表 1 所示,藉由編碼表得知那些字元為 UTF-8 格式下的中文標點,便能有效的將標點符號去除。

[程式範例 2]

3.對中文做 N-gram 斷詞 - 將文章斷成 2-gram, 3-gram, 4-gram, 5-gram, 讀入詞庫做比對,在將各 gram 中沒出現在詞庫中的詞,在 各 gram 中做出現次數統計,將只出現一次的詞去除,留下的便是候 選詞。

[程式範例 3]

4.在 MFC 程式中秀出處理好的文字檔案 – 遇到了 MFC 不支援 UTF-8 編碼的問題,導致顯示出來的文字檔案是亂碼,參考了網路上的資源 [參考文獻 2],透過MultiByteToWideChar將 UTF-8 編碼轉換成 unicode,

再利用WideCharToMultiByte將 unicode 編碼轉換成 BIG5 碼,最後就能正

(17)

17

常的在 MFC 程式上秀出處理過後的文字檔案。

[程式範例 4]

參考文獻

1.http://www.unicode.org/cgi-bin/GetUnihanData.pl?codepoint

=%E5%BE%97

表 1.UTF-8 的編碼對應表

{0xef, 0xbc, 0x8c}, // ","

{0xe3, 0x80, 0x81}, // "、"

{0xe3, 0x80, 0x82}, // "。"

{0xcf, 0x86}, // "φ"

{0xcf, 0x87}, // "χ"

{0xcf, 0x88}, // "ψ"

{0xcf, 0x89}, // "ω"

(18)

18

[範例程式 1]

for(int q=0;q<sizeof(data);q++) { if(isascii(data[q]))

{

/*english[en_counter] = data[q];

en_counter++;*/

} else {

//printf("%c",data[i]);

input[k]=data[q];

data[q] = '\0';

k++;

} }

[範例程式 2]

int big5(int z) {

int j = 0;

for(j=0;j<n+2000;j++) {

test = false;

for(int k=0;Big5Separator[k][0]!=0;k++) {

if (Big5Separator[k][0] == (input[j]) && Big5Separator[k][1] ==

(input[j+1]) && Big5Separator[k][2] == (input[j+2])) {

//0xe3, 0x80, 0x80

test = true;

j = j + 2;

z++;

//z = z + 3;

} }

(19)

19 for(int k=0; special[k][0]!=0;k++) {

if(special[k][0] == input[j] && special[k][1] == input[j+1]) {

test = true;

j++;

z++;

} }

if(test == false) {

input2[z] = input[j];

z++;

}

}

return z;

}

[範例程式 3]

for(j=0;j<=sizeof(input3);j++){

if(input3[j]==0) {

}

else if(input3[j+1]==0){}

else if(input3[j+2]==0){}

else if(input3[j+3]==0){}

else if(input3[j+4]==0){}

else if(input3[j+5]==0){}

else if(isascii(input3)){}

else {

two[k] = input3[j];

two[k+1] = input3[j+1];

two[k+2] = input3[j+2];

two[k+3] = input3[j+3];

two[k+4] = input3[j+4];

(20)

20 two[k+5] = input3[j+5];

two[k+6] = '\n';

k=k+7;

j=j+2;

} }

[範例程式 4]

MultiByteToWideChar(CP_UTF8, 0, test3, 10000, unicode, 10000);//UTF-8 轉 Unicode WideCharToMultiByte(950, 0, unicode, -1, cbig5, 10000, NULL, NULL);//Unicode 轉 Big5

(21)

21

五、致謝

感謝指導教授的細心指導,專題的製作上花了很長的一段時間,

感謝老師在這之中的指引與督促,給予了我們很大的幫助,希望這段 專題的製作經驗,能在未來給予我們幫助,指導教授周智勳老師在專 題的製作過程中,適時的在關鍵點上,給我們指引方向,讓我們在專 題的進度上快了很多,學長姐也給予了很多協助,這次的專題製作會 是很珍貴的人生經驗。

(22)

22

六、參考文獻

1. Chih-Hsun Chou,

Chang-Hsing Lee

and

Y

a

-H

ui Chen, GA-Based Keyword Selection for the Design of an Intelligent Web Document Search System, THE COMPUTER JOURNAL, p1.~p3. , Vol. 52 No. 8, 2009

3. C How To Program 第五版 -作者:P.J.DEITEL,H.M.DEITEL 出版社: PEARSON 出版日期:2007 年 1 月 1 日

4. C++函式庫精華錄 作者:核心研究室:陳正凱,陳錦輝/編著 出版社:金禾 出版日期:2001 年 08 月 25 日

參考文獻

相關文件

符合前條所定雇主應於每年中央主管機關公告期間內,檢附下列文件、資

文學 文學 文學 文學 中華文化 中華文化 中華文化 中華文化 品德情意 品德情意 品德情意 品德情意 學習 學習 學習.. 學習 過程 過程

大學教育資助委員會資助大學及絕大部分專上院 校接納應用學習中文(非華語學生適用)的「達 標」

學習語文必須積累。語文能力是在對語文材料大量反復感受、領悟、積累、運用的過程中

閱讀前 先瀏覽課文《太陽》,在不明白的地 方做標記,然後查字典、詞典,或上 網搜尋資料,完成自學筆記。.

 點擊按鈕「Rollover」,工作表便會剪下紅色線以下的資料並複 製至綠色線以下的儲存格。

RMI,及 DCOM 這些以專屬 binary 格式傳送資料所不及之處,那 就是對程式語言、作業平台的獨立性--由於是純文字 XML 格 式,