用python代码实现将训练集里的每个类别的文档特征存储在一个以类别名称命名的文件中。
时间: 2024-04-30 10:18:08 浏览: 11
假设你有一个训练集文件夹 train 和一个类别列表 categories,每个类别有自己的文件夹并包含相应的文档。你可以使用以下代码将每个类别的文档特征存储在一个以类别名称命名的文件中:
```python
import os
from sklearn.feature_extraction.text import CountVectorizer
# 定义训练集文件夹和类别列表
train_folder = "train"
categories = ["category1", "category2", "category3"]
# 遍历每个类别,将文档特征存储在以类别名称命名的文件中
for category in categories:
# 获取该类别文件夹路径
category_folder = os.path.join(train_folder, category)
# 获取该类别下所有文档的路径
file_paths = [os.path.join(category_folder, f) for f in os.listdir(category_folder) if f.endswith(".txt")]
# 读取文档内容
documents = []
for file_path in file_paths:
with open(file_path, "r", encoding="utf-8") as f:
document = f.read()
documents.append(document)
# 提取文档特征
vectorizer = CountVectorizer()
features = vectorizer.fit_transform(documents)
# 存储文档特征
feature_file = category + ".txt"
with open(feature_file, "w", encoding="utf-8") as f:
f.write(str(features))
```
代码中使用了 sklearn 中的 CountVectorizer 类来提取文档特征,使用了 os 和 codecs 模块来读取和存储文件。请根据实际情况修改文件夹路径、类别列表和文件格式等参数。