2017-09-11 40 views
0

我有以下格式AA嵌套的Python列表Python列表和sklearn HashingVectorizer

npes = [['a','b'], ['d','e'],['f','g']] 

我需要向量化使用HashingVectorizer()这个名单,但是我不能明白我应该如何处理使用vectorizer.fit_transform

这个名单
vectorizer = HashingVectorizer() 
Xc = vectorizer.fit_transform(npes) 

上面提供了以下错误

AttributeError: 'list' object has no attribute 'lower' 

竟被d有谁知道如何做到这一点?

+1

我不知道该sklearn HashingVectorizer,但lower'在开始变成资本的功能'将字符串转换为小写字母。这意味着你的脚本将'npes'的元素解释为'strings',但是他们又是'lists'。也许你应该在矢量化之前弄平列表? – offeltoffel

回答

2

npes是一个列表清单,vectorizer没有列出清单作为参数。所以扁平化列表并把它作为一个参数,即

npes = [['a','b'], ['d','e'],['f','g']] 
vectorizer = HashingVectorizer() 
Xc = vectorizer.fit_transform(sum(npes, [])) 

如果您使用numpy的那么npes = np.ravel(npes)