【问题标题】:SKlearn: load trainning data by reading multiple files in a directorySKlearn:通过读取目录中的多个文件来加载训练数据
【发布时间】:2013-06-29 20:03:22
【问题描述】:

我可以毫无问题地从单个文件输入测试数据。但是,每当我尝试从目录中的多个文件输入数据时,都会收到以下错误: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

【问题讨论】:

  • 你能粘贴整个堆栈跟踪吗?

标签: python-2.7 vector similarity


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-12
    • 2021-01-05
    • 2017-08-29
    • 2017-02-18
    • 2018-12-21
    • 1970-01-01
    相关资源
    最近更新 更多