做E-mail文本分類時
郵件內容可使用自然語言處理(NLP)
直接使用tf-idf、word2vec等方法
但若想加入寄件人、收件人等
非郵件內容文字的特徵
想請問該如何操作
懇請各位指點
因為我不確定你的dataset長怎樣XD
我先假設你手上的資料是從信箱裡面爬下來的
長的可能類似這樣:
(這個資料是著名的20-Newsgroup dataset)
其中有from, to, subject, body (content), ...等欄位。
我也不確定你的資料結構長怎樣,所以我先假設是Python list(資料量大一點可以用dask.array,你的生活會快樂一些)
那麼可行的做法應該是:
/(F|f)rom:/
或/(T|t)o:/
後面之欄位的內容如果你方便提供更清楚的dataset(長什麼樣子)、training method (supervised / unsupervised? binary / multilabel?),甚至分類目的(分類垃圾信件?)等資料可能可以回答得更詳細~
---- 20191018 0610 更新 ----
針對特徵處理的方式,我想可以把寄件人和收件人的email address從@之前和之後拆開成欄位from_local_part
、from_domain
、to_local_part
、to_domain
,例如將寄件人hello@gmail.com
拆成hello
和gmail.com
。
可能預處理會額外花上一些時間,不過可以預期的是accuracy和F1-score的提升。
雖然把收件人和寄件人各拆分成兩個欄位,但建議也把from和to保留在訓練資料中,同時測試看看保留和拿掉哪個能更準確判定。
希望這樣能幫你解決問題!