【问题标题】:How to use individual term frequeny features with Naive Bayes classifier?如何在朴素贝叶斯分类器中使用单个词频特征?
【发布时间】:2021-05-05 15:17:21
【问题描述】:

我目前正在使用朴素贝叶斯分类器处理 NLP 任务。

我的特征由二元组和一元组组成。

现在,为了适应 X_train,我想合并前 100 个一元组和前 50 个二元组。

我该怎么做?

我只能使用前 100 个一元或前 50 个双元。

有没有一种聪明的方法,在不导出克数的情况下,包含合并的 150 克?

cv = CountVectorizer(strip_accents='ascii', analyzer='word',                                                          token_pattern=u'(?ui)\\b\\w*[a-z]+\\w*\\b',                                
                      lowercase=True, stop_words='english',   
                     ngram_range=(1,1), max_features=100)                                              
X_train_cv = cv.fit_transform(X_train)                                                           
X_test_cv  = cv.transform(X_test)

当然我可以使用ngram_range(1,2) = 150 ,但这与ngram_range(1,1), max_features=100ngram_range=(2,2) , max_features=50 不同

【问题讨论】:

  • 你不能只使用ngram_range(1,2)(同时使用unigram和bigram)然后仅按重量进入前100名吗?
  • 是的,但问题在于二元组的权重明显低于一元组。如果我使用 range(1,2) 只考虑 5 个二元组。这就是为什么我想单独合并它们。

标签: python nlp text-classification naivebayes countvectorizer


【解决方案1】:

可以创建 2 个单独的向量器并使用特征联合将它们合并:https://scikit-learn.org/stable/modules/generated/sklearn.pipeline.FeatureUnion.html

【讨论】:

  • 我会尽快尝试的。谢谢四你的努力。
  • 谢谢。正是我想要的:)
猜你喜欢
  • 2017-01-10
  • 2019-10-24
  • 2011-12-04
  • 2017-09-14
  • 2013-12-02
  • 2019-06-04
  • 2019-04-29
  • 2019-03-28
相关资源
最近更新 更多