Python文本向量化入门(三):查看默认词袋

在文本分析和自然语言处理中,将文本数据转换为数值型格式是至关重要的第一步。这有助于我们利用机器学习算法进行更高效的数据分析。Scikit-learn库中的CountVectorizer类是一个非常有用的工具,它可以将文本数据转换为词频矩阵。

首先,我们需要导入所需的库和模块:

from sklearn.feature_extraction.text import CountVectorizer

接下来,我们定义了一些文本数据,这些数据包含了一些中文句子。

documents = [ 

	'这是第一个文档。', 

	'这是第二个文档。', 

	'这是第三个文档。第三个文档有很多词,但有些词是重复的。' 

]

然后,我们创建一个CountVectorizer对象。默认情况下,CountVectorizer会使用所有的非停用词作为词袋(即特征)。

vectorizer = CountVectorizer()

接下来,我们使用fit_transform方法将文本数据转换为词频矩阵。这将返回一个稀疏矩阵,其中每一行表示一个文档,每一列表示一个词汇,矩阵中的值表示该词汇在该文档中出现的次数。

vectorized_data = vectorizer.fit_transform(documents)

然后,我们可以打印词频矩阵的数组表示形式,以查看矩阵的内容。

print(vectorized_data.toarray())

最后,我们可以使用get_feature_names方法输出默认的词袋(词汇表)。这个词汇表包含了在我们的文本数据中出现过的所有非停用词。

print(vectorizer.get_feature_names())

输入结果:

['但有些词是重复的', '第三个文档有很多词', '这是第一个文档', '这是第三个文档', '这是第二个文档']

看到这个结果我有很大的疑问,为什么是这样分词的,为什么没有按照中文分词处理。所以我就去查了相关资料,得到了下面的原因

CountVectorizer会将输入的文本数据切分成词汇(主要是对英文),并使用这些词汇作为特征。但是,它并不会对中文文本进行分词处理。对于中文文本,通常需要进行分词处理,即将连续的字符序列切分成单独的词或词素。

你可能感兴趣的:(Python,python,开发语言)