999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于最大熵方法的垃圾郵件過濾插件的設計與實現

2007-01-01 00:00:00司廣濤朱巧明李培峰
計算機應用研究 2007年5期

摘要:結合郵件的半結構化特征,將最大熵模型引入垃圾郵件過濾中,構造出基于最大熵模型的垃圾郵件過濾系統框架。在此基礎上,將其與Outlook提供的PIA相結合,利用.NET技術開發出基于最大熵模型的垃圾郵件過濾插件,在客戶端實現了基于內容的垃圾郵件過濾,較好地解決了垃圾郵件的問題。

關鍵詞:最大熵模型;郵件過濾;.NET;Outlook插件

中圖分類號:TP393.098文獻標志碼:A

文章編號:1001-3695(2007)05-0223-03

電子郵件以其方便、快捷、低成本等優點逐漸成為人們日常生活中主要的通信手段之一。但大量垃圾郵件的出現,給全球用戶帶來了巨大損失。據調查,我國用戶平均每人每周收到的垃圾郵件數量占收到的總郵件數量的61.63%[1]。垃圾郵件的泛濫已帶來嚴重后果,因此有效地區分正常郵件和垃圾郵件成為一項緊迫的任務。近年來,有關垃圾郵件過濾技術的研究逐漸興起。常見的過濾方法有黑、白名單技術和規則過濾等,但由于郵件發送者在不斷變化,規則難以維護,準確率不高,使這些方法都具有一定的局限性。將垃圾郵件過濾與機器學習、文本分類和信息過濾技術相結合,對郵件正文內容進行分析,已成為目前研究的熱點[2]。

最大熵模型是一種廣泛應用于統計自然語言處理領域的技術。結合郵件的半結構化特性,本文將最大熵模型應用到垃圾郵件過濾中,構造出基于最大熵模型的垃圾郵件過濾系統框架,并將其與Outlook相結合,基于.NET平臺開發出了Outlook垃圾郵件過濾插件,在客戶端利用最大熵模型實現了基于內容的垃圾郵件過濾。

1基于最大熵模型的垃圾郵件過濾

1.1最大熵模型

2.1互操作程序集

.NET框架中提供的COM Interop技術,使開發人員可以在.NET代碼中直接訪問COM組件。其基本原理[4]是,針對用戶要訪問的COM組件,.NET框架自動生成一個互操作程序集(Interop Assembly,IA)。IA是一個完全的托管程序集,其命名空間、類、方法等都與COM組件相對應。這樣,在.NET程序中可以直接引用IA,由IA完成對真正COM組件的訪問。圖2說明了IA的作用。

微軟公司為Outlook 2003提供了一個“正式的”互操作程序集,即主互操作程序集(Primary Interop Assembly,PIA),駐留在名稱為Micrsoft.Office.Interop.Outlook.dll的全局程序集緩存中。在Outlook的安裝過程中,選擇“.NET可編程性支持”,或者下載客戶端PIA安裝包來完成PIA的安裝[5]。

2.2Outlook 2003對象模型

Outlook通過對象和對象集合的層次系統(稱為對象模型)為開發語言提供功能,開發人員利用可用的對象和功能與Outlook進行交互,創建自己的解決方案。下面對其中幾個重要的對象進行介紹[6]。

2.2.1Application 對象

Application是層次結構中所有其他對象的根,提供對其他所有Outlook對象的訪問。要從外部應用程序中訪問Outlook對象模型,必須先獲得Application對象的實例。

2.2.2Namespace對象

Namespace對象是Outlook數據源的抽象根。如果要訪問Outlook數據,則必須創建Namespace對象的實例。目前,所支持的唯一數據源是郵件應用程序編程接口MAPI,用于訪問Outlook文件夾組中的所有Outlook數據。

2.2.3MAPIFolder 對象

Outlook數據存儲區內有一組支持默認功能的文件夾,使用Namespace的GetDefaultFolder()方法返回某個默認文件夾,即MAPIFolder對象。

2.2.4Items對象

Items代表Outlook項目集合,如郵件項目MailItem、任務項目TaskItem等??梢允褂肁pplication對象的CreateItem()創建新的項目或使用Items對象的索引器獲得并修改現有的項目。

2.2.5Explorers和Inspectors對象

Outlook對象模型還定義了用來對用戶界面進行操作的類型。Explorers對象包含一組Explorer對象,代表所有的瀏覽器。Explorer類型表示用于顯示文件夾內容的窗口。Inspectors對象包含一組Inspector對象,代表所有檢查器。Inspector對象代表顯示Outlook項目的窗口。

2.3用.NET開發Outlook插件

利用PIA,開發人員可以在.NET中方便地對Outlook的編程接口進行操作[7]。Visual Studio.NET 2003提供了“共享的外接程序”項目模板,通過創建自定義外接程序,對Outlook 2003進行功能擴展。完成共享的外接程序向導后,得到包含兩個項目的解決方案,即外接程序項目和對應的安裝項目。

外接程序自動引用程序集Extensibility.dll。它包含命名空間Extensibility。其中確切定義了三個類型:

(1)IDTExtensibility2——所有外接程序都必須實現的關鍵接口;

(2)ext_ConnectMode——枚舉變量,表示將宿主程序(Outlook)連接到外接程序的各種方式;

(3)ext_DisconnectMode——枚舉變量,表示將外接程序與宿主程序斷開的各種方式。

2.3.1 IDTExtensibility2接口的角色

IDTExtensibility2 接口類型定義了在插件生命周期的各個階段宿主應用程序所調用的方法。

(1)OnConnection()方法——插件連接到宿主程序時調用該方法。成功返回表明已加載了插件;否則宿主程序立即釋放其對該插件的引用。

(2)OnDisconnection()方法——插件斷開連接并且在從內存中卸載之前,將激活此事件。

(3)OnAddInsUpdate()方法——當最終用戶在宿主程序中插入或刪除插件時,調用OnAddInsUpdate( )方法。

(4)OnStartupComplete()和OnBeginShutdown()方法——只有在啟動期間已連接了插件的情況下才調用OnStartupComplete();此時所有宿主資源均可供插件使用,因此典型的操作是為插件構造用戶界面。宿主程序在關閉過程中要斷開與插件連接的情況下調用OnBeginShutdown();通常在此事件中執行所有資源清理操作,并還原對宿主程序所作的任何更改。

2.3.2實現用戶界面和業務邏輯

宿主程序加載完成之后,所有的宿主資源均可供插件使用。因此,通常在OnStartupComplete()方法中構建插件的用戶界面。例如,向瀏覽器標準命令欄中添加CommandBarButton的步驟如下:

(1)從活動資源管理器獲得命令欄集。

(2)查看按鈕是否在希望修改的命令欄控件集合中。如果不在,則創建并啟用新的實例。

(3)設置CommandBarButton的Click 事件委托,以完成其自定義功能。

根據步驟(3)中指定的自定義按鈕的事件委托,在對應的方法中完成用戶自定義操作,實現業務邏輯。

2.3.3注冊共享外接程序

要在Outlook中使用插件,必須注冊插件動態鏈接庫。該動態鏈接庫的類標志符在注冊表的\\HKEY_CLASSES_ROOT子樹下注冊。另外,必須在注冊表中添加有關插件的信息。該信息提供插件的名稱、說明、目標應用程序、初始加載行為和連接狀態等。通常在注冊表中創建以下鍵值:

HKEY_CURRENT_USER\\Software\\Microsoft\\Office\\Outlook\\Addins\\ProgID

其中ProgID為插件程序的唯一標志符的字符串表示形式。

外接程序項目的生成設置中已選中了“注冊COM interop”,生成插件的過程中自動向COM interop注冊了.NET類。

3基于最大熵模型的垃圾郵件過濾插件

為了在客戶端對用戶收到的郵件實現基于內容的過濾,將最大熵模型與Outlook插件開發技術結合,

在.NET平臺上實現了基于最大熵模型的垃圾郵件過濾插件。

3.1IDTExtensibility2接口的實現

(1)在OnConnection()方法中獲得Outlook和插件ME-MFS對象實例;判斷連接模式,把用戶自定義數據傳送到OnStartupComplete方法。

取得宿主程序和插件對象的實例;

判斷連接模式connectMode,若不為ext_ ConnectMode.ext_cm_Start ̄up則調用OnStartup Complete( ),并傳遞用戶自定義數據。

(2) 在OnStartupComplete()方法中構造用戶界面,定義事件委托以完成業務邏輯,并對用戶自定義數據進行處理。

取得活動Explorer 對象的CommandBars;

取得CommandBars中的“菜單欄”;

如果用戶自定義菜單不存在,則創建用戶自定義菜單,并將其添加到系統菜單欄,向自定義菜單中添加各菜單項;

設置用戶自定義菜單項的事件委托,以完成業務邏輯。

(3) 在OnDisconnection()方法中檢查斷開模式,把用戶自定義數據傳遞到OnBeginShutdown()方法,釋放Outlook實例。

判斷斷開模式disconnectMode,若不為ext_Disconnect Mode.ext_dm_HostShutdown,則調用OnBeginShutdown( ),并傳遞用戶自定義數據;

釋放宿主程序對象實例。

(4) 在OnBeginShutdown()方法中還原對Outlook用戶界面所作的修改。

取得活動Explorer的菜單欄;

取得用戶自定義菜單,如果存在,則從菜單欄中刪除用戶自定義菜單,還原對用戶界面的修改。

3.2自定義用戶界面

按照上述方法中的步驟,在Outlook中構造用戶自定義菜單“MEMFS”,插入完成垃圾郵件過濾功能的菜單項:

(1)特征提取——獲得用戶Outlook文件夾中現有的所有郵件,把“垃圾郵件”文件夾中的郵件作為垃圾郵件,其他郵件文件夾中的郵件作為正常郵件;提取郵件特征,生成特征文件,以進行最大熵模型的訓練。

(2) 模型訓練——根據已生成的特征文件,進行GIS迭代收斂,得到最大熵模型。

(3) 模型調整——郵件過濾結果不正確時,幫助用戶修改模型參數,實現用戶的個性化要求。

3.3垃圾郵件過濾邏輯的實現

得到最大熵模型后,即可使用此模型進行垃圾郵件過濾。當新郵件到達時,插件獲取新郵件的特征,由最大熵模型對新郵件進行判斷。如果是垃圾郵件,則將其由收件箱轉移到垃圾郵件文件夾中。

取得收件箱中收到的新郵件;

提取新郵件的特征;

用最大熵模型進行概率估計,求出新郵件對正常郵件和垃圾郵件的概率,取其中較大的概率對應的類別作為新郵件類別;

若新郵件為垃圾郵件,則將其轉移到垃圾郵件文件夾。

在郵件特征提取和新郵件到達處理時,都要獲得Outlook 2003文件夾中的郵件項。獲得這些郵件項的基本過程如下:

用Application對象的GetNamespace()方法取得NameSpace類型;

用NameSpace的GetDefaultFolder()方法取得MAPIFolder類型;

使用MAPIFolder.Items索引器枚舉各郵件項。

4結束語

本文將在統計自然處理領域應用廣泛的最大熵模型引入到垃圾郵件過濾中,利用Outlook 2003提供的PIA,在.NET平臺上開發出了垃圾郵件過濾插件,在客戶端實現了基于內容的垃圾郵件過濾,能較好地幫助用戶解決垃圾郵件泛濫的問題。本文的插件開發技術,稍作修改即可應用于其他版本的Outlook。

參考文獻:

[1]中國互聯網協會反垃圾郵件中心.2005年第三次中國反垃圾郵件狀況調查報告[EB/OL].[2006-02].http://www.anti-spam.cn/.

[2]潘文鋒.基于內容的垃圾郵件過濾研究[D].北京:中國科學院研究生院,2004:4-9.

[3]RATNAPARKHI A. Maximum entropy models for natural language ambiguity[D].[S.l.]:University of Pennsylvania, 1997.

[4]CARTER E.Coming to grips with the mess of types in the Office PIAs [EB/OL].http://blogs.msdn.com/eric_carter/archive/2004/05/06/127698.aspx.

[5]KHOR S M,LEONARD A.Office 2003主Interop 程序集的安裝和使用[EB/OL].(2005-04).http://www.microsoft.com/china/msdn/library/office/office/ OfficePrIntopAssFAQ.mspx.

[6]BOYCE J.Microsoft Office Outlook 2003完全揭密[EB/OL].(2004-12).http://www.microsoft.com/china/msdn/library/office/office/UsingVBAInOutlook.mspx.

[7]TROELSENF A W.使用C#進行Outlook 2003編程的簡介[EB/OL].(2004-07).http://www.microsoft.com/china/msdn/library/langtool/vcsharp/USdv_vstechartol03csharp.mspx.

注:“本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文”

主站蜘蛛池模板: 久久国产精品麻豆系列| 天堂在线视频精品| 国产精品成人一区二区不卡| 国产福利免费在线观看| 欧美日韩国产在线人| 亚洲黄色视频在线观看一区| 狠狠色丁香婷婷综合| 精品国产乱码久久久久久一区二区| jizz国产在线| 女高中生自慰污污网站| 欧美激情视频二区| 国产一区二区三区精品欧美日韩| 国产激爽大片在线播放| 欧美一区二区丝袜高跟鞋| 高潮爽到爆的喷水女主播视频 | www亚洲天堂| 毛片基地美国正在播放亚洲 | 亚洲精品欧美日本中文字幕| 婷婷在线网站| 欧美一级黄片一区2区| 伊人成人在线| 国产精彩视频在线观看| 欧美国产综合视频| 免费国产高清视频| 欧美福利在线观看| 日韩无码真实干出血视频| 国产AV无码专区亚洲A∨毛片| 日本久久网站| 99热亚洲精品6码| 五月婷婷亚洲综合| a国产精品| 91免费精品国偷自产在线在线| 不卡视频国产| 原味小视频在线www国产| 国产成人精品高清不卡在线| 日本在线视频免费| 亚洲色图另类| 国产成人久久综合777777麻豆| 亚洲中文字幕无码爆乳| 亚洲精品欧美日韩在线| 91麻豆精品国产高清在线| h视频在线观看网站| 久久情精品国产品免费| 欧美午夜视频| 97人人做人人爽香蕉精品| 日本成人不卡视频| 9久久伊人精品综合| 一本久道久综合久久鬼色| 国产理论最新国产精品视频| 97影院午夜在线观看视频| 亚洲色图欧美在线| 国产真实乱子伦精品视手机观看 | 国产主播福利在线观看| 97在线观看视频免费| 欧美成人免费午夜全| 久久黄色视频影| 色欲综合久久中文字幕网| 久久www视频| 亚洲黄色成人| 国产精品三级专区| 国产凹凸视频在线观看| 国产剧情一区二区| 91精品国产91欠久久久久| 亚洲天堂久久| 国产区福利小视频在线观看尤物| 日韩av无码DVD| 国产美女视频黄a视频全免费网站| 国产在线精品美女观看| 九色在线视频导航91| 国产主播喷水| 波多野结衣二区| 青青青国产视频手机| 九色视频线上播放| 国产在线麻豆波多野结衣| 国产自产视频一区二区三区| 欧美精品另类| 国产永久无码观看在线| 国产乱子精品一区二区在线观看| 亚洲天堂777| 国产极品粉嫩小泬免费看| 国产久草视频| 国产精品对白刺激|