猿问

python特征提取:AttributeError:'list'对象没有属性'lower'

如果我在写这个 ::


bow_vect = CountVectorizer(max_df=0.90, min_df=2, max_features=1000, stop_words='english')

bow = bow_vect.fit_transform(combi['tidy_tweet'])

我收到这个错误::


AttributeError                            Traceback (most recent call last)

<ipython-input-65-745529b5930e> in <module>

      1 bow_vect = CountVectorizer(max_df=0.90, min_df=2, max_features=1000, stop_words='english')

----> 2 bow = bow_vect.fit_transform(combi['tidy_tweet'])


c:\users\avinash\appdata\local\programs\python\python37\lib\site-packages\sklearn\feature_extraction\text.py in fit_transform(self, raw_documents, y)

   1010 

   1011         vocabulary, X = self._count_vocab(raw_documents,

-> 1012                                           self.fixed_vocabulary_)

   1013 

   1014         if self.binary:


c:\users\avinash\appdata\local\programs\python\python37\lib\site-packages\sklearn\feature_extraction\text.py in _count_vocab(self, raw_documents, fixed_vocab)

    920         for doc in raw_documents:

    921             feature_counter = {}

--> 922             for feature in analyze(doc):

    923                 try:

    924                     feature_idx = vocabulary[feature]


c:\users\avinash\appdata\local\programs\python\python37\lib\site-packages\sklearn\feature_extraction\text.py in <lambda>(doc)

    306                                                tokenize)

    307             return lambda doc: self._word_ngrams(

--> 308                 tokenize(preprocess(self.decode(doc))), stop_words)

    309 

    310         else:


c:\users\avinash\appdata\local\programs\python\python37\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: 'list' object has no attribute 'lower'


ABOUTYOU
浏览 518回答 1
1回答

HUX布斯

在不知道combi['tidy_tweet']实际类型的情况下,这可能是因为 fit_transform 需要一个可迭代的字符串,而您正在为其提供一个系列。combi['tidy_tweet']实际上应该是适合 fit_transform 工作的字符串列表。目前看起来它是一系列字符串列表。因此,最好的办法是将每一行(列表)中的标记连接成一个字符串,将这些字符串打包成一个列表,然后对其使用 fit_transform。
随时随地看视频慕课网APP

相关分类

Python
我要回答