NLTK: 在向量化后的特征减少

我已经从大约3000份文档中提取了非结构化的文本数据,并试图使用这些数据对文档进行分类。

然而,即使在去除了停用词和标点符号,并对数据进行了词形还原后,计数向量化仍然产生了超过64000个特征。

这些特征中有很多包含不必要的标记,如随机数字和不同语言的文本。

我使用过的库包括:

  • 分词:Punkt(NLTK)
  • 词性标注:Penn Treebank(NLTK)
  • 词形还原:WordNet(NLTK)
  • 向量化:CountVectorizer(sk-learn)

谁能建议我如何减少用于训练分类器的特征数量?


回答:

你有两个选择,可以互补使用:

  1. 使用更强的规则和正则表达式来更改你的分词方法,以去除你不感兴趣的数字或其他标记。
  2. 使用特征选择来保留对分类有用的特征子集。以下是一个演示代码示例,用于保留数据中50%的特征:

from sklearn.datasets import load_iris

from sklearn.feature_selection import SelectPercentilefrom sklearn.feature_selection import chi2import numpyiris = load_iris()X, y = iris.data, iris.targetselector = SelectPercentile(score_func=chi2, percentile=50)X_reduced = selector.fit_transform(X, y)

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注