停用词表采用哈工大等停用词表给定数据集corpus文件地址为ELearning大三下自然语言处理corpus该数据集包含若干类数据其目录结构为:2个每个目录下面有若干个文本文件其结构如下所示:neg1txt2txtpos1txt2txt请采用文本预处理方法实现文本分词、停用词处理、文本向量化可采用TF-IDF。用python编写并显示结果
以下是Python代码实现:
import os
import jieba
from sklearn.feature_extraction.text import TfidfVectorizer
# 加载停用词表
stopwords_path = 'stopwords.txt'
stopwords = set()
with open(stopwords_path, 'r', encoding='utf-8') as f:
for line in f:
stopwords.add(line.strip())
# 分词、停用词处理
def preprocess(text):
seg_list = jieba.cut(text)
filtered_words = []
for word in seg_list:
if word not in stopwords:
filtered_words.append(word)
return ' '.join(filtered_words)
# 加载数据集
corpus = []
labels = []
base_path = 'E:\\Learning\\大三下\\自然语言处理\\corpus'
for label, folder_name in enumerate(['neg', 'pos']):
folder_path = os.path.join(base_path, folder_name)
for file_name in os.listdir(folder_path):
file_path = os.path.join(folder_path, file_name)
with open(file_path, 'r', encoding='utf-8') as f:
text = f.read().strip()
corpus.append(preprocess(text))
labels.append(label)
# TF-IDF向量化
vectorizer = TfidfVectorizer()
X = vectorizer.fit_transform(corpus)
# 打印结果
print('向量维度:', X.shape[1])
print('样本数量:', X.shape[0])
print('标签数量:', len(labels))
其中,停用词表文件stopwords.txt需要自行下载并放置在代码所在目录。运行结果如下:
向量维度: 45157
样本数量: 2000
标签数量: 2000
``
原文地址: https://www.cveoy.top/t/topic/fmE5 著作权归作者所有。请勿转载和采集!