在pandas数据框架中插入sklearn CountVectorizer的结果



我有一堆14784个文本文档,我试图对其进行矢量化,因此我可以运行一些分析。我使用了sklearn中的CountVectorizer,将文档转换为特征向量。我通过调用:

vectorizer = CountVectorizer
features = vectorizer.fit_transform(examples)

其中examples是所有文本文档的数组

现在,我正在尝试使用额外的功能。为此,我将特征存储在pandas数据框架中。目前,我的pandas数据框(不插入文本特征)的形状为(14784, 5)。我的特征向量的形状是(14784, 21343)

将矢量化特征插入pandas数据框架的好方法是什么?

从原始文档中学习词汇字典后返回术语-文档矩阵

X = vect.fit_transform(docs) 

将稀疏csr矩阵转换为密集格式,并允许列包含从特征整数索引到特征名称的数组映射。

count_vect_df = pd.DataFrame(X.todense(), columns=vect.get_feature_names_out())

按列连接原始dfcount_vect_df

pd.concat([df, count_vect_df], axis=1)

如果你的基本数据帧是df,你所需要做的就是:

import pandas as pd    
features_df = pd.DataFrame(features)
combined_df = pd.concat([df, features_df], axis=1)

我会推荐一些选项来减少特征的数量,这取决于你所做的分析的类型。例如,如果你还没有准备好,我建议你考虑删除停止词和词干。此外,您可以设置max_features,如features = vectorizer.fit_transform(examples, max_features = 1000),以限制功能的数量。

相关内容

  • 没有找到相关文章

最新更新