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
from analysis.lists import WeightedMatrix, UnweightedList, Translations
def cooc(corpus=None
, field_X=None, field_Y=None
, miam_id=None, stop_id=None, group_id=None
, cvalue_id=None
, start=None, end=None
......@@ -87,38 +88,35 @@ def cooc(corpus=None
)
matrix = WeightedMatrix(cooc_query)
print(matrix)
if cvalue_id is not None :
#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()
)
if miam_id is not None :
#miam = get_or_create_node(nodetype='Cvalue', corpus=corpus)
miam_list = UnweightedList(session.query(NodeNgram.ngram_id)
.filter(NodeNgram.node_id == miam_id).all()
)
miam_list = UnweightedList(miam_id)
if stop_id is not None :
#stop = get_or_create_node(nodetype='StopList', corpus=corpus)
stop_list = UnweightedList(session.query(NodeNgram.ngram_id)
.filter(NodeNgram.node_id == stop_id).all()
)
stop_list = UnweightedList(stop_id)
if group_id is not None :
#group = get_or_create_node(nodetype='GroupList', corpus=corpus)
group_list = UnweightedList(session.query(NodeNgramNgram.ngramx_id, NodeNgramNgram.ngramy_id)
.filter(NodeNgramNgram.node_id == stop_id).all()
)
group_list = Translations(group_id)
if stop_id is None and group_id is None:
cooc = (matrix & miam_list)
if miam_id is not None and stop_id is None and group_id is None :
cooc = matrix & miam_list
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 :
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)
return(node_cooc.id)
......@@ -19,7 +19,7 @@ import numpy as np
import scipy
import networkx as nx
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 ngram.lists import listIds
......@@ -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.")
miam_id = get_or_create_node(nodetype='MiamList', 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()])
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)
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]
......
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