首页 > 解决方案 > 获取:AttributeError:“list”对象在尝试运行 NLP 分类模型时没有属性“lower”

问题描述

尝试按照代码运行但得到 AttributeError:

# Vectorize training and testing data
def Vectorize(vec, X_train, X_test):    
    
    X_train_vec = vec.fit_transform(X_train)
    X_test_vec = vec.transform(X_test)
    
    print('Vectorization complete.\n')
    
    return X_train_vec, X_test_vec

# Use multiple classifiers and grid search for prediction
def ML_modeling(models, params, X_train, X_test, y_train, y_test):    
    
    if not set(models.keys()).issubset(set(params.keys())):
        raise ValueError('Some estimators are missing parameters')

    for key in models.keys():
    
        model = models[key]
        param = params[key]
        gs = GridSearchCV(model, param, cv=5, error_score=0, refit=True)
        gs.fit(X_train, y_train)
        y_pred = gs.predict(X_test)
        
        # Print scores for the classifier
        print(key, ':', gs.best_params_)
        print("Precision: %1.3f \tRecall: %1.3f \t\tF1: %1.3f\n" % (precision_score(y_test, y_pred, average='macro'), recall_score(y_test, y_pred, average='macro'), f1_score(y_test, y_pred, average='macro')))
    
    return

models = {
    'Naive Bayes': GaussianNB()
}

params = {
    'Naive Bayes': { 'alpha': [0.5, 1], 'fit_prior': [True, False] }
}



# Train-test split and vectorize

X_train_vec, X_test_vec = Vectorize(TfidfVectorizer(), train["Abstract"], test["Abstract"])

ML_modeling(models, params, X_train_vec, X_test_vec, train.Include, test.Include)

尝试运行 NLP 分类模型 (TFIDF)a。但得到属性错误。

AttributeError Traceback (last recent call last) in 43 # Train-test split and vectorize 44 # X_train, X_test, y_train, y_test = train_test_split(df['text'], df['category'], test_size=0.2, shuffle=True ) ---> 45 X_train_vec, X_test_vec = Vectorize(TfidfVectorizer(), train["Abstract"], test["Abstract"]) 46 47 ML_modeling(models, params, X_train_vec, X_test_vec, train.Include, test.Include)

在 Vectorize(vec, X_train, X_test) 4 def Vectorize(vec, X_train, X_test): 5 ----> 6 X_train_vec = vec.fit_transform(X_train) 7 X_test_vec = vec.transform(X_test) 8

预处理后的数据: 在此处输入图像描述

如何摆脱这个属性错误?

标签: python-3.xnlp

解决方案


推荐阅读