]> Git — Sourcephile - gargantext.git/blob - src/Gargantext/Text/Terms/Multi/Group.hs
[RENAME/ORG] ngrams -> terms.
[gargantext.git] / src / Gargantext / Text / Terms / Multi / Group.hs
1 {-|
2 Module : Gargantext.Text.Terms.Multi.Group
3 Description : English Grammar rules to group postag tokens.
4 Copyright : (c) CNRS, 2017-Present
5 License : AGPL + CECILL v3
6 Maintainer : team@gargantext.org
7 Stability : experimental
8 Portability : POSIX
9
10 Rule-based grammars are computed in this english module in order to
11 group the tokens into extracted terms.
12
13 -}
14
15 {-# LANGUAGE NoImplicitPrelude #-}
16 {-# LANGUAGE OverloadedStrings #-}
17
18 module Gargantext.Text.Terms.Multi.Group (group2)
19 where
20
21 import Data.Maybe (Maybe(Just))
22
23 import Gargantext.Core.Types
24 import Gargantext.Prelude
25
26 -- | FIXME p1 and p2 not really taken into account
27 group2 :: POS -> POS -> [TokenTag] -> [TokenTag]
28 group2 p1 p2 (x@(TokenTag _ _ (Just p1') _):y@(TokenTag _ _ (Just p2') _):z) =
29 if (p1 == p1') && (p2 == p2')
30 then group2 p1 p2 (x<>y : z)
31 else (x : group2 p1 p2 (y:z))
32 group2 p1 p2 (x@(TokenTag _ _ Nothing _):y) = (x: group2 p1 p2 y)
33 group2 _ _ [x@(TokenTag _ _ (Just _) _)] = [x]
34 group2 p1 p2 (x@(TokenTag _ _ (Just _) _):y@(TokenTag _ _ Nothing _):z) = (x:y: group2 p1 p2 (y:z))
35 group2 _ _ [] = []
36
37
38