Python UnboundLocalError:局部变量';矢量器&x27;分配前参考
有人能帮我找到以下代码中的错误吗:UnboundLocalError:赋值前引用的局部变量“vectorizer”Python UnboundLocalError:局部变量';矢量器&x27;分配前参考,python,python-3.x,Python,Python 3.x,有人能帮我找到以下代码中的错误吗:UnboundLocalError:赋值前引用的局部变量“vectorizer” def ngrams(data, labels, ntrain, mn=1, mx=1, nm=500, binary = False, donorm = False, stopwords = False, verbose = True, analyzer_char = False): f = data if donorm: f = normalize(f)
def ngrams(data, labels, ntrain, mn=1, mx=1, nm=500, binary = False,
donorm = False, stopwords = False, verbose = True, analyzer_char = False):
f = data
if donorm:
f = normalize(f)
ftrain = f[:ntrain]
ftest = f[ntrain:]
y_train = labels[:ntrain]
t0 = time()
analyzer_type = 'word'
if analyzer_char:
analyzer_type = 'char'
if binary:
vectorizer = CountVectorizer(max_n=mx,min_n=mn,binary=True)
elif stopwords:
vectorizer = TfidfVectorizer(max_n=mx,min_n=mn,stop_words='english',
analyzer=analyzer_type,sublinear_tf=True)
if verbose:
print ("extracting ngrams... where n is [%d,%d]" % (mn,mx))
X_train = vectorizer.fit_transform(ftrain)
X_test = vectorizer.transform(ftest)
**
任何建议都将不胜感激,谢谢各位** 就像wjandrea在评论中所说的,如果
二进制
和停止字
都不是真的,那么矢量器
就不会被初始化。因此,当您尝试在其上调用fit\u transform
时,它会出现异常。请发布完整的堆栈跟踪。能否编辑您的问题以包括抛出错误的行?包括完整的堆栈跟踪也会很有帮助:-)从一眼看,如果二进制
和停止字
都为假,矢量器
将未定义。虽然代码没有正确缩进,但您可以修改它。顺便说一句,欢迎来到SO!如果需要建议,请查看和。