Commit 5c57aefc authored by Alexandre Delanoë's avatar Alexandre Delanoë

[Clean] code

parent 3fa450cd
...@@ -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, CmdM) 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)
<> multScoredInclHead <$> monoScoredInclHead
<> multScoredExclHead <> monoScoredExclHead
) <> multScoredInclHead
) <> multScoredExclHead
<> (map (\g -> g { _gt_listType = Just CandidateTerm }) ( monoScoredInclTail
<> monoScoredExclTail cands = set gt_listType (Just CandidateTerm)
<> multScoredInclTail <$> monoScoredInclTail
<> multScoredExclTail <> monoScoredExclTail
) <> 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
......
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