【发布时间】:2018-05-13 06:23:53
【问题描述】:
我已经从大约 3000 个文档中提取了非结构化文本数据,并且我正在尝试使用这些数据来对该文档进行分类。
但是,即使在移除停用词和标点符号并对数据进行词形还原之后,计数向量化仍会产生超过 64000 个特征。
其中许多功能包含不必要的标记,例如随机数和不同语言的文本。
我用过的库有:
- 标记化:Punkt (NLTK)
- pos 标记:Penn Treebank (NLTK)
- 词形化:WordNet(NLTK)
- 矢量化:CountVectorizer (sk-learn)
谁能建议我如何减少训练分类器的特征数量?
【问题讨论】:
-
计数向量器总是会为任何类型的大型语料库产生大量特征。您应该尝试为它提供一个词汇表以限制它。制作一个好的词汇表本身就是一个很好的问题。
-
没错。这个特殊问题的问题在于,对我来说,它处于未知领域。所以我什至不确定我应该尝试找到的单词
-
如果您想了解是什么让单词对识别/分类文档很重要,我建议您研究
tf/idf算法。它甚至可能是 CountVectorizer 在内部用于加权的方法,但如果您很好地掌握了单词的选择方式,您应该能够从语料库中列出最重要的单词。这能解决你的问题吗? -
为了扩展我上次的评论,我记得一个教程,它使用 sklearn 和字数向量 ins 的方式与您相同,但将它与 tf idf 结合起来处理数据量。你可能会在那里找到帮助:scikit-learn.org/stable/auto_examples/model_selection/…
标签: python machine-learning scikit-learn nlp nltk