Python 我的列车测试数据拆分不起作用。单格表示所有类别的相同单词

Python 我的列车测试数据拆分不起作用。单格表示所有类别的相同单词,python,machine-learning,scikit-learn,data-science,text-classification,Python,Machine Learning,Scikit Learn,Data Science,Text Classification,当将文本分类器数据拆分为测试序列并使用chi2查找Unigram时,我的两个类别都显示相同的Unigram,训练也没有完成 使用chi2查找单图。尝试使用其他模型进行训练,但结果相同。 预期结果如下: 我把板球和足球分为两类。 在每一个单字中,只允许使用特定的和不同的单词。但是,对于每一个板球和足球unigram,都会出现同样的词汇 X = df.Content_Parsed y = df.Category_Code X_train, X_test, y_train, y_test = trai

当将文本分类器数据拆分为测试序列并使用chi2查找Unigram时,我的两个类别都显示相同的Unigram,训练也没有完成

使用chi2查找单图。尝试使用其他模型进行训练,但结果相同。 预期结果如下: 我把板球和足球分为两类。 在每一个单字中,只允许使用特定的和不同的单词。但是,对于每一个板球和足球unigram,都会出现同样的词汇

X = df.Content_Parsed
y = df.Category_Code
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.1, 
random_state = 42)
ngram_range = (1,2)
min_df = 1
max_df = 50.
max_features = 300

tfidf = TfidfVectorizer(encoding='utf-8',
                    ngram_range=ngram_range,
                    stop_words=None,
                    lowercase=False,
                    max_df=max_df,
                    min_df=min_df,
                    max_features=max_features,
                    norm='l2',
                    sublinear_tf=True)

features_train = tfidf.fit_transform(X_train).toarray()
labels_train = y_train
print(features_train.shape)
labels_train.head()

features_test = tfidf.transform(X_test).toarray()
labels_test = y_test
print(features_test.shape)
from sklearn.feature_selection import chi2
import numpy as np

for Product, category_id in sorted(category_codes.items()):
    features_chi2 = chi2(features_train, labels_train == category_id)
    indices = np.argsort(features_chi2[0])
    feature_names = np.array(tfidf.get_feature_names())[indices]
    unigrams = [v for v in feature_names if len(v.split(' ')) == 1]
    bigrams = [v for v in feature_names if len(v.split(' ')) == 2]
    print("# '{}' category:".format(Product))
    print("  . Most correlated unigrams:\n. {}".format('\n. '.join(unigrams[-5:])))
    print("  . Most correlated bigrams:\n. {}".format('\n. '.join(bigrams[-2:])))
    print("")