如何在朴素贝叶斯分类器中使用单个词频特征?
How to use individual term frequeny features with Naive Bayes classifier?
我目前正在使用朴素贝叶斯分类器处理 NLP 任务。
我的特征由双字母组和单字母组组成。
现在,为了适应 X_train,我想合并前 100 个单字母组和前 50 个双字母组。
我该怎么做?
我只能使用前 100 个 unigrams 或前 50 个 bigrams。
有没有聪明的方法,不用导出克数,来包含合并的 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
不同
可以创建 2 个单独的 Vectorizers 并使用特征联合将它们合并:https://scikit-learn.org/stable/modules/generated/sklearn.pipeline.FeatureUnion.html
我目前正在使用朴素贝叶斯分类器处理 NLP 任务。
我的特征由双字母组和单字母组组成。
现在,为了适应 X_train,我想合并前 100 个单字母组和前 50 个双字母组。
我该怎么做?
我只能使用前 100 个 unigrams 或前 50 个 bigrams。
有没有聪明的方法,不用导出克数,来包含合并的 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
可以创建 2 个单独的 Vectorizers 并使用特征联合将它们合并:https://scikit-learn.org/stable/modules/generated/sklearn.pipeline.FeatureUnion.html