Я запускаю некоторый код, который обучает, сохраняет и загружает модель Word2Vec (это часть загруженной мной библиотеки, созданной пользователем на github как часть опубликованной статьи).После запуска две части кода кажутся проблематичными, хотя на самом деле код выполняется до конца.
Первая ошибка возникает из method
, называемого train_word2vec()
(который вызывается как частьосновной метод программы).
Вторая ошибка возникает из строки позже в основной method
.
Проблемная строка 1 - в методе train_word2vec ():
if exists(model_name):
embedding_model = word2vec.Word2Vec.load(model_name) #This line causes a UserWarning.
Проблемная строка 2 - Позже в программе, в основном методе:
x_train, x_val, x_test, vocabulary, vocabulary_inv, sentences = load_data() #This line seems to run fine.
embedding_weights = train_word2vec(sentences, vocabulary_inv) #This line causes two DeprecationWarnings.
DeprecationWarnings специально создается следующей строкой в train_word2Vec:
embedding_weights = [np.array([embedding_model[w] if w in embedding_model else np.random.uniform(-0.25,0.25,embedding_model.vector_size) for w in vocabulary_inv])]
При выполнении кода первая проблемная строка вызывает предупреждение пользователя:
"C: \ Users \ User1 \ Anaconda3 \ lib\ site-packages \ smart_open \ smart_open_lib.py398: UserWarning: эта функция устарела, вместо нее используйте smart_open.open. Подробности см. в примечаниях по миграции: https://github.com/RaRe-Technologies/smart_open/blob/master/README.rst#migrating-to-the-new-open-function "
Вторая проблемная строка вызывает двеDeprecationWarnings:
"load_w2v.py:91: DeprecationWarning: вызов устаревшего ' содержит ' (метод будет удален в 4.0.0, используйте self.wv. содержит () вместо). embedding_weights = [np.array ([embedding_model [w] если w в embedding_model else np.random.uniform (-0.25,0.25, embedding_model.vector_size) для w в vocabulary_inv])] "" load_w2v.py: 91: АмортизацияnВнимание: вызов устаревшего ' getitem ' (метод будет удален в 4.0.0, используйте self.wv. getitem ()).embedding_weights = [np.array ([embedding_model [w], если w в embedding_model else np.random.uniform (-0.25,0.25, embedding_model.vector_size) для w в vocabulary_inv])] "
Я смотрелв REReME технологий RaRe. Что сбивает с толку, так это то, что нигде в моем коде я не использую функцию «smart_open», поэтому я не понимаю, почему было выдано первое предупреждение. smart_open даже не импортируется в началефайл Python.
Что касается DeprecationWarnings, я не использую в своем коде ни метод «Содержит», ни метод «getitem», поэтому не уверен, откуда поступают эти предупреждения.
КакНасколько я могу судить, кажется, что код работает правильно, и окончательный файл, кажется, был успешно создан. Однако, поскольку я воссоздаю некоторый код, который написал кто-то другой, я не уверен, что файл был создан правильно.
Do DeprecationWarnings
и UserWarnings
фактически указывают на то, что программа не была успешно выполнена? Или они просто как «предупреждения»?Т.е. возможно ли, чтобы код работал нормально, а «предупреждения» по-прежнему выдавались?
Если кто-нибудь может увидеть, как я могу изменить код, чтобы избежать этих ошибок, это было бы полезно.Я новичок в Python, поэтому, пожалуйста, укажите на любые ошибки.Спасибо.