我有一堆14784个文本文档,我试图进行矢量化,所以我可以运行一些分析。我在sklearn中使用了CountVectorizer
来将文档转换为特征向量。我通过致电:
vectorizer = CountVectorizer
features = vectorizer.fit_transform(examples)
其中examples是所有文本文档的数组
现在,我正在尝试使用其他功能。为此,我将这些功能存储在pandas数据帧中。目前,我的pandas数据框(未插入文本功能)的形状为(14784, 5)
。我的特征向量的形状是(14784, 21343)
。
将矢量化特征插入pandas数据帧的好方法是什么?
答案 0 :(得分:17)
从原始文档中学习词汇词典后返回术语 - 文档矩阵。
X = vect.fit_transform(docs)
将稀疏csr矩阵转换为密集格式,并允许列包含从要素整数索引到要素名称的数组映射。
count_vect_df = pd.DataFrame(X.todense(), columns=vect.get_feature_names())
将原始df
和count_vect_df
列连接起来。
pd.concat([df, count_vect_df], axis=1)
答案 1 :(得分:-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)
以限制功能的数量。