4 Copyright : (c) CNRS, 2017-Present
5 License : AGPL + CECILL v3
6 Maintainer : team@gargantext.org
7 Stability : experimental
10 Here is a longer description of this module, containing some
11 commentary with @some markup@.
14 {-# LANGUAGE ScopedTypeVariables #-}
16 module Ngrams.Lang.Fr where
20 import Gargantext.Prelude
21 import Gargantext.Core (Lang(..))
22 import Gargantext.Text.Ngrams.PosTagging.Parser (extractNgrams, selectNgrams)
24 ngramsExtractionTest :: IO ()
25 ngramsExtractionTest = hspec $ do
26 describe "Behavioral tests: ngrams extraction in French Language" $ do
27 it "Groupe : adjectif et nom commun" $ do
28 let textFr = "Le beau texte fut écrit."
29 testFr <- map (selectNgrams FR) <$> (extractNgrams FR) textFr
30 testFr `shouldBe` [[("beau texte","NC","O")]]
32 it "Groupe : adjectifs et nom commun" $ do
33 let textFr = "Le beau petit texte fut écrit."
34 testFr <- map (selectNgrams FR) <$> (extractNgrams FR) textFr
35 testFr `shouldBe` [[("beau petit texte","NC","O")]]
36 -- `shouldBe` [[("beau texte","NC","O"),("petit texte","NC","O")]] ?
38 it "Groupe : nom commun et adjectif" $ do
39 let textFr = "Le livre blanc fut écrit."
40 testFr <- map (selectNgrams FR) <$> (extractNgrams FR) textFr
41 testFr `shouldBe` [[("livre blanc","NC","O")]]
43 it "Groupe : nom commun et adjectifs avec conjonction" $ do
44 let textFr = "Le livre blanc et rouge."
45 testFr <- map (selectNgrams FR) <$> (extractNgrams FR) textFr
46 testFr `shouldBe` [[("livre blanc","NC","O"),("livre rouge","NC","O")]]
47 -- `shouldBe` [[("livre blanc et rouge","N","O")]] ?
49 it "Groupe: Nom commun + préposition + Nom commun" $ do
50 let textFr0 = "Le problème du jour est résolu."
51 testFr0 <- map (selectNgrams FR) <$> (extractNgrams FR) textFr0
52 testFr0 `shouldBe` [[("problème du jour","NC","O")]]
54 it "Groupe: Nom commun + préposition + déterminant + Nom commun" $ do
55 let textFr0 = "Emmanuel Macron est le président de la France."
56 testFr0 <- map (selectNgrams FR) <$> (extractNgrams FR) textFr0
57 testFr0 `shouldBe` [[("Emmanuel Macron","NPP","PERSON"),("président de la France","NC","LOCATION")]]
60 it "Groupe: Nom commun + préposition + Nom commun + prép + Nom commun" $ do
61 let textFr1 = "L'heure d'arrivée des coureurs dépend de la météo du jour."
62 testFr1 <- map (selectNgrams FR) <$> (extractNgrams FR) textFr1
63 testFr1 `shouldBe` [[("heure d' arrivée des coureurs","NC","O"),("météo du jour","NC","O")]]