• 沒有找到結果。

學年度專題製作期末報告 中華大學資訊工程學系 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 日

參考文獻

相關文件

(一)每日應進入公文整合資訊系統,檢查有無逾期公文(含受會公

二、本校於報名表中對於學生資料之蒐集,係為學生成績計算、資料整理及報到作業等招生作業之

1.初審:由中華民國全國中小企業總會同仁組成專案工作小組,對參 選資料之參選資格予以初步認定,若資料不齊者予以限期補件,資

以 102 學年度下學期及 103 學年度上學期開 學前,學校於特教通報網通報查收視障學生

我大學讀的是中文系,對詩歌的興趣與日 俱增,我覺得有必要了解一點國外的詩歌,但

二、本校於報名表中對於學生資料之蒐集,係為學生成績計算、資料整理及報 到作業等招生作業之必要程序,並作為後續資料統計及學生報到註冊作業

二、本校於報名表中對於學生資料之蒐集,係為學生成績計算、資料整理及報 到作業等招生作業之必要程序,並作為後續資料統計及學生報到註冊作業

基於經濟效益考量,對於外籍勞工的語言能力以及年齡更為重 視,並重新審定計分制度等。事實上, OECD 會員國對於語言能力 以及薪資條件有愈趨嚴格。如在 2012

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

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

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

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

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

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

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

潘銘基, 1999 年畢業於香港中文大學中國語言 及文學系,繼而於原校進修,先後獲得哲學碩士

如何 如何在小學語文課程中加強中華文化的學習 在小學語文課程中加強中華文化的學習 在小學語文課程中加強中華文化的學習

 文字 文字 文字 文字:橋樑書的文字淺白 文字淺白 文字淺白 文字淺白,配合兒童的語言習慣,以 兒童常用的2000個單字為基礎, 逐步豐富 逐步豐富兒童的詞匯 逐步豐富 逐步豐富 詞匯

• S4- 閱讀時眼睛看著文 字,細聲讀出來。學生 對文字的排列及一字一 音有鞏固的認識,能以 手指指著文字閱讀。識 字量一般,能認讀關鍵 詞語而大致理文字意思。.

本系統結合 IEEE 1599 系統整合檔案與呼吸聲偵測功能,讓此播放器 讀取 IEEE 1599 音樂整合檔的 XML

解決方法:使用 android Http POST 傳送 request 到 PHP Server 端,. PHP

樂高公司和麻省理工學院最早在 1988 年開始合作研發「智慧型可程 式化積木」 ,1998 年正式在紐倫堡、倫敦和紐約玩具展中推出 Mindstorms 和 Robotics Ivention