]> Git — Sourcephile - gargantext.git/blob - test/Ngrams/Lang/Fr.hs
[FIX] NLP Ngrams parser works for French _and_ English.
[gargantext.git] / test / Ngrams / Lang / Fr.hs
1 {-# LANGUAGE OverloadedStrings #-}
2 {-# LANGUAGE ScopedTypeVariables #-}
3
4 module Ngrams.Lang.Fr where
5
6 import Test.Hspec
7
8 import Data.Gargantext.Prelude
9 import Data.Gargantext.Types.Main (Language(..))
10 import Data.Gargantext.Ngrams.Parser (extractNgrams, selectNgrams)
11
12 ngramsExtractionTest :: IO ()
13 ngramsExtractionTest = hspec $ do
14 describe "Behavioral tests: ngrams extraction in French Language" $ do
15 it "Groupe : adjectif et nom commun" $ do
16 let textFr = "Le beau texte fut écrit."
17 testFr <- pm (selectNgrams FR) <$> (extractNgrams FR) textFr
18 testFr `shouldBe` [[("beau texte","NC","O")]]
19
20 it "Groupe : adjectifs et nom commun" $ do
21 let textFr = "Le beau petit texte fut écrit."
22 testFr <- pm (selectNgrams FR) <$> (extractNgrams FR) textFr
23 testFr `shouldBe` [[("beau petit texte","NC","O")]]
24 -- `shouldBe` [[("beau texte","NC","O"),("petit texte","NC","O")]] ?
25
26 it "Groupe : nom commun et adjectif" $ do
27 let textFr = "Le livre blanc fut écrit."
28 testFr <- pm (selectNgrams FR) <$> (extractNgrams FR) textFr
29 testFr `shouldBe` [[("livre blanc","NC","O")]]
30
31 it "Groupe : nom commun et adjectifs avec conjonction" $ do
32 let textFr = "Le livre blanc et rouge."
33 testFr <- pm (selectNgrams FR) <$> (extractNgrams FR) textFr
34 testFr `shouldBe` [[("livre blanc","N","O"),("livre rouge","N","O")]]
35 -- `shouldBe` [[("livre blanc et rouge","N","O")]] ?
36
37 it "Groupe: Nom commun + préposition + Nom commun" $ do
38 let textFr0 = "Le problème du jour est résolu."
39 testFr0 <- pm (selectNgrams FR) <$> (extractNgrams FR) textFr0
40 testFr0 `shouldBe` [[("problème du jour","NC","O")]]
41
42 it "Groupe: Nom commun + préposition + Nom commun + prép + Nom commun" $ do
43 let textFr1 = "L'heure d'arrivée des coureurs dépend de la météo du jour."
44 testFr1 <- pm (selectNgrams FR) <$> (extractNgrams FR) textFr1
45 testFr1 `shouldBe` [[("heure d' arrivée des coureurs","NC","O"),("météo du jour","NC","O")]]
46