我有一堆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())
按列连接原始df
和count_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)
,以限制功能的数量。