Python3 Ошибка атрибута перчатки: объект «генератор» не имеет атрибута «форма» - PullRequest
0 голосов
/ 09 февраля 2020

Я пытаюсь тренировать свою модель, используя перчатку. Мой код выглядит следующим образом:

#!/usr/bin/env python3

from __future__ import print_function
import argparse
import pprint
import gensim

from glove import Glove 
from tensorflow.python.keras.utils.data_utils import Sequence
def read_corpus(filename):

delchars = [chr(c) for c in range(256)]
delchars = [x for x in delchars if not x.isalnum()]
delchars.remove(' ')
delchars = ''.join(delchars)

with open(filename, 'r') as datafile:
    for line in datafile:
        yield line.lower().translate(None, delchars).split(' ')


if __name__ == '__main__':


base_path = "/home/hunzala_awan/vocab.pubmed1.txt"

get_data = read_corpus(base_path)

glove = Glove(no_components=100, learning_rate=0.05)
glove.fit(get_data, epochs=10, verbose=True) 

pprint.pprint(glove.most_similar("cancer", number=10))

Когда я пытаюсь запустить этот код, я получаю следующую ошибку:

Traceback (последний вызов был последним): Файл "mytest3. py ", строка 36, в glove.fit (get_data, epochs = 10, verbose = True) Файл" /usr/local/lib/python3.5/dist-packages/glove/glove.py ", строка 86, in fit shape = matrix.shape AttributeError: объект «генератор» не имеет атрибута «shape»

Чего мне не хватает? Любая помощь в этом вопросе будет высоко оценена.

Заранее спасибо

1 Ответ

0 голосов
/ 09 февраля 2020

Я не знаком с Glove, но, похоже, он не подходит для функции genberator. Вы можете попытаться выдать его заранее и преобразовать в список (это будет занимать больше памяти):

glove.fit(list(get_data), epochs=10, verbose=True)
...