Я использую Doc2Vec для анализа некоторого абзаца и хочу получить детерминированное векторное представление данных поезда.Исходя из официальной документации , мне кажется, что мне нужно установить параметры "seed" и "worker", а также переменную среды PYTHONHASHSEED в Python 3. Поэтому я написал скрипт следующим образом.
import os
from gensim.models.doc2vec import TaggedDocument
from gensim.models import Doc2Vec
def main():
# Check whether the environment variable has been set successfully
print(os.environ.get('PYTHONHASHSEED'))
docs = [TaggedDocument(['Apple', 'round', 'apple', 'red', 'Apple', 'juicy', 'apple', 'sweet'], ['A']),
TaggedDocument(['I', 'have', 'a', 'little', 'frog', 'His', 'name', 'is', 'Tiny', 'Tim'], ['B']),
TaggedDocument(['On', 'top', 'of', 'spaghetti', 'all', 'covered', 'with', 'cheese'], ['C'])]
# Loop 3 times to check whether consistent results are produced within each run
for i in range(3):
model = Doc2Vec(min_count=1, seed=12345, workers=1)
model.build_vocab(docs)
model.train(docs, total_examples=model.corpus_count, epochs=model.epochs)
print(model.docvecs['B'])
if __name__ == '__main__':
os.environ['PYTHONHASHSEED'] = '12345'
main()
Проблема в том, что при каждом запуске он дает детерминированные результаты, но когда я снова запускаю весь сценарий, он дает разные результаты.Есть ли какие-либо проблемы с настройкой переменных среды, или я что-то упускаю?
Я на Python 3.6.5.