Commit 65922ca0 authored by delanoe's avatar delanoe

[FIX] Coocurrencs with list management.

parent c24f590b
...@@ -8,6 +8,7 @@ from gargantext_web.db import session, cache, get_or_create_node, bulk_insert ...@@ -8,6 +8,7 @@ from gargantext_web.db import session, cache, get_or_create_node, bulk_insert
from analysis.lists import WeightedMatrix, UnweightedList, Translations from analysis.lists import WeightedMatrix, UnweightedList, Translations
def cooc(corpus=None def cooc(corpus=None
, field_X=None, field_Y=None
, miam_id=None, stop_id=None, group_id=None , miam_id=None, stop_id=None, group_id=None
, cvalue_id=None , cvalue_id=None
, start=None, end=None , start=None, end=None
...@@ -87,38 +88,35 @@ def cooc(corpus=None ...@@ -87,38 +88,35 @@ def cooc(corpus=None
) )
matrix = WeightedMatrix(cooc_query) matrix = WeightedMatrix(cooc_query)
print(matrix)
if cvalue_id is not None : if cvalue_id is not None :
#miam = get_or_create_node(nodetype='Cvalue', corpus=corpus) #miam = get_or_create_node(nodetype='Cvalue', corpus=corpus)
miam_list = UnweightedList(session.query(NodeNodeNgram.ngram_id) cvalue_list = UnweightedList(session.query(NodeNodeNgram.ngram_id)
.filter(NodeNodeNgram.nodex_id == cvalue_id).all() .filter(NodeNodeNgram.nodex_id == cvalue_id).all()
) )
if miam_id is not None : if miam_id is not None :
#miam = get_or_create_node(nodetype='Cvalue', corpus=corpus) #miam = get_or_create_node(nodetype='Cvalue', corpus=corpus)
miam_list = UnweightedList(session.query(NodeNgram.ngram_id) miam_list = UnweightedList(miam_id)
.filter(NodeNgram.node_id == miam_id).all()
)
if stop_id is not None : if stop_id is not None :
#stop = get_or_create_node(nodetype='StopList', corpus=corpus) #stop = get_or_create_node(nodetype='StopList', corpus=corpus)
stop_list = UnweightedList(session.query(NodeNgram.ngram_id) stop_list = UnweightedList(stop_id)
.filter(NodeNgram.node_id == stop_id).all()
)
if group_id is not None : if group_id is not None :
#group = get_or_create_node(nodetype='GroupList', corpus=corpus) group_list = Translations(group_id)
group_list = UnweightedList(session.query(NodeNgramNgram.ngramx_id, NodeNgramNgram.ngramy_id)
.filter(NodeNgramNgram.node_id == stop_id).all()
)
if stop_id is None and group_id is None: if miam_id is not None and stop_id is None and group_id is None :
cooc = (matrix & miam_list) cooc = matrix & miam_list
elif miam_id is not None and stop_id is not None and group_id is None : elif miam_id is not None and stop_id is not None and group_id is None :
cooc = (matrix & miam_list) - stop_list cooc = matrix & (miam_list - stop_list)
elif miam_id is not None and stop_id is not None and group_id is not None : elif miam_id is not None and stop_id is not None and group_id is not None :
cooc = (matrix & miam_list & group_list) - stop_list cooc = matrix & (miam_list * group_list - stop_list)
elif miam_id is not None and stop_id is None and group_id is not None :
cooc = matrix & (miam_list * group_list)
else :
cooc = matrix
cooc.save(node_cooc.id) cooc.save(node_cooc.id)
return(node_cooc.id) return(node_cooc.id)
...@@ -19,7 +19,7 @@ import numpy as np ...@@ -19,7 +19,7 @@ import numpy as np
import scipy import scipy
import networkx as nx import networkx as nx
from networkx.readwrite import json_graph from networkx.readwrite import json_graph
from gargantext_web.api import JsonHttpResponse from rest_v1_0.api import JsonHttpResponse
from analysis.louvain import best_partition from analysis.louvain import best_partition
from ngram.lists import listIds from ngram.lists import listIds
...@@ -180,13 +180,15 @@ def get_cooc(request=None, corpus=None, cooc_id=None, type='node_link', size=siz ...@@ -180,13 +180,15 @@ def get_cooc(request=None, corpus=None, cooc_id=None, type='node_link', size=siz
print("Coocurrences do not exist yet, create it.") print("Coocurrences do not exist yet, create it.")
miam_id = get_or_create_node(nodetype='MiamList', corpus=corpus).id miam_id = get_or_create_node(nodetype='MiamList', corpus=corpus).id
stop_id = get_or_create_node(nodetype='StopList', corpus=corpus).id stop_id = get_or_create_node(nodetype='StopList', corpus=corpus).id
#group_id = get_or_create_node(nodetype='GroupList', corpus=corpus) group_id = get_or_create_node(nodetype='Group', corpus=corpus).id
cooc_id = cooc(corpus=corpus, miam_id=miam_id, stop_id=stop_id, limit=size) #cooc_id = cooc(corpus=corpus, miam_id=miam_id, stop_id=stop_id, limit=size)
cooc_id = cooc(corpus=corpus, miam_id=miam_id, group_id=group_id, stop_id=stop_id, limit=size)
#cooc_id = cooc(corpus=corpus, miam_id=miam_id, limit=size)
print([n for n in session.query(NodeNgramNgram).filter(NodeNgramNgram.node_id==cooc_id).all()]) print([n for n in session.query(NodeNgramNgram).filter(NodeNgramNgram.node_id==cooc_id).all()])
for cooccurrence in session.query(NodeNgramNgram).filter(NodeNgramNgram.node_id==cooc_id).all(): for cooccurrence in session.query(NodeNgramNgram).filter(NodeNgramNgram.node_id==cooc_id).all():
print(cooccurrence) #print(cooccurrence)
# print(cooccurrence.ngramx.terms," <=> ",cooccurrence.ngramy.terms,"\t",cooccurrence.score) # print(cooccurrence.ngramx.terms," <=> ",cooccurrence.ngramy.terms,"\t",cooccurrence.score)
labels[cooccurrence.ngramx_id] = session.query(Ngram.terms).filter(Ngram.id == cooccurrence.ngramx_id).first()[0] labels[cooccurrence.ngramx_id] = session.query(Ngram.terms).filter(Ngram.id == cooccurrence.ngramx_id).first()[0]
labels[cooccurrence.ngramy_id] = session.query(Ngram.terms).filter(Ngram.id == cooccurrence.ngramy_id).first()[0] labels[cooccurrence.ngramy_id] = session.query(Ngram.terms).filter(Ngram.id == cooccurrence.ngramy_id).first()[0]
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment