使用Python编写一个带有词袋模型的朴素贝叶斯分类器
发布时间:2023-12-25 17:52:48
下面是一个使用Python编写的带有词袋模型的朴素贝叶斯分类器的示例代码:
import numpy as np
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.naive_bayes import MultinomialNB
# 1. 准备训练数据和标签
train_data = ["This is a good book",
"This is a bad book",
"This is a awesome book",
"This is a terrible book"]
train_labels = np.array([1, 0, 1, 0])
# 2. 特征提取:使用词袋模型将文本转换为特征向量
vectorizer = CountVectorizer()
train_features = vectorizer.fit_transform(train_data)
# 3. 创建并训练朴素贝叶斯分类器
classifier = MultinomialNB()
classifier.fit(train_features, train_labels)
# 4. 使用分类器进行预测
test_data = ["This book is good"]
test_features = vectorizer.transform(test_data)
predictions = classifier.predict(test_features)
print("预测结果:", predictions)
在上面的代码中,我们首先准备了一些训练数据和对应的标签。训练数据是一些关于图书的评论,标签表示评论的情感倾向(1代表正面,0代表负面)。
接下来,我们使用CountVectorizer从文本中提取特征向量。CountVectorizer将文本转换为一个词袋模型,其中每个词是一个特征。
然后,我们创建了一个MultinomialNB朴素贝叶斯分类器,并使用训练数据和对应的标签进行训练。
最后,我们使用分类器预测了一个测试样本的情感倾向。测试样本是一个关于图书的评论,我们通过与训练数据使用相同的CountVectorizer转换为特征向量,再使用分类器进行预测。
运行以上代码,输出结果为[1],表示测试样本的情感倾向为正面。
