In [1]:
from gensim.models import Word2Vec
import json
import networkx as nx
from  networkx.readwrite.json_graph import node_link_data


/root/anaconda2/lib/python2.7/site-packages/gensim/utils.py:1015: UserWarning: Pattern library is not installed, lemmatization won't be available.
  warnings.warn("Pattern library is not installed, lemmatization won't be available.")

In [2]:
model = Word2Vec.load('data/model3.model')

In [16]:
def get_updates(word):
    if word is not None:
        try:
            results = model.most_similar(word)
            G = nx.DiGraph()
            G.add_node(0, label=word)
            i = 0
            en = 0
            for e in results:
                i = i + 1
                G.add_node(i, label=e[0])
                G.add_edge(1, i, id=en)
                en = en + 1
            rgraph=node_link_data(G, dict(id='id', source='source', target='target', key='key'))
            nodes = rgraph['nodes']
            edges = rgraph['links']
            #nodes=[{"id":"n%d"%i, "label":results[i][0]}  for i in range(len(results))]
            #edges=[]
        except Exception as e:
            nodes=edges=[]
            print(e)
        graph = {"nodes":nodes, "edges":edges}
        result_json = json.dumps(graph)
    return result_json

In [ ]:


In [17]:
#get_updates("US")


Out[17]:
'{"nodes": [{"id": 0, "label": "US"}, {"id": 1, "label": "multinational"}, {"id": 2, "label": "United_States"}, {"id": 3, "label": "foreign"}, {"id": 4, "label": "global"}, {"id": 5, "label": "Iraq"}, {"id": 6, "label": "China"}, {"id": 7, "label": "India"}, {"id": 8, "label": "Saudi"}, {"id": 9, "label": "American"}, {"id": 10, "label": "South_Korea"}], "edges": [{"source": 1, "id": 0, "target": 1}, {"source": 1, "id": 1, "target": 2}, {"source": 1, "id": 2, "target": 3}, {"source": 1, "id": 3, "target": 4}, {"source": 1, "id": 4, "target": 5}, {"source": 1, "id": 5, "target": 6}, {"source": 1, "id": 6, "target": 7}, {"source": 1, "id": 7, "target": 8}, {"source": 1, "id": 8, "target": 9}, {"source": 1, "id": 9, "target": 10}]}'

In [ ]: