Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
H
haskell-gargantext
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
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
Przemyslaw Kaminski
haskell-gargantext
Commits
5c57aefc
Commit
5c57aefc
authored
Oct 15, 2020
by
Alexandre Delanoë
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[Clean] code
parent
3fa450cd
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
32 additions
and
44 deletions
+32
-44
List.hs
src/Gargantext/Core/Text/List.hs
+32
-44
No files found.
src/Gargantext/Core/Text/List.hs
View file @
5c57aefc
...
@@ -15,7 +15,7 @@ module Gargantext.Core.Text.List
...
@@ -15,7 +15,7 @@ module Gargantext.Core.Text.List
where
where
import
Control.Lens
((
^.
))
import
Control.Lens
((
^.
)
,
set
)
import
Data.Maybe
(
fromMaybe
,
catMaybes
)
import
Data.Maybe
(
fromMaybe
,
catMaybes
)
import
Data.Ord
(
Down
(
..
))
import
Data.Ord
(
Down
(
..
))
import
Data.Map
(
Map
)
import
Data.Map
(
Map
)
...
@@ -37,7 +37,7 @@ import Gargantext.Core.Types (ListType(..), MasterCorpusId, UserCorpusId)
...
@@ -37,7 +37,7 @@ import Gargantext.Core.Types (ListType(..), MasterCorpusId, UserCorpusId)
import
Gargantext.Core.Types.Individu
(
User
(
..
))
import
Gargantext.Core.Types.Individu
(
User
(
..
))
import
Gargantext.Database.Action.Metrics.NgramsByNode
(
getNodesByNgramsUser
,
groupNodesByNgramsWith
,
getNodesByNgramsOnlyUser
)
import
Gargantext.Database.Action.Metrics.NgramsByNode
(
getNodesByNgramsUser
,
groupNodesByNgramsWith
,
getNodesByNgramsOnlyUser
)
import
Gargantext.Database.Action.Metrics.TFICF
(
getTficf
)
import
Gargantext.Database.Action.Metrics.TFICF
(
getTficf
)
import
Gargantext.Database.Prelude
(
Cmd
,
Cmd
M
)
import
Gargantext.Database.Prelude
(
CmdM
)
import
Gargantext.Database.Query.Table.Node
(
defaultList
)
import
Gargantext.Database.Query.Table.Node
(
defaultList
)
import
Gargantext.Database.Query.Table.Node.Error
(
HasNodeError
())
import
Gargantext.Database.Query.Table.Node.Error
(
HasNodeError
())
import
Gargantext.Database.Query.Tree.Error
(
HasTreeError
)
import
Gargantext.Database.Query.Tree.Error
(
HasTreeError
)
...
@@ -57,22 +57,22 @@ buildNgramsLists :: ( RepoCmdM env err m
...
@@ -57,22 +57,22 @@ buildNgramsLists :: ( RepoCmdM env err m
->
MasterCorpusId
->
MasterCorpusId
->
m
(
Map
NgramsType
[
NgramsElement
])
->
m
(
Map
NgramsType
[
NgramsElement
])
buildNgramsLists
user
gp
uCid
mCid
=
do
buildNgramsLists
user
gp
uCid
mCid
=
do
ngTerms
<-
buildNgramsTermsList
user
gp
uCid
mCid
ngTerms
<-
buildNgramsTermsList
user
uCid
mCid
gp
othersTerms
<-
mapM
(
buildNgramsOthersList
user
uCid
identity
)
othersTerms
<-
mapM
(
buildNgramsOthersList
user
uCid
identity
)
[
Authors
,
Sources
,
Institutes
]
[
Authors
,
Sources
,
Institutes
]
pure
$
Map
.
unions
$
othersTerms
<>
[
ngTerms
]
pure
$
Map
.
unions
$
othersTerms
<>
[
ngTerms
]
buildNgramsOthersList
::
(
-- RepoCmdM env err m
buildNgramsOthersList
::
(
HasNodeError
err
--
, CmdM env err m
,
CmdM
env
err
m
HasNodeError
err
,
RepoCmdM
env
err
m
--
, HasTreeError err
,
HasTreeError
err
)
)
=>
User
=>
User
->
UserCorpusId
->
UserCorpusId
->
(
Text
->
Text
)
->
(
Text
->
Text
)
->
NgramsType
->
NgramsType
->
Cmd
err
(
Map
NgramsType
[
NgramsElement
])
->
m
(
Map
NgramsType
[
NgramsElement
])
buildNgramsOthersList
_user
uCid
groupIt
nt
=
do
buildNgramsOthersList
_user
uCid
groupIt
nt
=
do
ngs
<-
groupNodesByNgramsWith
groupIt
<$>
getNodesByNgramsUser
uCid
nt
ngs
<-
groupNodesByNgramsWith
groupIt
<$>
getNodesByNgramsUser
uCid
nt
...
@@ -101,11 +101,11 @@ buildNgramsTermsList :: ( HasNodeError err
...
@@ -101,11 +101,11 @@ buildNgramsTermsList :: ( HasNodeError err
,
HasTreeError
err
,
HasTreeError
err
)
)
=>
User
=>
User
->
GroupParams
->
UserCorpusId
->
UserCorpusId
->
MasterCorpusId
->
MasterCorpusId
->
GroupParams
->
m
(
Map
NgramsType
[
NgramsElement
])
->
m
(
Map
NgramsType
[
NgramsElement
])
buildNgramsTermsList
user
groupParams
uCid
mCid
=
do
buildNgramsTermsList
user
uCid
mCid
groupParams
=
do
-- Computing global speGen score
-- Computing global speGen score
allTerms
<-
Map
.
toList
<$>
getTficf
uCid
mCid
NgramsTerms
allTerms
<-
Map
.
toList
<$>
getTficf
uCid
mCid
NgramsTerms
...
@@ -115,17 +115,7 @@ buildNgramsTermsList user groupParams uCid mCid = do
...
@@ -115,17 +115,7 @@ buildNgramsTermsList user groupParams uCid mCid = do
-- First remove stops terms
-- First remove stops terms
socialLists
<-
flowSocialList
user
NgramsTerms
(
Set
.
fromList
$
map
fst
allTerms
)
socialLists
<-
flowSocialList
user
NgramsTerms
(
Set
.
fromList
$
map
fst
allTerms
)
-- printDebug "\n * socialLists * \n" socialLists
printDebug
"
\n
* socialLists *
\n
"
socialLists
{-
let
_socialMap = fromMaybe Set.empty $ Map.lookup MapTerm socialLists
_socialCand = fromMaybe Set.empty $ Map.lookup CandidateTerm socialLists
socialStop = fromMaybe Set.empty $ Map.lookup StopTerm socialLists
-- stopTerms ignored for now (need to be tagged already)
-- (stopTerms, candidateTerms) = List.partition ((\t -> Set.member t socialStop) . fst) allTerms
-}
-- Grouping the ngrams and keeping the maximum score for label
-- Grouping the ngrams and keeping the maximum score for label
...
@@ -138,10 +128,9 @@ buildNgramsTermsList user groupParams uCid mCid = do
...
@@ -138,10 +128,9 @@ buildNgramsTermsList user groupParams uCid mCid = do
groupedWithList
=
map
(
addListType
(
invertForw
socialLists
))
grouped
groupedWithList
=
map
(
addListType
(
invertForw
socialLists
))
grouped
(
stopTerms
,
candidateTerms
)
=
Map
.
partition
(
\
t
->
t
^.
gt_listType
==
Just
StopTerm
)
groupedWithList
(
stopTerms
,
candidateTerms
)
=
Map
.
partition
(
\
t
->
t
^.
gt_listType
==
Just
StopTerm
)
groupedWithList
(
groupedMono
,
groupedMult
)
=
Map
.
partition
(
\
gt
->
_gt_size
gt
<
2
)
candidateTerms
(
groupedMono
,
groupedMult
)
=
Map
.
partition
(
\
gt
->
gt
^.
gt_size
<
2
)
candidateTerms
-- printDebug "\n * stopTerms * \n" stopTerms
-- printDebug "\n * stopTerms * \n" stopTerms
-- printDebug "groupedMult" groupedMult
-- splitting monterms and multiterms to take proportional candidates
-- splitting monterms and multiterms to take proportional candidates
let
let
listSizeGlobal
=
2000
::
Double
-- use % of list if to big, or Int if to small
listSizeGlobal
=
2000
::
Double
-- use % of list if to big, or Int if to small
...
@@ -162,8 +151,7 @@ buildNgramsTermsList user groupParams uCid mCid = do
...
@@ -162,8 +151,7 @@ buildNgramsTermsList user groupParams uCid mCid = do
-- Get Local Scores now for selected grouped ngrams
-- Get Local Scores now for selected grouped ngrams
selectedTerms
=
Set
.
toList
$
List
.
foldl'
selectedTerms
=
Set
.
toList
$
List
.
foldl'
(
\
set'
(
GroupedText
_
l'
_
g
_
_
_
)
->
Set
.
union
set'
(
\
set'
(
GroupedText
_
l'
_
g
_
_
_
)
->
Set
.
union
set'
$
Set
.
union
g
$
Set
.
insert
l'
g
$
Set
.
singleton
l'
)
)
Set
.
empty
Set
.
empty
(
groupedMonoHead
<>
groupedMultHead
)
(
groupedMonoHead
<>
groupedMultHead
)
...
@@ -241,22 +229,22 @@ buildNgramsTermsList user groupParams uCid mCid = do
...
@@ -241,22 +229,22 @@ buildNgramsTermsList user groupParams uCid mCid = do
-- Final Step building the Typed list
-- Final Step building the Typed list
-- (map (toGargList $ Just StopTerm) stopTerms) -- Removing stops (needs social score)
termListHead
=
maps
<>
cands
termListHead
=
where
(
map
(
\
g
->
g
{
_gt_listType
=
Just
MapTerm
}
)
(
monoScoredInclHead
<>
monoScoredExclHead
maps
=
set
gt_listType
(
Just
MapTerm
)
<>
mult
ScoredInclHead
<$>
mono
ScoredInclHead
<>
mult
ScoredExclHead
<>
mono
ScoredExclHead
)
<>
multScoredInclHead
)
<>
multScoredExclHead
<>
(
map
(
\
g
->
g
{
_gt_listType
=
Just
CandidateTerm
})
(
monoScoredInclTail
<>
monoScoredExclTail
cands
=
set
gt_listType
(
Just
CandidateTerm
)
<>
mult
ScoredInclTail
<$>
mono
ScoredInclTail
<>
mult
ScoredExclTail
<>
mono
ScoredExclTail
)
<>
multScoredInclTail
)
<>
multScoredExclTail
termListTail
=
map
(
\
g
->
g
{
_gt_listType
=
Just
CandidateTerm
}
)
(
groupedMonoTail
<>
groupedMultTail
)
termListTail
=
map
(
set
gt_listType
(
Just
CandidateTerm
)
)
(
groupedMonoTail
<>
groupedMultTail
)
-- printDebug "monoScoredInclHead" monoScoredInclHead
-- printDebug "monoScoredInclHead" monoScoredInclHead
-- printDebug "monoScoredExclHead" monoScoredExclTail
-- printDebug "monoScoredExclHead" monoScoredExclTail
...
...
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