以下是使用 KNN 算法和 SVM 算法实现文本分类的 Python 代码示例:

KNN 算法实现文本分类:

from sklearn.neighbors import KNeighborsClassifier
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score

# 读取数据
with open('data.txt', 'r', encoding='utf-8') as f:
    data = f.readlines()

# 分离文本和标签
texts = [line.strip().split('	')[0] for line in data]
labels = [line.strip().split('	')[1] for line in data]

# 将文本转换为 TF-IDF 特征向量
vectorizer = TfidfVectorizer()
features = vectorizer.fit_transform(texts)

# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(features, labels, test_size=0.2, random_state=42)

# 训练 KNN 分类器
knn = KNeighborsClassifier(n_neighbors=5)
knn.fit(X_train, y_train)

# 预测测试集并计算准确率
y_pred = knn.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)
print('Accuracy:', accuracy)

SVM 算法实现文本分类:

from sklearn.svm import SVC
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score

# 读取数据
with open('data.txt', 'r', encoding='utf-8') as f:
    data = f.readlines()

# 分离文本和标签
texts = [line.strip().split('	')[0] for line in data]
labels = [line.strip().split('	')[1] for line in data]

# 将文本转换为 TF-IDF 特征向量
vectorizer = TfidfVectorizer()
features = vectorizer.fit_transform(texts)

# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(features, labels, test_size=0.2, random_state=42)

# 训练 SVM 分类器
svm = SVC(kernel='linear')
svm.fit(X_train, y_train)

# 预测测试集并计算准确率
y_pred = svm.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)
print('Accuracy:', accuracy)

需要注意的是,以上代码仅用于示例,实际应用中需要根据数据集的特点进行调参等优化。

文本分类实战:KNN 和 SVM 算法 Python 代码示例

原文地址: https://www.cveoy.top/t/topic/ocJt 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录