欢迎访问宙启技术站
智能推送

使用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],表示测试样本的情感倾向为正面。