Commit cdb02fb7 authored by Alexandre Delanoë's avatar Alexandre Delanoë

[GRAPH] clean orphan nodes

parent 3eca5e5e
...@@ -113,7 +113,7 @@ computeGraph cId nt v = do ...@@ -113,7 +113,7 @@ computeGraph cId nt v = do
graph <- liftIO $ cooc2graph 0 myCooc graph <- liftIO $ cooc2graph 0 myCooc
let graph' = set graph_metadata (Just metadata) graph let graph' = set graph_metadata (Just metadata) graph
pure graph' pure graph'
......
...@@ -15,10 +15,10 @@ Portability : POSIX ...@@ -15,10 +15,10 @@ Portability : POSIX
module Gargantext.Viz.Graph.Tools module Gargantext.Viz.Graph.Tools
where where
--import Debug.Trace (trace)
import Data.Graph.Clustering.Louvain.CplusPlus (LouvainNode(..)) import Data.Graph.Clustering.Louvain.CplusPlus (LouvainNode(..))
import Data.Graph.Clustering.Louvain.CplusPlus (cLouvain) import Data.Graph.Clustering.Louvain.CplusPlus (cLouvain)
import Data.Map (Map) import Data.Map (Map)
import qualified Data.Set as Set
import Data.Text (Text) import Data.Text (Text)
import Gargantext.Prelude import Gargantext.Prelude
import Gargantext.Core.Statistics import Gargantext.Core.Statistics
...@@ -43,7 +43,7 @@ cooc2graph :: Threshold ...@@ -43,7 +43,7 @@ cooc2graph :: Threshold
cooc2graph threshold myCooc = do cooc2graph threshold myCooc = do
let (ti, _) = createIndices myCooc let (ti, _) = createIndices myCooc
myCooc' = toIndex ti myCooc myCooc' = toIndex ti myCooc
matCooc = map2mat 0 (Map.size ti) $ Map.filter (> (round threshold)) myCooc' matCooc = map2mat 0 (Map.size ti) $ Map.filter (> 1) myCooc'
distanceMat = measureConditional matCooc distanceMat = measureConditional matCooc
distanceMap = Map.filter (> threshold) $ mat2map distanceMat distanceMap = Map.filter (> threshold) $ mat2map distanceMat
...@@ -77,19 +77,23 @@ data2graph labels coocs bridge conf partitions = do ...@@ -77,19 +77,23 @@ data2graph labels coocs bridge conf partitions = do
, node_x_coord = 0 , node_x_coord = 0
, node_y_coord = 0 , node_y_coord = 0
, node_attributes = , node_attributes =
Attributes { clust_default = maybe 0 identity Attributes { clust_default = maybe 0 identity
(Map.lookup n community_id_by_node_id) } } (Map.lookup n community_id_by_node_id) } }
) )
| (l, n) <- labels | (l, n) <- labels
, Set.member n $ Set.fromList
$ List.concat
$ map (\((s,t),d) -> if d > 0 then [s,t] else [])
$ Map.toList bridge
] ]
let edges = [ Edge { edge_source = cs (show s) let edges = [ Edge { edge_source = cs (show s)
, edge_target = cs (show t) , edge_target = cs (show t)
, edge_weight = d , edge_weight = d
, edge_confluence = maybe 0 identity $ Map.lookup (s,t) conf , edge_confluence = maybe 0 identity $ Map.lookup (s,t) conf
-- , edge_confluence = maybe (panic "E: data2graph edges") identity $ Map.lookup (s,t) conf -- , edge_confluence = maybe (panic "E: data2graph edges") identity $ Map.lookup (s,t) conf
, edge_id = cs (show i) } , edge_id = cs (show i) }
| (i, ((s,t), d)) <- zip ([0..]::[Integer]) (Map.toList bridge), s /= t, d > 0.001 | (i, ((s,t), d)) <- zip ([0..]::[Integer]) (Map.toList bridge), s /= t, d > 0
] ]
pure $ Graph nodes edges Nothing pure $ Graph nodes edges Nothing
......
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