<｜begin▁of▁sentence｜>### Instruction:
As a network data scientist, you're probably familiar with the process of creating and analyzing random graphs using networkx. Let's say you have a random graph with 100 nodes generated using the GNP random graph model with a probability of 0.1 for edge creation. Additionally, you have a random node feature matrix with 10 features per node. Now, you're interested in using the SINE model to obtain node embeddings from this graph. How can you go about utilizing networkx and the SINE model to achieve this?
### Response:
import networkx as nx
import numpy as np
from karateclub import SINE
from scipy.sparse import coo_matrix

# Creating a graph
G = nx.gnp_random_graph(100, 0.1)

# Creating a sparse feature matrix
features = np.random.rand(100, 10)
feature_indices = np.arange(100)
feature_indptr = np.arange(101)
X = coo_matrix((features.flatten(),
                 np.broadcast_to(feature_indices, (10, 100)).flatten(),
                 feature_indptr),
                shape=(100, 100))

# Initializing SINE model
model = SINE(walk_number=10,
             walk_length=80,
             dimensions=128,
             workers=4,
             window_size=5,
             epochs=1,
             learning_rate=0.05,
             min_count=1,
             seed=42)

# Fitting the model
model.fit(G, X)

# Getting the embeddings
embeddings = model.get_embedding()
print(embeddings)
<|EOT|>
