Я пытаюсь использовать word2vec в Python с помощью gensim. Хотя я использую try/except, чтобы проверить слова, которые не входят в модель Google, и я столкнулся с проблемой. Каждый раз, когда возникает исключение, я могу напечатать слово, но там модель останавливается и не загружает оставшиеся слова в списке.Try-Except проблема со списками в Python
После кода я отобразил содержимое списка словарей, и модель останавливается в слове путешественников, не преобразовывая остальную часть слов после слова путешественников. Я действительно застрял, и я мог бы помочь в этом. Есть идеи?
for x in range(0,len(data)):
titles.append(data[x]['title'])
paragraphs.append(data[x]['paragraphs'])
model = gensim.models.Word2Vec.load('/tmp/models/google2')
for y in range(95,96):
vocabulary.append(titles[y])
vocabulary.append(paragraphs[y][0])
vocabulary.append(paragraphs[y+1][0])
print vocabulary
for entry in vocabulary:
try:
row = tokenizer.tokenize(entry)
row = [word for word in row if word not in stopwords.words('english')]
row = [model[item] for item in row]
row = [np.sum(item) for item in row]
last.append(row)
except KeyError,e:
print "There is a word that does not exist in the vocabulary: ", e
Существует слово, которое не существует в словаре: u'travellers'
словарь [0]: глобальный бум путешествий Азии
словарь [1]: континентальные сдвиги делаются с точки зрения путешествий, туризма и расходования средств, поскольку больше азиатских, и особенно китайских, путешественники выезжают за границу.
словарный запас [2]: Это была самая захватывающая вещь, которая произошла с беднейшей страной Центральной Азии в недавней памяти.
Заранее спасибо.
Это для целей тестирования мат. Цикл работает один раз и загружает 3 значения в список словарей. Нет необходимости запускать более одного раза, чтобы получить желаемый результат. Например, 2-й цикл работает 3 раза, так как в списке слов есть 3 значения. Даже если вы правы, и это вопрос, расчеты должны остановиться перед словом путешественников и не совсем там. – Swan87