Ho una matrice unidimensionale con stringhe grandi in ciascuno degli elementi. Sto cercando di utilizzare un CountVectorizer
per convertire i dati di testo in vettori numerici. Tuttavia, io sono sempre un detto errore:CountVectorizer: AttributeError: l'oggetto 'numpy.ndarray' non ha attributo 'lower'
AttributeError: 'numpy.ndarray' object has no attribute 'lower'
mealarray
contiene stringhe di grandi dimensioni in ciascuno degli elementi. Ci sono 5000 tali campioni. Sto cercando di vettorizzare questo come indicato di seguito:
vectorizer = CountVectorizer(
stop_words='english',
ngram_range=(1, 1), #ngram_range=(1, 1) is the default
dtype='double',
)
data = vectorizer.fit_transform(mealarray)
La piena stacktrace:
File "/Library/Python/2.7/site-packages/sklearn/feature_extraction/text.py", line 817, in fit_transform
self.fixed_vocabulary_)
File "/Library/Python/2.7/site-packages/sklearn/feature_extraction/text.py", line 748, in _count_vocab
for feature in analyze(doc):
File "/Library/Python/2.7/site-packages/sklearn/feature_extraction/text.py", line 234, in <lambda>
tokenize(preprocess(self.decode(doc))), stop_words)
File "/Library/Python/2.7/site-packages/sklearn/feature_extraction/text.py", line 200, in <lambda>
return lambda x: strip_accents(x.lower())
AttributeError: 'numpy.ndarray' object has no attribute 'lower'
Qualcuno (senza avere la traccia completa dello stack, è difficile dire chi, scikit o Numpy) sta tentando di trattare un array Numpy come una stringa ('" FOO ".lower()' restituisce '" foo "') . Sei sicuro che i contenuti di 'mealarray' sono stringhe, o che' CountVectorizer' vuole una serie di stringhe? –
@AhmedFasih, ha appena aggiunto la traccia dello stack completo alla domanda! – ashu