Learning - Node embeddings¶
Node embeddings are real-valued representations of nodes that capture the node’s neighborhood (and beyond).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | from py3plex.core import multinet
from py3plex.wrappers import train_node2vec_embedding
from py3plex.visualization.embedding_visualization import embedding_visualization
from py3plex.visualization.embedding_visualization import embedding_tools
import json
## load network in GML
multilayer_network = multinet.multi_layer_network().load_network("../datasets/imdb_gml.gml",directed=True,input_type="gml")
# save this network as edgelist for node2vec
multilayer_network.save_network("../datasets/test.edgelist")
## call a specific embedding binary --- this is not limited to n2v
train_node2vec_embedding.call_node2vec_binary("../datasets/test.edgelist","../datasets/test_embedding.emb",binary="../bin/node2vec",weighted=False)
## preprocess and check embedding
multilayer_network.load_embedding("../datasets/test_embedding.emb")
## visualize embedding
embedding_visualization.visualize_embedding(multilayer_network)
## output embedded coordinates as JSON
output_json = embedding_tools.get_2d_coordinates_tsne(multilayer_network,output_format="json")
with open('../datasets/embedding_coordinates.json', 'w') as outfile:
json.dump(output_json, outfile)
|