Я пытаюсь создать вложения для списка ребер, который у меня есть, используя networkx и node2vec. Мой список краев выглядит следующим образом:
1 2
1 6
...
450 230
...
601 602
Это невзвешенный неориентированный граф, в основном, и хранится в текстовом файле. Я пытаюсь преобразовать это в график, используя следующее:
nx_G = nx.read_edgelist(args.input, delimiter=' ', create_using=nx.DiGraph())
G = node2vec.Graph(nx_G, args.directed, args.p, args.q, args.seed)
G.preprocess_transition_probs()
walks = G.simulate_walks(args.num_walks, args.walk_length)
walks = [str(walk) for walk in walks]
model = Word2Vec(walks, size=args.dimensions, window=args.window_size, min_count=0, sg=1, workers=args.workers, iter=args.iter)
model.wv.save_word2vec_format(args.output)
где args.input предоставляет текстовый файл. Функция read_edgelist правильно читает узлы, и создаются вложения. Однако в файле вложений узлы не нумеруются с 1 по 606 (это значения узлов в моем списке ребер): вместо этого они имеют число 14, с цифрами от 0 до 9 и некоторыми специальными символами в качестве значений узлов вместо этого для которых были созданы вложения. То есть вместо того, чтобы читать все число из более чем одной цифры (скажем, 29) как один узел, он просто читает 2 и вычисляет вложения для него. Я не понимаю, почему это происходит, и был бы признателен за понимание.