使用scikit-learn,采用朴素贝叶斯分类器对”20 newsgroups“数据集文本进行分类
时间: 2023-12-29 12:02:13 浏览: 102
好的,针对您的问题,我可以提供以下的代码实现,步骤如下:
1.导入需要的库和数据集
2.将数据集划分为训练集和测试集
3.使用CountVectorizer将文本数据转换为向量形式
4.使用朴素贝叶斯分类器进行训练和预测
具体代码如下:
```python
# 导入需要的库和数据集
from sklearn.datasets import fetch_20newsgroups
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.naive_bayes import MultinomialNB
from sklearn.metrics import accuracy_score
from sklearn.model_selection import train_test_split
# 加载数据集
newsgroups = fetch_20newsgroups(subset='all')
# 将数据集划分为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(newsgroups.data, newsgroups.target, test_size=0.3, random_state=42)
# 使用CountVectorizer将文本数据转换为向量形式
vectorizer = CountVectorizer()
X_train_vec = vectorizer.fit_transform(X_train)
X_test_vec = vectorizer.transform(X_test)
# 使用朴素贝叶斯分类器进行训练和预测
clf = MultinomialNB()
clf.fit(X_train_vec, y_train)
y_pred = clf.predict(X_test_vec)
# 计算准确率
acc = accuracy_score(y_test, y_pred)
print("准确率为:", acc)
```
以上就是使用scikit-learn,采用朴素贝叶斯分类器对”20 newsgroups“数据集文本进行分类的代码实现,希望对您有所帮助!
阅读全文