python实现tf-idf中文文本特征提取以及文件读取
时间: 2023-07-18 08:46:19 浏览: 115
以下是使用Python的sklearn库中的TfidfVectorizer类实现中文文本特征提取以及文件读取的示例代码:
```python
import os
import jieba
from sklearn.feature_extraction.text import TfidfVectorizer
# 读取文件内容
def read_file(path):
with open(path, 'r', encoding='utf-8') as f:
content = f.read()
return content
# 获取所有文件的路径
def get_files_path(folder_path):
files_path = []
for root, dirs, files in os.walk(folder_path):
for file in files:
file_path = os.path.join(root, file)
files_path.append(file_path)
return files_path
# 对文本进行分词
def tokenizer(text):
return [word for word in jieba.cut(text)]
# 对文本进行特征提取
def feature_extraction(files_path):
corpus = []
for path in files_path:
content = read_file(path)
corpus.append(content)
vectorizer = TfidfVectorizer(tokenizer=tokenizer)
X = vectorizer.fit_transform(corpus)
return X
# 测试
folder_path = 'path/to/folder' # 文件夹路径
files_path = get_files_path(folder_path)
X = feature_extraction(files_path)
print(X.toarray())
```
在以上代码中,我们使用了os模块读取文件,使用jieba分词器对文本进行分词,并使用TfidfVectorizer类对文本进行特征提取。最终输出了所有文本的特征向量。
阅读全文