NLP 中的 CountVectorizer

2025年6月17日 | 阅读5分钟

CountVectorizer 是一个基础的自然语言处理工具,用于将文本数据转换为数值表示。它是词袋 (BoW) 模型的一个组成部分,该模型根据文档或语料库中单词的频率来表示文本数据。这种转换对于机器学习算法至关重要,因为大多数任务(如文本分类、情感分析和主题建模)都需要数值输入。

CountVectorizer 的工作原理很简单,例如对文档或文本进行分词,将文本分割成单词或称为 n-gram 的单词序列,然后构建一个唯一单词的字典,之后为语料库中的所有文档构建一个稀疏矩阵表示,其中每一行对应语料库中的一个文档,每一列对应词汇表中的一个词项。矩阵中的值是每个文档中词项的频率。例如,如果一个词项在文档中出现两次,则其在矩阵中的出现计数为 2。

Countvectorizer in NLP

CountVectorizer 最吸引人的功能之一可能是其在过程中调整任何分词的灵活性,通过过滤停用词以及应用最小和最大词项频率。这意味着更好地控制文本数据的表示,并允许创建 n-gram,这反过来有助于通过连续的词序列而不是像每个单词单独出现的情况那样独立的单元来表示上下文。

现在我们将有效地使用 CountVectorizer 对 URL 进行分词,使模型能够根据字符或单词学习模式。

导入库

加载数据集

数据预处理

特征工程

分割数据集

代码

输出

<1x173 sparse matrix of type '<class 'numpy.int64'>' 	with 11 stored elements in Compressed Sparse Row format>

代码

输出

<1x173 sparse matrix of type '<class 'numpy.int64'>' 	with 11 stored elements in Compressed Sparse Row format>

CountVectorizer 用于特征提取

代码

输出

Countvectorizer in NLP

代码

输出

scipy.sparse._csr.csr_matrix

代码

输出

Countvectorizer in NLP

现在我们将尝试将以下数据输入各种模型并查看它们的准确性。

逻辑回归

代码

输出

Countvectorizer in NLP

KNeighborsClassifier

代码

输出

Countvectorizer in NLP

MultinomialNB

代码

输出

Countvectorizer in NLP

DecisionTreeClassifier

代码

输出

Countvectorizer in NLP

RandomForestClassifier

代码

输出

Countvectorizer in NLP

XGBClassifier

代码

输出

Countvectorizer in NLP

绩效指标

代码

输出

Countvectorizer in NLP
Countvectorizer in NLP
Countvectorizer in NLP
Countvectorizer in NLP
Countvectorizer in NLP
Countvectorizer in NLP

让我们用条形图显示结果。

代码

输出

Countvectorizer in NLP

代码

输出

Countvectorizer in NLP