Procmail 搭配 Script

我們每天都在收信,那有沒有某些信件是你想挑出來,特別處理的?有的話可以使用 procmail 這個程式來幫你。 首先你家目錄下的 .forward 檔案內容必須是 "|/usr/local/bin/procmail" 確定信件會被 pipe 給 procmail 處理。 那現在重點會擺在 .procmailrc 這個檔案,這裡只會粗淺的講一下實現「用 procmail 將信件傳遞給 script 執行」。 假設我想要將從 ken8203@love.com 寄來的信傳至 mail_processing.py 做處理 :0Wc: * ^From.*ken8203@love.com | /usr/local/bin/python $HOME/mail_processing.…

Scikit-learn Combining Classifiers

跑 Classification 的傳統方式是決定一個 Classifier 後,透過 feature 的新增或是參數的調整,來提高準確率;而另外一個方法就是集百家之優來改善預測的結果-Essemble。 今天要介紹的是用 Voting 的方式來決定預測的結果,當然這只是 Essemble 中的其中一種,還有很多其他的方法。 Scikit-learn 的 Voting 分為 hard 與 soft。 Hard 簡單來講就是多數決,例如: # of classifierprediction1class 12class 23class 14class 3 這樣預測結果就會是 class 1。 Soft 這會依照預測出來每個 class 的機率乘上你給的權重(weight)來做定奪,例如:(w1=w2=w3=1) # of classifierclass…

Scikit-learn 的 DictVectorizer 怎麼使用

以往使用的機器學習(Machine Learning)工具都是 LIBSVM,而這次因緣際會用了 Python 的 scikit-learn,卻不知道如何使用自己的 Feature,剛好來記錄一下。 scikit-learn 很強大的內建了幾種 Feature generator,像是 CountVectorizer、TfidfVectorizer...等等。而 DictVectorizer 則可以搭配自己的 Feature ,用法如下: from sklearn.feature_extraction import DictVectorizer vectorizer = DictVectorizer(sparse=False) features = [ {'feature_name_1': 1, 'feature_name_2': 2}, {'feature_name_1': 3, 'feature_name_…

使用 Python 處理中文 JSON

最近在處理大量的中文 json 檔案,一直遇到編碼上的問題,相信大家也都有遇過, UnicodeEncodeError: 'ascii' codec can't encode characters in position 2-10: ordinal not in range(128) 也就是 ascii 無法順利編碼,最後得到了一個解決方法:調整 ensure_ascii 參數以及使用codecs。 我們用example.json當做範例: [ { "category": "數位生活", "content": "