【发布时间】:2018-05-05 07:15:36
【问题描述】:
我正在尝试使用 sklearn CountVectorizer 对一些文本进行矢量化。之后,我想看看生成矢量化器的特征。但相反,我得到了一个代码列表,而不是单词。这是什么意思以及如何处理这个问题?这是我的代码:
vectorizer = CountVectorizer(min_df=1, stop_words='english')
X = vectorizer.fit_transform(df['message_encoding'])
vectorizer.get_feature_names()
我得到以下输出:
[u'00',
u'000',
u'0000',
u'00000',
u'000000000000000000',
u'00001',
u'000017',
u'00001_copy_1',
u'00002',
u'000044392000001',
u'0001',
u'00012',
u'0004',
u'0005',
u'00077d3',
等等。
我需要真实的特征名称(单词),而不是这些代码。有人可以帮帮我吗?
更新: 我设法处理了这个问题,但是现在当我想查看我的单词时,我看到许多实际上不是单词的单词,而是毫无意义的字母集(见附件截图)。在我使用 CountVectorizer 之前,有人知道如何过滤这个词吗?
【问题讨论】:
-
显示你的 data.head()
-
整个数据框?
-
事实上,我的许多词(特征)都变得相连(没有空格)。我认为它降低了我的模型的预测准确性。什么会导致这个问题?
-
这个问题值得
scikit-learn社区更多关注。这个问题仍然存在,我浪费了一整天试图找出我的代码有什么问题!这应该已经修复了!
标签: pandas machine-learning scikit-learn nlp countvectorizer