Почему я столкнулся с AttributeError: у объекта 'WordListCorpusReader' нет атрибута 'word' в python?
Ниже приведен метод, который я пытался закодировать. Тем не менее, в строке 3 кодов сказано, что есть ошибка атрибута, и что объект "WordListCorpusReader" не имеет атрибута "слово" в python. Пожалуйста, помогите мне взглянуть на следующие коды:((
'''step 3. conduct preprocessing steps'''
# setting up the resources for the preprocessing steps
stop = set(stopwords.word('english'))
exclude = set(string.punctuation)
lemma = WordNetLemmatizer()
def clean(doc):
stop_free = ''.join([i for i in doc.lower().split() if i not in stop])
punc_free = ''.join([ch for ch in stop_free if ch not in exclude])
normalized = ''.join(wn.lemma.lemmatize(word) for word in punc_free.split())
return normalized
doc_clean = [clean(doc).split() for doc in corpus]
'''step 4. prepare word representation'''
dictionary = corpora.Dictionary(doc_clean)
doc_term_matrix = [dictionary.doc2bow(doc) for doc in doc_clean]
'''step 5. create lda model'''
topic_num = 5
word_num = 5
Lda = gensim.models.ldamodel.LdaModel
ldamodel = Lda(doc_term_matrix, num_topics=topic_num, id2word=dictionary, passes=20)
pprint(ldamodel.print_topics(num_topics=topic_num, num_words=word_num))
Это трассировка после запуска кодов:
Traceback (most recent call last):
File "C:/Users/user/PycharmProjects/topicmodel/topicmodel.py", line 41, in <module>
stop = set(stopwords.word('english'))
File "C:\Users\user\AppData\Roaming\Python\Python37\site-packages\nltk\corpus\util.py", line 119, in __getattr__
return getattr(self, attr)
AttributeError: 'WordListCorpusReader' object has no attribute 'word'
1 ответ
Решение
Это опечатка. Вы должны вызывать метод stopwords.words()
, Изменить это:
stop = set(stopwords.word('english'))
в
stop = set(stopwords.words('english'))
и это должно решить эту проблему.
Дополнительная информация на странице документации NLTK: https://www.nltk.org/api/nltk.corpus.html?highlight=corpus.