【发布时间】: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=100 和ngram_range=(2,2) , max_features=50 不同
【问题讨论】:
-
你不能只使用
ngram_range(1,2)(同时使用unigram和bigram)然后仅按重量进入前100名吗? -
是的,但问题在于二元组的权重明显低于一元组。如果我使用 range(1,2) 只考虑 5 个二元组。这就是为什么我想单独合并它们。
标签: python nlp text-classification naivebayes countvectorizer