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
199
Issues
199
List
Board
Labels
Milestones
Merge Requests
12
Merge Requests
12
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
94e0066c
Commit
94e0066c
authored
Oct 17, 2020
by
Alexandre Delanoë
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[FIX] Social List for all NgramsType implemented (needs groups heritage now).
parent
f03449b1
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
46 additions
and
53 deletions
+46
-53
Group.hs
src/Gargantext/Core/Text/Group.hs
+11
-11
List.hs
src/Gargantext/Core/Text/List.hs
+34
-41
Social.hs
src/Gargantext/Core/Text/List/Social.hs
+1
-1
No files found.
src/Gargantext/Core/Text/Group.hs
View file @
94e0066c
...
...
@@ -120,9 +120,11 @@ data GroupedText score =
,
_gt_size
::
!
Int
,
_gt_stem
::
!
Stem
,
_gt_nodes
::
!
(
Set
NodeId
)
}
}
deriving
Show
{-
instance Show score => Show (GroupedText score) where
show
(
GroupedText
_
l
s
_
_
_
_
)
=
show
l
<>
":"
<>
show
s
show (GroupedText lt l s _ _ _ _) = show l <> " : " <> show lt <> " : " <> show s
-}
instance
(
Eq
a
)
=>
Eq
(
GroupedText
a
)
where
(
==
)
(
GroupedText
_
_
score1
_
_
_
_
)
...
...
@@ -137,16 +139,14 @@ makeLenses 'GroupedText
------------------------------------------------------------------------------
addListType
::
Map
Text
ListType
->
GroupedText
a
->
GroupedText
a
addListType
m
g
=
set
gt_listType
lt
g
addListType
m
g
=
set
gt_listType
(
hasListType
m
g
)
g
where
lt
=
hasListType
m
g
hasListType
::
Map
Text
ListType
->
GroupedText
a
->
Maybe
ListType
hasListType
m
(
GroupedText
_
label
_
g
_
_
_
)
=
List
.
foldl'
(
<>
)
Nothing
$
map
(
\
t
->
Map
.
lookup
t
m
)
$
Set
.
toList
$
Set
.
insert
label
g
hasListType
::
Map
Text
ListType
->
GroupedText
a
->
Maybe
ListType
hasListType
m'
(
GroupedText
_
label
_
g'
_
_
_
)
=
List
.
foldl'
(
<>
)
Nothing
$
map
(
\
t
->
Map
.
lookup
t
m'
)
$
Set
.
toList
$
Set
.
insert
label
g'
...
...
src/Gargantext/Core/Text/List.hs
View file @
94e0066c
...
...
@@ -57,10 +57,14 @@ buildNgramsLists :: ( RepoCmdM env err m
->
m
(
Map
NgramsType
[
NgramsElement
])
buildNgramsLists
user
gp
uCid
mCid
=
do
ngTerms
<-
buildNgramsTermsList
user
uCid
mCid
gp
{- othersTerms <- mapM (buildNgramsOthersList user uCid (ngramsGroup GroupIdentity))
[(Authors, MapListSize 5), (Sources, MapListSize 7), (Institutes, MapListSize 9)]
-}
pure
$
Map
.
unions
$
{-othersTerms <>-}
[
ngTerms
]
othersTerms
<-
mapM
(
buildNgramsOthersList
user
uCid
(
ngramsGroup
GroupIdentity
))
[
(
Authors
,
MapListSize
9
)
,
(
Sources
,
MapListSize
9
)
,
(
Institutes
,
MapListSize
9
)
]
pure
$
Map
.
unions
$
[
ngTerms
]
<>
othersTerms
data
MapListSize
=
MapListSize
Int
...
...
@@ -76,38 +80,26 @@ buildNgramsOthersList ::( HasNodeError err
->
m
(
Map
NgramsType
[
NgramsElement
])
buildNgramsOthersList
user
uCid
groupIt
(
nt
,
MapListSize
mapListSize
)
=
do
ngs
<-
groupNodesByNgramsWith
groupIt
<$>
getNodesByNgramsUser
uCid
nt
ngs
<-
groupNodesByNgramsWith
groupIt
<$>
getNodesByNgramsUser
uCid
nt
let
grouped
=
toGroupedText
groupIt
(
Set
.
size
.
snd
)
fst
snd
(
Map
.
toList
ngs
)
grouped
=
toGroupedText
groupIt
(
Set
.
size
.
snd
)
fst
snd
(
Map
.
toList
$
Map
.
mapWithKey
(
\
k
(
a
,
b
)
->
(
Set
.
delete
k
a
,
b
))
$
ngs
)
socialLists
<-
flowSocialList
user
nt
(
Set
.
fromList
$
Map
.
keys
ngs
)
let
groupedWithList
=
map
(
addListType
(
invertForw
socialLists
))
grouped
(
stopTerms
,
tailTerms
)
=
Map
.
partition
(
\
t
->
t
^.
gt_listType
==
Just
StopTerm
)
groupedWithList
(
graphTerms
,
tailTerms'
)
=
Map
.
partition
(
\
t
->
t
^.
gt_listType
==
Just
MapTerm
)
tailTerms
(
stopTerms
,
tailTerms
)
=
Map
.
partition
(
\
t
->
t
^.
gt_listType
==
Just
StopTerm
)
groupedWithList
(
mapTerms
,
tailTerms'
)
=
Map
.
partition
(
\
t
->
t
^.
gt_listType
==
Just
MapTerm
)
tailTerms
listSize
=
mapListSize
-
(
List
.
length
graph
Terms
)
(
graph
Terms'
,
candiTerms
)
=
List
.
splitAt
listSize
$
List
.
sortOn
(
Down
.
_gt_score
)
$
Map
.
elems
tailTerms'
listSize
=
mapListSize
-
(
List
.
length
map
Terms
)
(
map
Terms'
,
candiTerms
)
=
List
.
splitAt
listSize
$
List
.
sortOn
(
Down
.
_gt_score
)
$
Map
.
elems
tailTerms'
let
result
=
Map
.
unionsWith
(
<>
)
[
Map
.
fromList
[(
NgramsTerms
,
(
List
.
concat
$
map
toNgramsElement
$
stopTerms
)
<>
(
List
.
concat
$
map
toNgramsElement
$
graphTerms
)
<>
(
List
.
concat
$
map
toNgramsElement
$
graphTerms'
)
<>
(
List
.
concat
$
map
toNgramsElement
$
candiTerms
)
pure
$
Map
.
fromList
[(
nt
,
(
List
.
concat
$
map
toNgramsElement
stopTerms
)
<>
(
List
.
concat
$
map
toNgramsElement
mapTerms
)
<>
(
List
.
concat
$
map
toNgramsElement
$
map
(
set
gt_listType
(
Just
MapTerm
))
mapTerms'
)
<>
(
List
.
concat
$
map
toNgramsElement
$
map
(
set
gt_listType
(
Just
CandidateTerm
))
candiTerms
)
)]
]
pure
result
toElements
::
Ord
k
=>
k
->
ListType
->
[(
Text
,
b
)]
->
Map
k
[
NgramsElement
]
toElements
nType
lType
x
=
Map
.
fromList
[(
nType
,
[
mkNgramsElement
(
NgramsTerm
t
)
lType
Nothing
(
mSetFromList
[]
)
|
(
t
,
_ns
)
<-
x
]
)]
-- TODO use ListIds
buildNgramsTermsList
::
(
HasNodeError
err
...
...
@@ -153,10 +145,10 @@ buildNgramsTermsList user uCid mCid groupParams = do
(
groupedMonoHead
,
groupedMonoTail
)
=
splitAt
monoSize
groupedMono
(
groupedMultHead
,
groupedMultTail
)
=
splitAt
multSize
groupedMult
printDebug
"groupedMonoHead"
(
List
.
length
groupedMonoHead
)
printDebug
"groupedMonoTail"
(
List
.
length
groupedMonoHead
)
printDebug
"groupedMultHead"
(
List
.
length
groupedMultHead
)
printDebug
"groupedMultTail"
(
List
.
length
groupedMultTail
)
--
printDebug "groupedMonoHead" (List.length groupedMonoHead)
--
printDebug "groupedMonoTail" (List.length groupedMonoHead)
--
printDebug "groupedMultHead" (List.length groupedMultHead)
--
printDebug "groupedMultTail" (List.length groupedMultTail)
let
-- Get Local Scores now for selected grouped ngrams
...
...
@@ -172,6 +164,7 @@ buildNgramsTermsList user uCid mCid groupParams = do
masterListId
<-
defaultList
mCid
mapTextDocIds
<-
getNodesByNgramsOnlyUser
uCid
[
userListId
,
masterListId
]
NgramsTerms
selectedTerms
let
mapGroups
=
Map
.
fromList
$
map
(
\
g
->
(
g
^.
gt_stem
,
g
))
...
...
@@ -189,7 +182,8 @@ buildNgramsTermsList user uCid mCid groupParams = do
$
Map
.
keys
mapTextDocIds
-- compute cooccurrences
mapCooc
=
Map
.
filter
(
>
2
)
$
Map
.
fromList
[
((
t1
,
t2
),
Set
.
size
$
Set
.
intersection
s1
s2
)
mapCooc
=
Map
.
filter
(
>
2
)
$
Map
.
fromList
[
((
t1
,
t2
),
Set
.
size
$
Set
.
intersection
s1
s2
)
|
(
t1
,
s1
)
<-
mapStemNodeIds
,
(
t2
,
s2
)
<-
mapStemNodeIds
]
...
...
@@ -249,24 +243,23 @@ buildNgramsTermsList user uCid mCid groupParams = do
<>
multScoredExclHead
cands
=
set
gt_listType
(
Just
CandidateTerm
)
<$>
monoScoredInclTail
<>
monoScoredExclTail
<>
multScoredInclTail
<>
multScoredExclTail
<$>
monoScoredInclTail
<>
monoScoredExclTail
<>
multScoredInclTail
<>
multScoredExclTail
termListTail
=
map
(
set
gt_listType
(
Just
CandidateTerm
))
(
groupedMonoTail
<>
groupedMultTail
)
-- printDebug "monoScoredInclHead" monoScoredInclHead
-- printDebug "monoScoredExclHead" monoScoredExclTail
--
printDebug
"multScoredInclHead"
multScoredInclHead
printDebug
"multScoredExclTail"
multScoredExclTail
--
printDebug "multScoredInclHead" multScoredInclHead
--
printDebug "multScoredExclTail" multScoredExclTail
let
result
=
Map
.
unionsWith
(
<>
)
[
Map
.
fromList
[(
NgramsTerms
,
(
List
.
concat
$
map
toNgramsElement
$
termListHead
)
<>
(
List
.
concat
$
map
toNgramsElement
$
termListTail
)
<>
(
List
.
concat
$
map
toNgramsElement
$
stopTerms
)
[
Map
.
fromList
[(
NgramsTerms
,
(
List
.
concat
$
map
toNgramsElement
$
termListHead
)
<>
(
List
.
concat
$
map
toNgramsElement
$
termListTail
)
<>
(
List
.
concat
$
map
toNgramsElement
$
stopTerms
)
)]
]
-- printDebug "\n result \n" r
...
...
src/Gargantext/Core/Text/List/Social.hs
View file @
94e0066c
...
...
@@ -53,7 +53,7 @@ flowSocialList user nt ngrams' = do
let
result
=
unions
[
Map
.
mapKeys
(
fromMaybe
CandidateTerm
)
privateLists
,
Map
.
mapKeys
(
fromMaybe
CandidateTerm
)
sharedLists
]
printDebug
"* socialLists *: results
\n
"
result
--
printDebug "* socialLists *: results \n" result
pure
result
...
...
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