写一个python代码,能够对于指定文件夹中每个文档文件,使用 Python 的机器学习库对其进行分类。可以使用一些现成的机器学习模型,比如朴素贝叶斯或支持向量机模型。
时间: 2024-05-03 12:21:29 浏览: 64
基于SVM的简单机器学习分类,可以使用svm, knn, 朴素贝叶斯,决策树四种机器学习方法进行分类+源代码+文档说明
以下是一个示例代码,使用了朴素贝叶斯模型对指定文件夹中的文档进行分类:
```python
import os
from sklearn.naive_bayes import MultinomialNB
from sklearn.feature_extraction.text import CountVectorizer
# 指定文件夹路径和类别标签
folder_path = '/path/to/folder'
labels = {'spam': 0, 'ham': 1}
# 建立文本向量化器
vectorizer = CountVectorizer()
# 遍历文件夹中的所有文档
X = []
y = []
for root, dirs, files in os.walk(folder_path):
for file in files:
file_path = os.path.join(root, file)
with open(file_path, 'r') as f:
text = f.read()
X.append(text)
label = os.path.basename(root)
y.append(labels[label])
# 将文本转化为向量
X = vectorizer.fit_transform(X)
# 建立朴素贝叶斯分类器
clf = MultinomialNB()
# 训练分类器
clf.fit(X, y)
# 对新文档进行分类
new_text = "This is a new document for classification."
new_x = vectorizer.transform([new_text])
predicted_label = clf.predict(new_x)[0]
# 打印预测结果
for label, index in labels.items():
if index == predicted_label:
print("Predicted label:", label)
```
这个代码中,首先指定了文件夹路径和类别标签。然后使用 `CountVectorizer` 类来建立文本向量化器,用于将文本转化为向量。接着遍历文件夹中的所有文档,将它们的文本和类别标签存储到 `X` 和 `y` 中。然后使用 `fit_transform` 方法将文本向量化。建立朴素贝叶斯分类器并用 `fit` 方法训练分类器。最后,使用 `transform` 方法将新文档转化为向量,并使用 `predict` 方法来预测它的类别标签。
阅读全文