2012-02-24 28 views
4

我正在寫一個Outlook加載項,用於保存歷史用途的電子郵件。不幸的是,Outlook的MSG格式過於冗長,即使在壓縮時也是如此。這導致保存的MSG文件的文本大小相當於其文本的許多倍。但是,將所有消息保存爲文本都有缺乏附件,圖像和任何相關格式的明顯缺陷。檢測電子郵件本質上是文字

對於大多數電子郵件來說,這不是問題,但具有一定複雜格式,圖片,附件(等等)的電子郵件應該以MSG格式保存。

1. If email has attachment(s), save as MSG and be done 
2. If email is stored as text, save as text and be done 
3. If email is not stored as HTML store as MSG and be done 
4. Decide if the HTML should be converted to text and 
    store it as text if so 
    store it as MSG if not 

這與第4步異常簡單:

廣大用戶的電子郵件作爲HTML如下發送使我的算法大概我該如何決定哪些格式的HTML格式的電子郵件應轉化爲儲蓄?

+0

爲什麼要麻煩?存儲是如此便宜,你冒着算法做出錯誤決定的風險。也許壓縮消息呢? – sasfrog 2012-02-25 03:15:11

+0

這是許多用戶提供的網絡存儲空間,每個用戶每天要發送大約100封電子郵件,並且需要多年保留。使用歸檔工具會讓不熟悉計算機的最終用戶感到困難,並且我無法控制打開文檔的前端。 – Kaganar 2012-02-25 04:32:55

+0

我做的另一個考慮是以半透明格式打包文檔,該文檔解壓縮並自動打開。這種方式通常是透明的,至少用於查看。不幸的是,我一直無法找到任何可用於此目的的東西。 (我最需要的是一個可執行的打包程序 - 但這些對於可執行文件來說似乎非常特殊。) – Kaganar 2012-02-27 16:16:19

回答

2

一個想法:計算消息中HTML標籤的加權密度。根據現有數據選擇閾值。將HTML密度高於閾值的郵件存儲爲MSG;密度低於閾值的消息將以純文本形式存儲。

如何計算加權密度?使用HTML解析庫。讓它解析文檔並計算每個類型的HTML標籤在文檔中的數量。圖書館只需要這些。將每個標籤計數乘以其重量並將它們相加在一起。然後嘗試將消息轉換爲純文本並計算消息中的字符數。將加權標籤計數和除以該數字,即可獲得密度。

應該用什麼密度加權?用你創建的表格來表示每種類型的HTML標籤的重要性。我猜想失去大膽和斜體不是太糟糕。丟失有序列表和無序列表列表會更糟糕,除非在將郵件轉換爲純文本時保留項目符號和數字。表格應該高度加權,因爲它們對格式很重要。也爲無法識別的標籤選擇權重。

你應該如何選擇你的門檻?對電子郵件樣本運行密度計算功能。還要手動檢查這些電子郵件,看看它們是否會更好,如MSG或純文本,併爲每封電子郵件寫下該選項。對這些數據使用一些算法來查找邊界值。我認爲算法可能是Naive Bayes classification,但在這種情況下可能會有一個更簡單的算法。或者一個人爲計算的猜測可能是足夠好的。我認爲在查看人類選擇格式與加權HTML標籤密度的散點圖並觀察大致分離兩種格式決策的密度值之後,您可以猜測。

相關問題