Commit 44ac0efa authored by Alexandre Delanoë's avatar Alexandre Delanoë

[FEAT] Graph O2 bridgeness improvement and FrameWrite Extraction

parent 75b99528
Pipeline #3741 failed with stage
in 90 minutes and 31 seconds
...@@ -5,7 +5,7 @@ cabal-version: 1.12 ...@@ -5,7 +5,7 @@ cabal-version: 1.12
-- see: https://github.com/sol/hpack -- see: https://github.com/sol/hpack
name: gargantext name: gargantext
version: 0.0.6.9.6 version: 0.0.6.9.6
synopsis: Search, map, share synopsis: Search, map, share
description: Please see README.md description: Please see README.md
category: Data category: Data
......
...@@ -238,7 +238,7 @@ text2titleParagraphs n = catMaybes ...@@ -238,7 +238,7 @@ text2titleParagraphs n = catMaybes
. List.map doTitle . List.map doTitle
. (splitEvery n) . (splitEvery n)
. sentences . sentences
. DT.intercalate ". " . DT.intercalate " " -- ". "
. List.filter (/= "") . List.filter (/= "")
. DT.lines . DT.lines
......
...@@ -115,6 +115,7 @@ data Bridgeness = Bridgeness_Basic { bridgeness_partitions :: [ClusterNode] ...@@ -115,6 +115,7 @@ data Bridgeness = Bridgeness_Basic { bridgeness_partitions :: [ClusterNode]
} }
| Bridgeness_Recursive { br_partitions :: [[Set NodeId]] | Bridgeness_Recursive { br_partitions :: [[Set NodeId]]
, br_filter :: Double , br_filter :: Double
, br_similarity :: Similarity
} }
...@@ -126,8 +127,8 @@ type Confluence = Map (NodeId, NodeId) Double ...@@ -126,8 +127,8 @@ type Confluence = Map (NodeId, NodeId) Double
bridgeness :: Bridgeness bridgeness :: Bridgeness
-> Map (NodeId, NodeId) Double -> Map (NodeId, NodeId) Double
-> Map (NodeId, NodeId) Double -> Map (NodeId, NodeId) Double
bridgeness (Bridgeness_Recursive sn f) m = bridgeness (Bridgeness_Recursive sn f sim) m =
Map.unions $ [linksBetween] <> map (\s -> bridgeness (Bridgeness_Basic (setNodes2clusterNodes s) (pi*f)) m') sn Map.unions $ [linksBetween] <> map (\s -> bridgeness (Bridgeness_Basic (setNodes2clusterNodes s) (if sim == Conditional then pi*f else f)) m') sn
where where
(linksBetween, m') = Map.partitionWithKey (\(n1,n2) _v -> Map.lookup n1 mapNodeIdClusterId (linksBetween, m') = Map.partitionWithKey (\(n1,n2) _v -> Map.lookup n1 mapNodeIdClusterId
/= Map.lookup n2 mapNodeIdClusterId /= Map.lookup n2 mapNodeIdClusterId
......
...@@ -25,7 +25,7 @@ import Gargantext.API.Ngrams.Types (NgramsTerm(..)) ...@@ -25,7 +25,7 @@ import Gargantext.API.Ngrams.Types (NgramsTerm(..))
import Gargantext.Core.Methods.Similarities (Similarity(..), measure) import Gargantext.Core.Methods.Similarities (Similarity(..), measure)
-- import Gargantext.Core.Methods.Similarities.Conditional (conditional) -- import Gargantext.Core.Methods.Similarities.Conditional (conditional)
import Gargantext.Core.Statistics import Gargantext.Core.Statistics
import Gargantext.Core.Viz.Graph.Bridgeness (bridgeness, Bridgeness(..), Partitions, nodeId2comId, recursiveClustering, recursiveClustering', setNodes2clusterNodes) import Gargantext.Core.Viz.Graph.Bridgeness (bridgeness, Bridgeness(..), Partitions, nodeId2comId{-, recursiveClustering-}, recursiveClustering', setNodes2clusterNodes)
import Gargantext.Core.Viz.Graph.Index (createIndices, toIndex, map2mat, mat2map, Index, MatrixShape(..)) import Gargantext.Core.Viz.Graph.Index (createIndices, toIndex, map2mat, mat2map, Index, MatrixShape(..))
import Gargantext.Core.Viz.Graph.Tools.IGraph (mkGraphUfromEdges, spinglass, spinglass') import Gargantext.Core.Viz.Graph.Tools.IGraph (mkGraphUfromEdges, spinglass, spinglass')
import Gargantext.Core.Viz.Graph.Tools.Infomap (infomap) import Gargantext.Core.Viz.Graph.Tools.Infomap (infomap)
...@@ -132,7 +132,7 @@ cooc2graphWith' _doPartitions _bridgenessMethod multi similarity@Conditional thr ...@@ -132,7 +132,7 @@ cooc2graphWith' _doPartitions _bridgenessMethod multi similarity@Conditional thr
let let
!confluence' = BAC.computeConfluences 3 (Map.keys distanceMap) True !confluence' = BAC.computeConfluences 3 (Map.keys distanceMap) True
!bridgeness' = bridgeness (Bridgeness_Recursive partitions 1.0) distanceMap !bridgeness' = bridgeness (Bridgeness_Recursive partitions 1.0 similarity) distanceMap
{- {-
!bridgeness' = if bridgenessMethod == BridgenessMethod_Basic !bridgeness' = if bridgenessMethod == BridgenessMethod_Basic
then bridgeness (Bridgeness_Basic partitions 1.0) distanceMap then bridgeness (Bridgeness_Basic partitions 1.0) distanceMap
...@@ -140,12 +140,13 @@ cooc2graphWith' _doPartitions _bridgenessMethod multi similarity@Conditional thr ...@@ -140,12 +140,13 @@ cooc2graphWith' _doPartitions _bridgenessMethod multi similarity@Conditional thr
-} -}
pure $ data2graph multi ti diag bridgeness' confluence' (setNodes2clusterNodes $ List.concat partitions) pure $ data2graph multi ti diag bridgeness' confluence' (setNodes2clusterNodes $ List.concat partitions)
cooc2graphWith' doPartitions bridgenessMethod multi Distributional threshold strength myCooc = do cooc2graphWith' _doPartitions _bridgenessMethod multi similarity@Distributional threshold strength myCooc = do
let (distanceMap, diag, ti) = doSimilarityMap Distributional threshold strength myCooc let (distanceMap, diag, ti) = doSimilarityMap Distributional threshold strength myCooc
distanceMap `seq` diag `seq` ti `seq` return () distanceMap `seq` diag `seq` ti `seq` return ()
partitions <- if (Map.size distanceMap > 0) partitions <- if (Map.size distanceMap > 0)
then recursiveClustering doPartitions distanceMap --then recursiveClustering doPartitions distanceMap
then recursiveClustering' (spinglass' 1) distanceMap
else panic $ Text.unlines [ "[Gargantext.C.V.Graph.Tools] Similarity Matrix is empty" else panic $ Text.unlines [ "[Gargantext.C.V.Graph.Tools] Similarity Matrix is empty"
, "Maybe you should add more Map Terms in your list" , "Maybe you should add more Map Terms in your list"
, "Tutorial: TODO" , "Tutorial: TODO"
...@@ -154,14 +155,14 @@ cooc2graphWith' doPartitions bridgenessMethod multi Distributional threshold str ...@@ -154,14 +155,14 @@ cooc2graphWith' doPartitions bridgenessMethod multi Distributional threshold str
let let
!confluence' = BAC.computeConfluences 3 (Map.keys distanceMap) True !confluence' = BAC.computeConfluences 3 (Map.keys distanceMap) True
!bridgeness' = bridgeness (Bridgeness_Recursive partitions 1.0 similarity) distanceMap
{-
!bridgeness' = if bridgenessMethod == BridgenessMethod_Basic !bridgeness' = if bridgenessMethod == BridgenessMethod_Basic
then bridgeness (Bridgeness_Basic partitions 10.0) distanceMap then bridgeness (Bridgeness_Basic partitions 1.0) distanceMap
else bridgeness (Bridgeness_Advanced Distributional confluence') distanceMap else bridgeness (Bridgeness_Advanced Distributional confluence') distanceMap
pure $ data2graph multi ti diag bridgeness' confluence' partitions pure $ data2graph multi ti diag bridgeness' confluence' partitions
-}
pure $ data2graph multi ti diag bridgeness' confluence' (setNodes2clusterNodes $ List.concat partitions)
......
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