![12行python代碼實現垃圾郵件分類器](http://p2.ttnews.xyz/loading.gif)
讓我們使用樸素貝葉斯在Python中創建一個簡單的垃圾郵件分類器。樸素貝葉斯是基於貝葉斯定理的分類器集合。它們是樸素貝葉斯高斯樸素貝葉斯,多項式樸素貝葉斯和伯努利樸素貝葉斯中的三類分類器。
所需的依賴性是
- Pandas :用於提取數據。
- Scikit Learn:適用於機器學習算法。
下面給出的圖片顯示了我們的訓練數據(https://github.com/imHarin/SpamClassifier/blob/master/training_data/sms_spam.csv)。它有兩列第一列,標記消息是否是垃圾郵件。
![12行python代碼實現垃圾郵件分類器](http://p2.ttnews.xyz/loading.gif)
多項式和伯努利樸素貝葉斯是用於文本分類在這裡我們將使用多項樸素貝葉斯。
導入庫
import pandas
from sklearn.naive_bayes import MultinomialNB
from sklearn.feature_extraction.text import CountVectorizer
CountVecorizer將消息轉換為稀疏矩陣。
加載數據。
training_data =“training_data / sms_spam.csv”
data = pandas.read_csv(training_data)
現在創建分類器和CountVectorizer的實例,並將訓練數據轉換為矢量形式並訓練我們的模型
clf = MultinomialNB()
vectorizer = CountVectorizer()
messages = vectorizer.fit_transform(data["text"].values)
targets = data["type"].values
clf.fit(message,targets)
fit方法將訓練我們的模型,消息是一個包含向量形式消息的數組,並且目標包含相應的類。
測試模型
print(clf.predict(vectorizer.transform(["hiii,how are u"])))
輸出將是
['ham']
寫在最後
閱讀更多 一個強者 的文章