Right now when finding the nodes we might want to put into a matrix from a semantic network, we prune the undirected version of the network using networkx to make sure concepts have a high enough degree, put those into a matrix, and prune again using SparseMatrix.squish() to make sure features have a high enough degree as well.
If we could instead represent what goes into the matrix as a bipartite undirected NetworkX graph in the first place, then we could do the pruning right the first time, and make AnalogySpace faster.
Right now when finding the nodes we might want to put into a matrix from a semantic network, we prune the undirected version of the network using networkx to make sure concepts have a high enough degree, put those into a matrix, and prune again using SparseMatrix.squish() to make sure features have a high enough degree as well.
If we could instead represent what goes into the matrix as a bipartite undirected NetworkX graph in the first place, then we could do the pruning right the first time, and make AnalogySpace faster.