传统机器学习的文本分类通常提取TFIDF或者词袋特征,然后给模型进行训练,传统的机器学习的分类模型由很多,比如逻辑回归、支持向量机、多层感知机、贝叶斯等等。利用传统机器学习方法进行文本分类的基本思路:获取数据、数据预处理(上一篇博客已经讲过了https://blog.csdn.net/weixin_44766179/article/details/89855100)、特征提取、模型训练、预测。
下面利用传统机器学习方法实现垃圾邮件分类任务。
import numpy as np
import pandas as pd
import re
from sklearn.preprocessing import LabelEncoder
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
from sklearn.feature_extraction.text import TfidfVectorizer
from nltk.corpus import stopwords
from nltk.stem.porter import PorterStemmer
from nltk.tokenize import word_tokenize
import warnings
warnings.filterwarnings('ignore')
data_file = './spam.csv'
df = pd.read_csv(data_file, encoding='latin1')
labels = df.v1
texts = df.v2
def clear_data(text):
# 英文缩写替换
text_abbreviation = []
for item in text:
item = item.lower().replace("it's