Tôi có mảng một chiều với các chuỗi lớn trong mỗi phần tử. Tôi đang cố gắng sử dụng một số CountVectorizer
để chuyển đổi dữ liệu văn bản thành các vectơ số. Tuy nhiên, tôi gặp lỗi khi nói:CountVectorizer: AttributeError: đối tượng 'numpy.ndarray' không có thuộc tính 'lower'
AttributeError: 'numpy.ndarray' object has no attribute 'lower'
mealarray
chứa các chuỗi lớn trong mỗi phần tử. Có 5000 mẫu như vậy. Tôi cố gắng để vectorize này như đưa ra dưới đây:
vectorizer = CountVectorizer(
stop_words='english',
ngram_range=(1, 1), #ngram_range=(1, 1) is the default
dtype='double',
)
data = vectorizer.fit_transform(mealarray)
Các stacktrace đầy đủ:
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'
Một người nào đó (không có dấu vết ngăn xếp đầy đủ, thật khó để biết ai, hoặc là scikit hoặc Numpy) đang cố xử lý mảng Numpy dưới dạng một chuỗi ('" FOO ".lower()' trả về '" foo "') . Bạn có chắc nội dung 'mealarray' là các chuỗi, hay' CountVectorizer' muốn một mảng chuỗi? –
@AhmedFasih, vừa thêm dấu vết ngăn xếp đầy đủ vào câu hỏi! – ashu