python tf-idf实现中文文本特征提取
时间: 2023-08-07 13:05:56 浏览: 95
以下是使用Python的sklearn库中的TfidfVectorizer类实现中文文本特征提取的示例代码:
```python
from sklearn.feature_extraction.text import TfidfVectorizer
# 定义一些中文文本
text1 = "这是一篇关于自然语言处理的文章。"
text2 = "自然语言处理是人工智能领域的一个重要分支。"
text3 = "机器学习是实现自然语言处理的重要手段之一。"
# 将文本放入列表中
corpus = [text1, text2, text3]
# 创建TfidfVectorizer实例,设置分词器为jieba分词器
vectorizer = TfidfVectorizer(tokenizer=jieba.cut)
# 对文本进行特征提取
X = vectorizer.fit_transform(corpus)
# 输出特征向量
print(X.toarray())
```
在以上代码中,我们使用了jieba分词器对文本进行分词,并使用TfidfVectorizer类对文本进行特征提取。最终输出了每个文本的特征向量。
相关问题
python实现tf-idf中文文本特征提取以及文件读取
以下是使用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类对文本进行特征提取。最终输出了所有文本的特征向量。
python实现tf-idf中文文本特征提取以及读取测试集文件
以下是使用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
# 读取测试集文件
def read_test_file(path):
with open(path, 'r', encoding='utf-8') as f:
content_list = f.readlines()
content_list = [content.strip() for content in content_list]
return content_list
# 测试
train_folder_path = 'path/to/train/folder' # 训练集文件夹路径
test_file_path = 'path/to/test/file' # 测试集文件路径
train_files_path = get_files_path(train_folder_path)
X_train = feature_extraction(train_files_path)
test_content_list = read_test_file(test_file_path)
X_test = vectorizer.transform(test_content_list)
print(X_train.toarray())
print(X_test.toarray())
```
在以上代码中,我们使用了os模块读取文件,使用jieba分词器对文本进行分词,并使用TfidfVectorizer类对文本进行特征提取。同时,我们也实现了读取测试集文件的函数,并使用特征提取器对测试集进行特征提取。最终输出了训练集和测试集的特征向量。
阅读全文