欢迎访问宙启技术站
智能推送

使用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进行中文文本特征提取之前,需要对中文文本进行分词和中文停用词过滤等预处理步骤,以确保特征提取的准确性和有效性。

希望以上示例对您有所帮助!