第三章、 研究架構與方法
3.2 研究工具
本研究的主要工具為一套建立在 web 上的敵意文章分類系統,系統環境如表 6 所示:
表 5:作業環境設置
作業系統 RedHat Linux 7.2 (Enigma)Kernel 2.4.7-10 on an i686 web 伺服器 Apache 1.3.20-16
資料庫 Postgresql 7.1.3-2
程式語言 PHP-4.0.6-7、PHP-pgsql-4.0.6-7
系統網址 http://163.25.180.120/cgi/nctu/i_r/index.html 資料來源:本論文
24
兩種,辭典式斷詞法與統計式斷詞法,辭典式斷詞法需事先將能判別文件類別的語 詞放入詞庫中,如中央研究院詞庫小組(http://godel.iis.sinica.edu.tw/CKIP/)所建立的語 料庫,但由於有些類別文件在定義上並不是那麼的清楚,以這次主題為例,要找出 具敵意文件的關鍵詞並不容易,況且由於地區、時間、討論主題的不同,即使他們 都是具有敵意的文件,慣用語也會有不同的地方,而統計式斷詞法則是先蒐集一些 同類型的文件(以下稱為訓練文件),經過斷詞後,計算出語詞的權重,並將可以代 表此類文件的語詞選為關鍵詞,並放入詞庫中,此方法可以解決辭典式斷詞法的缺 點,因此在本系統中將採用統計式斷詞法。而取出語詞的長度,在中文文件中,由 於較長的詞彙對文件分類並沒有明顯的效果[22],因此取出語詞的長度將以長度 為 2 的二連字詞為主。在電腦系統中,由於大小寫英文字母再加上常用符號,沒有 超過 128 個,因此是以一個 byte 來儲存字母,但是常用中文字就將近 5000 個,所 以必須用 2 個 byte 來儲存中文,但是這樣的方式,在斷詞時,會造成當大的困難,
以要斷詞的長度為兩個字為例,如果一份文件中,只有英文字母和符號,在斷詞時 的處理,只要從文件一開始,每次擷取 2 個 byte 的資料到文件結束即可將整份文件 斷詞完成,但如果一份文件中含有中文及英文,則必須從文件一開始,先判別第一 個 byte 的二進位碼是否大於 128,如果不是,再判別第二個 byte 是否大於 128,如 果也不是,表示取出的資料不包含中文,故只要直接 2 個 byte 資料即可,但如果是 的話,表示取出的資料,第一個字為英文或符號,第二個字為中文,因此總共需取 出 3 個 byte 的資料,但是如果第一個 byte 大於 128,則需判別第三個 byte 的二進位 碼是否大於 128,如果不是,表示取出的資料,第一個字為中文,第二個字為英文 或符號,如果是的話,表示這 4 個 byte 總共包含 2 個中文字,因此需取出 4 個 byte 的資料,整個程序如圖 3 所示:
25 輸入文件
判別第一個byte 是否大於128
是
否
判別第三個byte 是否大於128
是
判別第二個byte 是否大於128
是
否 輸出2個byte的資料
輸出3個byte的資料
輸出4個byte的資料
圖 3:中文關鍵詞斷詞流程(未導入 iconv 函數) 資料來源:本論文
我們可以發現,中文的斷詞比英文的斷詞要來的複雜許多,若要處理大量文件的斷 詞,會耗費大量時間,由於本研究主要針對中文文件,因此本文中的系統將只擷取 文章中的中文字,並利用 iconv 函數(http://www.iconv.com),來加快斷詞的速度。擷 取流程如圖 4:
輸 入 文 件
判 別 1 6 進 位 編 碼 是 否 在 0 x a 4 4 0 ~ 0 x c 6 7 e 或 0 x c 9 4 0 ~ 0 x f 9 d c 之 間
是
否
加 入 此 字
刪 除 此 字
圖 4:中文關鍵詞斷詞流程(導入 iconv 函數)
26
資料來源:本論文 以下列文章為例:
表 6:未經斷詞處理前的文章內容 作者 夏天
群組 tw.bbs.comp.hardware
標題 Re: 微星主機板作弊被抓包了..
時間 2003-06-14 05:04:16 微星主機板作弊被抓包了..
※ 引述《(甲蟲)》之銘言:
> 你們為何不買 ASUS P4C800 啊?
> .
> .
P4C800 除了賣那顆 875 還有什麼?
南橋不搭 ICH5R 要用 20378 作 S-ATA raid
那想用 IDE raid 的還要另買轉接頭?
NIC 也是,明明有 CSA 卻用 3Com
看了就不爽
除了 P4P800-D 看起來比較不錯之外(但是 VIA 的 raid...-_-?)
ASUS 其他 865/875 的板子都沒興趣 --
Origin: 精靈之城 ◆ From: vai.dorm4.ntnu.edu.tw
資料來源:tw.bbs.comp.hardware
27
系統會先將文章中的非中文文字,也就是標點符號、單位、英文字母、數字移除,
移除後的文章內容如下表:
表 7:經斷詞處理後的文章內容 作者 好熱@@
群組 tw.bbs.comp.hardware
標題 Re: 微星主機板作弊被抓包了..
時間 2003-06-14 05:04:16
微星主機板作弊被抓包了引述風之銘言你們為何不買啊除了賣那顆還有什麼南橋 不搭要用作那想用的還要另買轉接頭也是,明明有卻用看了就不爽除了看起來比較 不錯之外但是的其他的板子都沒興趣精靈之城
資料來源:tw.bbs.comp.hardware
我們發現,在文章中除了使用者發表的本文外,通常還包含關於此主題的引言、及 簽名,由於這兩部分無明顯的分界符號,或是較一致的特徵,因此並不容易用電腦 進行精確的移除工作,所以在本系統中,對引言及簽名檔不進行移除的動作。在非 中文文字移除後,系統會對此篇文章進行雙連字詞的擷取動作,並統計相關數據。
雙連字詞擷取的結果如下表所示:
表 8:文章經斷詞後取出之關鍵詞列表
微星、星主、主機、機板、板作、作弊、弊被、被抓、抓包、包了、了引、引述、述風、
風之、之銘、銘言、言你、你們、們為、為何、何不、不買、買啊、啊除、除了、了賣、
賣那、那顆、顆還、還有、有什、什麼、麼南、南橋、橋不、不搭、搭要、要用、用作、
作那、那想、想用、用的、的還、還要、要另、另買、買轉、轉接、接頭、頭也、也是、
是明、明明、明有、有卻、卻用、用看、看了、了就、就不、不爽、爽除、除了、了看、
看起、起來、來比、比較、較不、不錯、錯之、之外、外但、但是、是的、的其、其他、
他的、的板、板子、子都 都沒、沒興、興趣、趣精、精靈、靈之、之城 資料來源:本論文
步驟三、計算關鍵詞權重:在步驟二取出關鍵詞後,接下來要計算詞庫中每個關鍵
28
29
其中w 表示關鍵字ij k 在文件j d 中的權值重(term weight), i
{
ij| 1.. , 1.. }
W = w i = n j = m
(11)步驟四、計算敵意文章中心向量:將所有訓練文件的向量平均後即得到敵意中心向 量(hostility center vector),以下簡稱 hcv。
設C為 hcv,則
30 為 2003-06-06 04:59:05 至 2003-06-18 15:38:48。
文章長度