4

我可以毫无问题地从单个文件中输入测试数据。但是,每当我尝试从目录中的多个文件输入数据时,都会收到以下错误:AttributeError:'NoneType' 对象没有属性'lower'。请在下面查看我的代码,我将不胜感激。谢谢。

from sklearn.feature_extraction.text import CountVectorizer
from sklearn.feature_extraction.text import TfidfTransformer
from nltk.corpus import stopwords
import numpy as np
import numpy.linalg as LA

import os
path = "C:\zircon"

def radfil():
    for file in os.listdir(path):
        current = os.path.join(path, file)
        if os.path.isfile(current):
            data = open(current, "rb").read()
            print data

train_set = [radfil()]
test_set = ["The sun in the sky is bright."]
stopWords = stopwords.words('english')

vectorizer = CountVectorizer(stop_words=stopWords, min_df=1)
#print vectorizer
transformer = TfidfTransformer()
#print transformer

trainVectorizerArray = vectorizer.fit_transform(train_set).toarray()
testVectorizerArray = vectorizer.transform(test_set).toarray()
print 'Fit Vectorizer to train set', trainVectorizerArray
print 'Transform Vectorizer to test set', testVectorizerArray
4

1 回答 1

0

我猜您的错误是由于尝试在 None 类型的变量中执行 lower() 操作引起的。也许这发生在

trainVectorizerArray = vectorizer.fit_transform(train_set).toarray()

radfil() 将返回 None 类型。尝试组合文件中的数据并将返回语句添加到 radfil()。这就是我在没有完整堆栈跟踪的情况下所能做的一切。

于 2013-09-22T03:01:55.703 回答