Я пытаюсь выполнить преобразование TF-IDF для набора данных, используя sklearn
s TfidfVectorizer
.
Я получаю следующую ошибку:
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-212-ded21402d527> in <module>
----> 1 noise_tf = tfidf.fit(noise_data)
~\AppData\Local\Continuum\anaconda3\lib\site-packages\sklearn\feature_extraction\text.py in fit(self, raw_documents, y)
1629 """
1630 self._check_params()
-> 1631 X = super().fit_transform(raw_documents)
1632 self._tfidf.fit(X)
1633 return self
~\AppData\Local\Continuum\anaconda3\lib\site-packages\sklearn\feature_extraction\text.py in fit_transform(self, raw_documents, y)
1056
1057 vocabulary, X = self._count_vocab(raw_documents,
-> 1058 self.fixed_vocabulary_)
1059
1060 if self.binary:
~\AppData\Local\Continuum\anaconda3\lib\site-packages\sklearn\feature_extraction\text.py in _count_vocab(self, raw_documents, fixed_vocab)
968 for doc in raw_documents:
969 feature_counter = {}
--> 970 for feature in analyze(doc):
971 try:
972 feature_idx = vocabulary[feature]
~\AppData\Local\Continuum\anaconda3\lib\site-packages\sklearn\feature_extraction\text.py in <lambda>(doc)
350 tokenize)
351 return lambda doc: self._word_ngrams(
--> 352 tokenize(preprocess(self.decode(doc))), stop_words)
353
354 else:
~\AppData\Local\Continuum\anaconda3\lib\site-packages\sklearn\feature_extraction\text.py in <lambda>(x)
254
255 if self.lowercase:
--> 256 return lambda x: strip_accents(x.lower())
257 else:
258 return strip_accents
AttributeError: 'int' object has no attribute 'lower'
Iубедился, что данные не содержат int
s:
>> noise_data.apply(lambda x: isinstance(x, int)).sum()
0
Тогда я просто:
tfidf = TfidfVectorizer(min_df = 5)
noise_tf = tfidf.fit(noise_data)
и получил вышеупомянутую ошибку.
Я ожидаю, что этот код будет работать нормально, поскольку в данных нет int
.
Есть идеи, что может быть причиной TfidfVectorizer
повышения этой ошибки?
Спасибо!