回上層

Text Miner

文字規則產生器 – 找尋垃圾郵件的文字規則

 

當每篇文章有目標或類別時,我們可以藉由SAS Text Mining「文字規則產生器」節點來看不同目標的文字有沒有什麼規則可言。

 

電子郵件中垃圾郵件充斥,垃圾郵件內容會有什麼規則?行銷?詐欺?色情?如果我們知道每篇文章是垃圾郵件與否,在此範例中我們使用「文字規則產生器」找到垃圾郵件有「email & ~enron & ~daren & mobile」、「sex」等規則,也就是說當郵件出現sex字詞,或是有出現email、mobile且沒有出現enron、daren字詞時很可能是垃圾信件。

p1

 

 p2

 

此範例中,資料是來Enron-Spam datasets (http://nlp.cs.aueb.gr/software_and_datasets/Enron-Spam/index.html) 當中的Enron1資料,共5154筆Email的資料,其中包含1482筆spam的Email (垃圾郵件)以及3672筆ham的Email (非垃圾郵件);以及另外spam/ham各300筆的測試資料,因此在流程圖中ENRON_MAIL_TES資料集的角色為「測試」。

 

此外文字規則產生器需要有目標角色的變數,作為要產生規則的依據,在此範例中信件若是SPAM則我們將Prediction欄位值設定為0,若是HAM則Prediction設定為1。

p3

 

 

p4

 

 

此章節流程圖: 

p5

 


1.     結果
Rules Obtained:系統找出來的規則

( Precision、Recall為規則分類評估的指標,欲知詳情請參考http://en.wikipedia.org/wiki/Precision_and_recall )

p6

                                                                             ......

p7

 

 

 

 

 

 

配飾統計:文章符合規則的一些統計數值 ( Test欄位是因為有輸入「測試」資料集才會有 )

p8

 

 

Rule Success:每條規則分別判斷0/1的文章次數

p9

 

 

評分排名重疊圖:評估的一些圖形

p10

 

 

p11

 


2.     其他參數調整

p12

 

 

 

I. 訓練

i. 一般錯誤:規則對於訓練資料的錯誤容忍度,一般錯誤低,代表該rule在訓練資料非常準確,

但若要做新資料的預測可能造成overfitting的現象。

ii. 規則的純度:將詞語加入rule的條件,規則的純度越高則rule的詞語數越少越純粹。

iii. 詳盡:產生一條rule的條件,越詳盡則產生越多條rule,但可能需要越長的訓練時間。

p13

 

 

p15

 

 

p14

 

 

p16

 

 

II. 評分

i. 內容分類程式碼:布林值規則

F_Prediction =0 ::

(OR

, "meds"

, "php"

, "paliourg"

, "xp"

, "investment advice"

, "spam"

, (AND, (OR, "prescription" , "prescriptions" ))

, "biz"

, "pain"

, (AND, (OR, "monies" , "money" ), (NOT, (OR, "deal" , "deals" )), (NOT, "enron" )

...

F_Prediction =1 ::

(OR

, "enron"

, "hpl"

, "daren"

, (AND, (OR, "meter" , "meters" )

ii. 變更目標值:可以人工更改誤判值 ( Assigned Target欄位 )

p17

 


3.     匯出的資料

p18

 

 

p19

 

( Predicted: Prediction=0為該文章預測為0這類的機率值;Residual: Prediction=0為該文章預測為0這類的殘差;Into: Prediction、Why Into: Prediction為最終該文章被預測為哪一類,以及是根據規則產生器產生的第幾條rule來判定 )

 

回上層