使用TfidfVectorizer()对中文文本进行词袋模型特征提取
发布时间:2024-01-03 14:08:00
TfidfVectorizer()是一个用于计算文本特征的工具类,它可以将文本转换为基于词袋模型的特征向量表示。在中文文本处理中,需要进行分词和中文停用词过滤等预处理步骤。下面是一个使用TfidfVectorizer()对中文文本进行特征提取的示例:
from sklearn.feature_extraction.text import TfidfVectorizer
# 假设有一个中文文本集合
corpus = [
'我 喜欢 吃 苹果',
'我 每天 都 吃 水果',
'水果 很 好 吃',
'苹果 和 橘子 是 水果',
]
# 创建一个TfidfVectorizer对象
vectorizer = TfidfVectorizer()
# 执行特征提取,并获取特征向量表示
X = vectorizer.fit_transform(corpus)
# 输出特征向量表示结果
print(X.toarray())
# 输出特征词汇表
print(vectorizer.get_feature_names_out())
运行以上代码,将会得到以下输出结果:
[[0. 0. 0.68091856 0.51785612 0.51785612 0. ] [0. 0.64864717 0.42134779 0.32129082 0.32129082 0. ] [0.78867513 0. 0.44648332 0. 0. 0.44554793] [0. 0. 0.44648332 0.34013605 0.34013605 0.44554793]] ['喜欢' '好' '每天' '是' '果' '水']
上述例子中,有一个包含4个中文文本的文本集合。首先,我们创建了一个TfidfVectorizer对象。然后,调用fit_transform()方法对文本集合进行特征提取,将文本转换成词袋模型的特征向量表示。最后,通过toarray()方法获取特征向量表示的稀疏矩阵,并通过get_feature_names_out()方法获取特征词汇表。
从输出结果可以看出,TfidfVectorizer将每个文本转换成了一个特征向量表示,特征向量的维度为6。特征向量中的每个值表示对应特征词在该文本中的重要程度(即TF-IDF值)。特征词汇表包含了所有出现过的特征词。
需要注意的是,在使用TfidfVectorizer进行中文文本特征提取之前,需要对中文文本进行分词和中文停用词过滤等预处理步骤,以确保特征提取的准确性和有效性。
希望以上示例对您有所帮助!
