AttributeError: у объекта 'list' нет атрибута 'lower' - Python - PullRequest
0 голосов
/ 22 октября 2019

Я пытаюсь преобразовать предложение в нижний регистр с кодом ниже

import re
temp =[]
snow = nltk.stem.SnowballStemmer('english')
for sentence in final_X:
    sentence = str(sentence.lower())                
    cleanr = re.compile('<.*?>')
    sentence = re.sub(cleanr, ' ', sentence)        
    sentence = re.sub(r'[?|!|\'|"|#]',r'',sentence)
    sentence = re.sub(r'[.|,|)|(|\|/]',r' ',sentence)        

    words = [snow.stem(word) for word in sentence.split() if word not in stopwords.words('english')]   # Stemming and removing stopwords
temp.append(words)

final_X = temp


При выполнении кода * 1007 появляется ошибка ниже*

AttributeError                            Traceback (most recent call last)
<ipython-input-31-f0e602a068f6> in <module>()
      3 snow = nltk.stem.SnowballStemmer('english')
      4 for sentence in final_X:
----> 5     sentence = str(sentence.lower())
      6     cleanr = re.compile('<.*?>')
      7     sentence = re.sub(cleanr, ' ', sentence)

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

1 Ответ

1 голос
/ 22 октября 2019

Невозможно дать вам точное исправление, так как ваш пост не является воспроизводимой ошибкой. Однако сообщение об ошибке довольно ясно

sentence относится к типу list и не имеет метода lower

Можно представить что-то вроде этого

sentence = ['This', 'is', 'a', 'sentence']

Если вы хотите, чтобы это было в одной строке, все в нижнем регистре, вы можете сделать следующее

' '.join(sentence).lower()

Это объединит все строки в списке с пробелом в одну строку, а затем в нижнем регистре результат, получая

'this is a sentence'

Предостережение заключается в том, что, основываясь на вашем посте, я не знаю, как выглядит sentence, просто это список

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...