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

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

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