Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
haskell-gargantext
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
148
Issues
148
List
Board
Labels
Milestones
Merge Requests
10
Merge Requests
10
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
gargantext
haskell-gargantext
Commits
3b5169dd
Commit
3b5169dd
authored
Oct 12, 2022
by
Alexandre Delanoë
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[STASH] back to old work
parent
797ae29e
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
38 additions
and
21 deletions
+38
-21
Clustering.hs
src-test/Graph/Clustering.hs
+0
-1
Bridgeness.hs
src/Gargantext/Core/Viz/Graph/Bridgeness.hs
+35
-18
Tools.hs
src/Gargantext/Core/Viz/Graph/Tools.hs
+3
-2
No files found.
src-test/Graph/Clustering.hs
View file @
3b5169dd
...
@@ -22,7 +22,6 @@ import Test.Hspec
...
@@ -22,7 +22,6 @@ import Test.Hspec
import
Data.HashMap.Strict
(
HashMap
)
import
Data.HashMap.Strict
(
HashMap
)
import
qualified
Data.HashMap.Strict
as
HashMap
import
qualified
Data.HashMap.Strict
as
HashMap
import
qualified
Data.List
as
List
import
qualified
Data.List
as
List
import
Gargantext.Core.Viz.Graph.Tools
(
PartitionMethod
(
..
))
import
Gargantext.Core.Viz.Graph.Tools.IGraph
(
spinglass
)
import
Gargantext.Core.Viz.Graph.Tools.IGraph
(
spinglass
)
import
Gargantext.Core.Methods.Similarities
(
Similarity
(
..
))
import
Gargantext.Core.Methods.Similarities
(
Similarity
(
..
))
...
...
src/Gargantext/Core/Viz/Graph/Bridgeness.hs
View file @
3b5169dd
...
@@ -26,8 +26,6 @@ import Gargantext.Prelude
...
@@ -26,8 +26,6 @@ import Gargantext.Prelude
import
Graph.Types
(
ClusterNode
(
..
))
import
Graph.Types
(
ClusterNode
(
..
))
import
qualified
Data.Map
as
DM
import
qualified
Data.Map
as
DM
----------------------------------------------------------------------
----------------------------------------------------------------------
type
Partitions
a
=
Map
(
Int
,
Int
)
Double
->
IO
[
a
]
type
Partitions
a
=
Map
(
Int
,
Int
)
Double
->
IO
[
a
]
----------------------------------------------------------------------
----------------------------------------------------------------------
...
@@ -45,23 +43,23 @@ instance ToComId ClusterNode where
...
@@ -45,23 +43,23 @@ instance ToComId ClusterNode where
----------------------------------------------------------------------
----------------------------------------------------------------------
type
Bridgeness
=
Double
type
Bridgeness
=
Double
bridgeness
::
ToComId
a
=>
Bridgeness
bridgeness
::
ToComId
a
=>
Bridgeness
->
[
a
]
->
[
a
]
->
Map
(
NodeId
,
NodeId
)
Double
->
Map
(
NodeId
,
NodeId
)
Double
->
Map
(
NodeId
,
NodeId
)
Double
->
Map
(
NodeId
,
NodeId
)
Double
bridgeness
=
bridgeness'
nodeId2comId
bridgeness
=
bridgenessWith
nodeId2comId
where
bridgenessWith
::
(
a
->
(
Int
,
Int
))
bridgeness'
::
(
a
->
(
Int
,
Int
))
->
Bridgeness
->
Bridgeness
->
[
a
]
->
[
a
]
->
Map
(
Int
,
Int
)
Double
->
Map
(
Int
,
Int
)
Double
->
Map
(
Int
,
Int
)
Double
->
Map
(
Int
,
Int
)
Double
bridgenessWith
f
b
ns
=
DM
.
fromList
bridgeness'
f
b
ns
=
DM
.
fromList
.
concat
.
concat
.
DM
.
elems
.
DM
.
elems
.
filterComs
b
.
filterComs
b
.
groupEdges
(
DM
.
fromList
$
map
f
ns
)
.
groupEdges
(
DM
.
fromList
$
map
f
ns
)
groupEdges
::
(
Ord
a
,
Ord
b1
)
groupEdges
::
(
Ord
a
,
Ord
b1
)
...
@@ -71,7 +69,7 @@ groupEdges :: (Ord a, Ord b1)
...
@@ -71,7 +69,7 @@ groupEdges :: (Ord a, Ord b1)
groupEdges
m
=
fromListWith
(
<>
)
groupEdges
m
=
fromListWith
(
<>
)
.
catMaybes
.
catMaybes
.
map
(
\
((
n1
,
n2
),
d
)
.
map
(
\
((
n1
,
n2
),
d
)
->
let
->
let
n1n2_m
=
(,)
<$>
lookup
n1
m
<*>
lookup
n2
m
n1n2_m
=
(,)
<$>
lookup
n1
m
<*>
lookup
n2
m
n1n2_d
=
Just
[((
n1
,
n2
),
d
)]
n1n2_d
=
Just
[((
n1
,
n2
),
d
)]
in
(,)
<$>
n1n2_m
<*>
n1n2_d
in
(,)
<$>
n1n2_m
<*>
n1n2_d
...
@@ -79,7 +77,7 @@ groupEdges m = fromListWith (<>)
...
@@ -79,7 +77,7 @@ groupEdges m = fromListWith (<>)
.
toList
.
toList
-- | TODO : sortOn Confluence
-- | TODO : sortOn Confluence
filterComs
::
(
Ord
n1
,
Eq
n2
)
filterComs
::
(
Ord
n1
,
Eq
n2
)
=>
p
=>
p
->
Map
(
n2
,
n2
)
[(
a3
,
n1
)]
->
Map
(
n2
,
n2
)
[(
a3
,
n1
)]
->
Map
(
n2
,
n2
)
[(
a3
,
n1
)]
->
Map
(
n2
,
n2
)
[(
a3
,
n1
)]
...
@@ -95,3 +93,22 @@ filterComs _b m = DM.filter (\n -> length n > 0) $ mapWithKey filter' m
...
@@ -95,3 +93,22 @@ filterComs _b m = DM.filter (\n -> length n > 0) $ mapWithKey filter' m
a'
=
fromIntegral
$
length
a
a'
=
fromIntegral
$
length
a
t
::
Double
t
::
Double
t
=
fromIntegral
$
length
$
concat
$
elems
m
t
=
fromIntegral
$
length
$
concat
$
elems
m
--------------------------------------------------------------
{--
Compute the median of a list
From: https://hackage.haskell.org/package/dsp-0.2.5.1/docs/src/Numeric.Statistics.Median.html
Compute the center of the list in a more lazy manner
and thus halves memory requirement.
-}
median
::
(
Ord
a
,
Fractional
a
)
=>
[
a
]
->
a
median
[]
=
panic
"medianFast: empty list has no median"
median
zs
=
let
recurse
(
x0
:
_
)
(
_
:
[]
)
=
x0
recurse
(
x0
:
x1
:
_
)
(
_
:
_
:
[]
)
=
(
x0
+
x1
)
/
2
recurse
(
_
:
xs
)
(
_
:
_
:
ys
)
=
recurse
xs
ys
recurse
_
_
=
panic
"median: this error cannot occur in the way 'recurse' is called"
in
recurse
zs
zs
src/Gargantext/Core/Viz/Graph/Tools.hs
View file @
3b5169dd
...
@@ -97,7 +97,8 @@ cooc2graphWith :: PartitionMethod
...
@@ -97,7 +97,8 @@ cooc2graphWith :: PartitionMethod
->
IO
Graph
->
IO
Graph
cooc2graphWith
Spinglass
=
cooc2graphWith'
(
spinglass
1
)
cooc2graphWith
Spinglass
=
cooc2graphWith'
(
spinglass
1
)
cooc2graphWith
Confluence
=
cooc2graphWith'
(
\
x
->
pure
$
BAC
.
defaultClustering
x
)
cooc2graphWith
Confluence
=
cooc2graphWith'
(
\
x
->
pure
$
BAC
.
defaultClustering
x
)
cooc2graphWith
Infomap
=
cooc2graphWith'
(
infomap
"--silent --two-level -N2"
)
cooc2graphWith
Infomap
=
cooc2graphWith'
(
infomap
"-v -N2"
)
--cooc2graphWith Infomap = cooc2graphWith' (infomap "--silent --two-level -N2")
-- TODO: change these options, or make them configurable in UI?
-- TODO: change these options, or make them configurable in UI?
...
@@ -132,8 +133,8 @@ cooc2graphWith' doPartitions multi similarity threshold strength myCooc = do
...
@@ -132,8 +133,8 @@ cooc2graphWith' doPartitions multi similarity threshold strength myCooc = do
where
where
(
as
,
bs
)
=
List
.
unzip
$
Map
.
keys
distanceMap
(
as
,
bs
)
=
List
.
unzip
$
Map
.
keys
distanceMap
n'
=
Set
.
size
$
Set
.
fromList
$
as
<>
bs
n'
=
Set
.
size
$
Set
.
fromList
$
as
<>
bs
!
bridgeness'
=
bridgeness
(
fromIntegral
nodesApprox
)
partitions
distanceMap
!
confluence'
=
BAC
.
computeConfluences
3
(
Map
.
keys
bridgeness'
)
True
!
confluence'
=
BAC
.
computeConfluences
3
(
Map
.
keys
bridgeness'
)
True
!
bridgeness'
=
bridgeness
(
fromIntegral
nodesApprox
)
partitions
distanceMap
pure
$
data2graph
multi
ti
diag
bridgeness'
confluence'
partitions
pure
$
data2graph
multi
ti
diag
bridgeness'
confluence'
partitions
type
Reverse
=
Bool
type
Reverse
=
Bool
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment