15461
15462
15463
15464
15465
15466
15467
15468
15469
15470
15471
15472
15473
15474
15475
15476
15477
15478
15479
15480
15481
15482
15483
15484
15485
15486
15487
15488
15489
15490
15491
15492
15493
15494
15495
15496
15497
15498
15499
15500
15501
15502
15503
15504
15505
15506
15507
15508
15509
15510
15511
15512
15513
15514
15515
15516
15517
15518
15519
15520
15521
15522
15523
15524
15525
15526
15527
15528
15529
15530
15531
15532
15533
15534
15535
15536
15537
15538
15539
15540
15541
15542
15543
15544
15545
15546
15547
15548
15549
15550
15551
15552
15553
15554
15555
15556
15557
15558
15559
15560
15561
15562
15563
15564
15565
15566
15567
15568
15569
15570
15571
15572
15573
15574
15575
15576
15577
15578
15579
15580
15581
15582
15583
15584
15585
15586
15587
15588
15589
15590
15591
15592
15593
15594
15595
15596
15597
15598
15599
15600
15601
15602
15603
15604
15605
15606
15607
15608
15609
15610
15611
15612
15613
15614
15615
15616
15617
15618
15619
15620
15621
15622
15623
15624
15625
15626
15627
15628
15629
15630
15631
15632
15633
15634
15635
15636
15637
15638
15639
15640
15641
15642
15643
15644
15645
15646
15647
15648
15649
15650
15651
15652
15653
15654
15655
15656
15657
15658
15659
15660
15661
15662
15663
15664
15665
15666
15667
15668
15669
15670
15671
15672
15673
15674
15675
15676
15677
15678
15679
15680
15681
15682
15683
15684
15685
15686
15687
15688
15689
15690
15691
15692
15693
15694
15695
15696
15697
15698
|
15558
15559
15560
15561
15562
15563
15564
15565
15566
15567
15568
15569
15570
15571
15572
15573
15574
15575
15576
15577
15578
15579
15580
15581
15582
15583
15584
15585
15586
15587
15588
15589
15590
15591
15592
15593
15594
15595
15596
15597
15598
15599
15600
15601
15602
15603
15604
15605
15606
15607
15608
15609
15610
15611
15612
15613
15614
15615
15616
15617
15618
15619
15620
15621
15622
15623
15624
15625
15626
15627
15628
15629
15630
15631
15632
15633
15634
15635
15636
15637
15638
15639
15640
15641
15642
15643
15644
15645
15646
15647
15648
15649
15650
15651
15652
15653
15654
15655
15656
15657
15658
15659
15660
15661
15662
15663
15664
15665
15666
15667
15668
15669
15670
15671
15672
15673
15674
15675
15676
15677
15678
15679
15680
15681
15682
15683
15684
15685
15686
15687
15688
15689
15690
15691
15692
15693
15694
15695
15696
15697
15698
15699
15700
15701
15702
15703
15704
15705
15706
15707
15708
15709
15710
15711
15712
15713
15714
15715
15716
15717
15718
15719
15720
15721
15722
15723
15724
15725
15726
15727
15728
15729
15730
15731
15732
15733
15734
15735
15736
15737
15738
15739
15740
15741
15742
15743
15744
15745
15746
15747
15748
15749
15750
15751
15752
15753
15754
15755
15756
15757
15758
15759
15760
15761
15762
15763
15764
15765
15766
15767
15768
15769
15770
15771
15772
15773
15774
15775
15776
15777
15778
15779
15780
15781
15782
|
-
+
+
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
+
-
-
-
-
+
+
+
+
+
-
+
-
-
-
+
+
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
-
-
+
+
+
+
+
+
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
-
-
+
-
-
+
-
-
-
+
-
-
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
-
-
-
+
-
+
-
-
+
-
-
+
+
-
+
+
-
+
-
-
-
-
-
-
-
-
-
-
-
+
-
+
-
-
+
-
-
+
-
-
-
+
+
+
-
-
+
-
-
-
-
-
+
-
-
-
-
-
-
+
-
-
-
-
-
+
-
-
-
-
-
-
-
-
-
-
-
+
-
+
-
-
+
+
+
-
-
-
-
-
-
-
-
-
+
-
-
-
-
-
-
-
+
+
+
+
+
-
-
-
+
+
+
+
-
-
-
+
|
TEST: Il faut être sans préjugés.
#### PAS D’INFINITIF
__ppas_être__
>être ~..er$
<<- morph(\1, ":V", ">(?:soit|été)") and (morph(\2, ":Y", ":[NAQ]") or \2 in aSHOULDBEVERB)
<<- /infi/ morph(\1, ":V", ":Q|>(?:soit)/") and (morph(\2, ":Y", ":[NAQ]") or \2 in aSHOULDBEVERB)
and not morph(<1, ":Y|>ce") and not value(<1, "|c’|")
and not tag_before(\1, "ce_que") and not tag_before(\1, "suj_vinfi")
-2>> =suggVerbPpas(\2) # Après “être”, le verbe ne devrait pas être à l’infinitif.
TEST: ils sont {{tromper}} par tous ces hypocrites.
TEST: Je suis {{emporter}} par la vague.
TEST: Jeûner n’est pas seulement cesser de manger.
TEST: Ne pas aimer n’est pas oublier l’autre.
TEST: Dire la vérité, c’eût été manquer à sa parole.
TEST: C’est soit manquer une opportunité, soit arriver à ses fins de manière douteuse.
@@@@
@@@@
@@@@
@@@@
@@@@END_GRAPH _
@@@@
@@@@
@@@@
@@@@
!!
!!
!!!! Conjugaison !!
!!
!!
## 1sg
__[i]/conj(conj_moi_qui)__
__conj_moi_qui__
(moi +qui) +({w_1}) @@0,$
<<- morphex(\2, ":V", ":(?:1s|G|1p|3p!)") >>>
<<- \2 == "est" or \2 == "es" -2>> ai|aie|suis # Conjugaison erronée. Confusion probable entre “être” et “avoir”. Accord avec « \1 ». Le verbe devrait être à la 1ʳᵉ personne du singulier.
<<- __else__ -2>> =suggVerb(@, ":1s") # Conjugaison erronée. Accord avec « \1 ». Le verbe devrait être à la 1ʳᵉ personne du singulier.
moi qui @:V¬:(?:1s|G|1p|3p!)
<<- /conj/ \3 == "est" or \3 == "es" -2>> ai|aie|suis # Conjugaison erronée. Confusion probable entre “être” et “avoir”. Accord avec “\1 \2”. Le verbe devrait être à la 1ʳᵉ personne du singulier.
<<- /conj/ __else__ -3>> =suggVerb(\3, ":1s") # Conjugaison erronée. Accord avec “\1 \2”. Le verbe devrait être à la 1ʳᵉ personne du singulier.
TEST: C’est moi qui {{donnes}} des maux de têtes !
TEST: Et moi par ailleurs qui {{suit}} si savant…
## 2sg
__[i]/conj(conj_toi_qui)__
__conj_toi_qui__
(toi +qui) +({w_1}) @@0,$
<<- morphex(\2, ":V", ":(?:G|2p|3p!|[ISK].*:2s)")
-2>> =suggVerb(@, ":2s") # Conjugaison erronée. Accord avec « \1 ». Le verbe devrait être à la 2ᵉ personne du singulier.
toi qui @:V¬:(?:G|2p|3p!|[ISK].*:2s)
<<- /conj/ -3>> =suggVerb(\3, ":2s") # Conjugaison erronée. Accord avec “\1 \2”. Le verbe devrait être à la 2ᵉ personne du singulier.
TEST: toi qui n’y {{connaît}} rien, ne nous ennuie pas avec tes théories.
TEST: et toi, contre toute attente, qui te {{souvient}} d’une chose à laquelle plus personne ne pensait.
TEST: toi qui {{arrive}} toujours en retard, tu es mal placé pour donner des conseils.
## 3sg
__conj_elle__
elle @:V¬:(?:3s|P|G)
<<- /conj/ not morph(<1, ":R|>(?:et|ou)") and not (morph(\2, ":Q") and morph(<1, ":V0.*:3s"))
-2>> =suggVerb(\2, ":3s") # Conjugaison erronée. Accord avec “\1”. Le verbe devrait être à la 3ᵉ personne du singulier.
<<- __also__ and morph(\2, ":3p") -1>> elles # Accord avec “\2”.
__[i]/conj(conj_quiconque)__
quiconque +({w_1}) @@$
<<- morphex(\1, ":V", ":(?:3s|P|G|Q.*:m:[si])")
-1>> =suggVerb(@, ":3s") # Conjugaison erronée. Accord avec « quiconque ». Le verbe devrait être à la 3ᵉ personne du singulier.
elle qui @:V¬:(?:3s|P|G)
<<- /conj/ not morph(<1, ":R|>(?:et|ou)")
-3>> =suggVerb(\2, ":3s") # Conjugaison erronée. Accord avec “\1”. Le verbe devrait être à la 3ᵉ personne du singulier.
<<- __also__ and morph(\3, ":3p") -1>> elles # Accord avec “\3”.
TEST: Elle {{conquis}}.
TEST: Elle {{finis}}.
TEST: Elle {{pâlis}}.
TEST: {{Elles}} {{donne}} des leçons.
TEST: {{Elle}} ne nous {{croient}} jamais.
TEST: {{elle}} {{sont}} parties.
TEST: {{elle}} ne {{sont}}
TEST: {{elle}} {{sont}} partis.
TEST: elle {{demeures}}
TEST: elle {{mangeras}}
TEST: elle {{fus}} partie.
TEST: elle a appris bien trop jeune à ne faire confiance à personne.
__conj_quiconque__
quiconque @:V¬:(?:3s|P|G|Q.*:m:[si])
<<- /conj/ -2>> =suggVerb(\2, ":3s") # Conjugaison erronée. Accord avec “quiconque”. Le verbe devrait être à la 3ᵉ personne du singulier.
TEST: Quiconque {{pensez}} s’en sortir se trompait lourdement.
TEST: Il voulut punir quiconque s’y {{adonnaient}}.
TEST: quiconque issu de la gauche n’a aucune chance.
__[i]/conj(conj_celui_celle_qui)__
__conj_ce_celui_celle_qui__
(ce(?:lui|lle|) +qui) +({w_1}) @@0,$
<<- morphex(\2, ":V", ":(?:3s|P|Q|G)")
-2>> =suggVerb(@, ":3s") # Conjugaison erronée. Accord avec « \1 ». Le verbe devrait être à la 3ᵉ personne du singulier.
[ce|celui|celle] qui @:V¬:(?:3s|P|Q|G)
<<- /conj/ -3>> =suggVerb(\3, ":3s") # Conjugaison erronée. Accord avec “\1 \2”. Le verbe devrait être à la 3ᵉ personne du singulier.
TEST: Ce qui, la plupart du temps, {{donnes}} des maux de tête.
TEST: Ce qui {{fâchent}} mes amis.
TEST: celui qui {{pensent}} mal de toute chose
__conj_3sg_misc__
[ça|chacun|chacune|ceci|cela|celui-ci|celui-là|celle-ci|celle-là|quelqu’un|quelqu’une] @:V¬:(?:3s|P|Q|G|3p!)
<<- /conj/ not morph(<1, ":[VR]|>de/")
-2>> =suggVerb(\2, ":3s") # Conjugaison erronée. Accord avec “\1”. Le verbe devrait être à la 3ᵉ personne du singulier.
__[i]/conj(conj_ça)__
(ça|chacune?|l’une?|ce(?:ci|la|lui-(?:ci|là)|lle-(?:ci|là))|n`importe quo?i|quelqu(?:’une?|e chose)) +(?:qui +|)({w_1}) @@0,$
<<- morphex(\2, ":V", ":(?:3s|P|Q|G|3p!)") and not morph(word(-1), ":[VR]|>de/", False, False)
-2>> =suggVerb(@, ":3s") # Conjugaison erronée. Accord avec « \1 ». Le verbe devrait être à la 3ᵉ personne du singulier.
[ça|chacun|chacune|ceci|cela|celui-ci|celui-là|celle-ci|celle-là|quelqu’un|quelqu’une] qui @:V¬:(?:3s|P|Q|G|3p!)
<<- /conj/ -3>> =suggVerb(\3, ":3s") # Conjugaison erronée. Accord avec “\1”. Le verbe devrait être à la 3ᵉ personne du singulier.
l’ [un|une] @:V¬:(?:3s|P|Q|G|3p!)
quelque chose @:V¬:(?:3s|P|Q|G|3p!)
n’importe [qui|quoi] @:V¬:(?:3s|P|Q|G|3p!)
<<- /conj/ not morph(<1, ":[VR]|>de/")
--1>> =suggVerb(\-1, ":3s") # Conjugaison erronée. Accord avec “\1”. Le verbe devrait être à la 3ᵉ personne du singulier.
l’ [un|une] qui @:V¬:(?:3s|P|Q|G|3p!)
quelque chose qui @:V¬:(?:3s|P|Q|G|3p!)
n’importe [qui|quoi] qui @:V¬:(?:3s|P|Q|G|3p!)
<<- /conj/ --1>> =suggVerb(\-1, ":3s") # Conjugaison erronée. Accord avec “\1”. Le verbe devrait être à la 3ᵉ personne du singulier.
TEST: chacun {{fais}} comme il peut
TEST: quelqu’un {{sauras}}
#TEST: quelqu’une se {{montrent}} désagréable # Fuck you, JavaScript (wait for negative lookbehind assertions)
TEST: quelqu’une se {{montrent}} désagréable
TEST: n’importe quoi {{peux}} réussir
TEST: n’importe qui {{peux}} y arriver.
TEST: quelque chose {{sens}} mauvais ici
TEST: l’un d’eux {{viendras}}
TEST: ce {{dois}} être ennuyeux
TEST: ce {{seras}} foutu
TEST: mais ça ne vous {{aideras}} en rien
TEST: Cela ne t’{{aideras}} pas.
TEST: Cela {{dis}}, on ne sait pas comment s’en sortir.
TEST: Y avait-il seulement quelqu’un pour vouloir soumettre ses recherches ?
__[i]/conj(conj_tout)__
__conj_tout__
tout +({w_1}) @@$
<<- morphex(\1, ":V", ":(?:3s|P|Q|Y|G|3p!)") and not morph(word(-1), ":[VRD]|>de", False, False)
tout @:V¬:(?:3s|P|Q|Y|G|3p!|N.*:m:[si])
and not( morph(\1, ":(?:Y|N.*:m:[si])", False) and not re.search(" (?:qui|>) ", \0) )
-1>> =suggVerb(@, ":3s") # Conjugaison erronée. Accord avec « tout ». Le verbe devrait être à la 3ᵉ personne du singulier.
<<- /conj/ not morph(<1, ":[VRD]") -2>> =suggVerb(\2, ":3s") # Conjugaison erronée. Accord avec « tout ». Le verbe devrait être à la 3ᵉ personne du singulier.
__[i]/conj(conj_tout_qui)__
tout +qui +({w_1}) @@$
<<- morphex(\1, ":V", ":(?:3s|P|Q|G|3p!)") and not morph(word(-1), ":[VRD]|>de", False, False)
tout qui @:V¬:(?:3s|P|Q|G|3p!)
and not( morph(\1, ":(?:Y|N.*:m:[si])", False) and not re.search(" (?:qui|>) ", \0) )
-1>> =suggVerb(@, ":3s") # Conjugaison erronée. Accord avec « tout ». Le verbe devrait être à la 3ᵉ personne du singulier.
<<- /conj/ -3>> =suggVerb(\3, ":3s") # Conjugaison erronée. Accord avec « tout ». Le verbe devrait être à la 3ᵉ personne du singulier.
TEST: Tout {{reviens}} à ça.
TEST: Tout qui {{deviens}} fou.
TEST: Tout donne envie.
TEST: Tout lui fait peur.
TEST: Tout la fait pleurer
TEST: Tout vient à point.
TEST: tout nous ennuie.
TEST: Tout les dégoûte.
TEST: Tout est vain, tout est vanité.
TEST: Tout anonyme qu’il soit, on n’en finira pas moins par le démasquer.
TEST: Tout avaler d’une seule bouchée.
TEST: Le tout nouveau président de la fondation qui héberge Wikipédia
TEST: tout discours de sortie nourrit immanquablement la sortie
TEST: Tout vous expliquer est difficile.
TEST: J’essaie de bien tout vous expliquer.
TEST: il faut de tout se méfier.
__[i]/conj(conj_lequel_laquelle)__
(l(?:equel|aquelle)) +(?:qui +|)({w_1}) @@0,$
__conj_lequel_laquelle__
[lequel|laquelle] @:V¬:(?:3s|P|Y|Q|G|3p!)
<<- morphex(\2, ":V", ":(?:3s|P|Q|G|3p!)") and not morph(word(-1), ":[VR]|>de", False, False)
and not( morph(\2, ":Y", False) and not re.search(" (?:qui|>) ", \0) )
-2>> =suggVerb(@, ":3s") # Conjugaison erronée. Accord avec « \1 ». Le verbe devrait être à la 3ᵉ personne du singulier.
<<- /conj/ not morph(<1, ":[VR]|>de") -2>> =suggVerb(\2, ":3s") # Conjugaison erronée. Accord avec “\1”. Le verbe devrait être à la 3ᵉ personne du singulier.
TEST: Lequel {{viendraient}} nous donner des leçons ?
TEST: Laquelle choisir ?
TEST: Lequel manger ?
TEST: Une société a vendu un terrain à bâtir à un acquéreur, lequel entreprend des travaux pour y construire un pavillon.
__[i]/conj(conj_elle)__
__conj_personne_aucun_rien__
(?<![dD]’)(elle) +({w_1}) @@0,$
<<- morphex(\2, ":V", ":(?:3s|P|G)") and not morph(word(-1), ":R|>(?:et|ou)", False, False)
[personne|aucun] ?qui¿ @:V¬:(?:3s|P|G)
and not (morph(\2, ":[PQ]", False) and morph(word(-1), ":V0.*:3s", False, False))
-2>> =suggVerb(@, ":3s") # Conjugaison erronée. Accord avec « \1 ». Le verbe devrait être à la 3ᵉ personne du singulier.
<<- /conf/ morph(<1, ":C|<start>|>,", ":(?:P|Q|[123][sp]|R)")
--1>> =suggVerb(\-1, ":3s") # Conjugaison erronée. Accord avec “\1”. Le verbe devrait être à la 3ᵉ personne du singulier.
<<- __also__ and morph(\2, ":3p", False) -1>> elles # Accord avec « \2 ».
rien @:V¬:(?:3s|P|G)
<<- /conf/ morph(<1, ":C|<start>|>,", ":(?:Y|P|Q|[123][sp]|R)")
TEST: Elle {{conquis}}.
and not(morph(\2, ":Y") and value(<1, "|ne|"))
TEST: Elle {{finis}}.
TEST: Elle {{pâlis}}.
TEST: {{Elles}} {{donne}} des leçons.
TEST: {{Elle}} ne nous {{croient}} jamais.
TEST: {{elle}} {{sont}} parties.
TEST: {{elle}} ne {{sont}}
TEST: {{elle}} {{sont}} partis.
TEST: elle {{demeures}}
TEST: elle {{mangeras}}
TEST: elle {{fus}} partie
--1>> =suggVerb(\-1, ":3s") # Conjugaison erronée. Accord avec “\1”. Le verbe devrait être à la 3ᵉ personne du singulier.
__[i]/conj(conj_personne_aucun_rien)__
rien qui @:V¬:(?:3s|P|G)
(personne|aucun|rien) +(?:qui +|)({w_1}) @@0,$
<<- morphex(\2, ":V", ":(?:3s|P|G)") and morphex(word(-1), ":C", ":(?:Y|P|Q|[123][sp]|R)", True)
<<- /conf/ morph(<1, ":C|<start>|>,", ":(?:Y|P|Q|[123][sp]|R)")
and not( \1.endswith("ien") and before("> +$") and morph(\2, ":Y", False) )
-2>> =suggVerb(@, ":3s") # Conjugaison erronée. Accord avec « \1… ». Le verbe devrait être à la 3ᵉ personne du singulier.
--1>> =suggVerb(\-1, ":3s") # Conjugaison erronée. Accord avec “\1”. Le verbe devrait être à la 3ᵉ personne du singulier.
TEST: Personne ne {{peux}} me le dire.
TEST: Rien ne {{sers}} de courir
TEST: Rien n’{{arrives}} sans raison
TEST: Rien, en ce qui le concernait, ne {{pouvais}} le ramener à la raison.
TEST: personne n’en {{parlent}}
TEST: aucun d’entre nous n’{{as}} donné
TEST: aucun ne {{vas}} là-bas
__[i]/conj(conj_nul_nulle)__
(nul(?:le|)) +(?:qui +|)({w_1}) @@0,$
<<- morphex(\2, ":V", ":(?:3s|P|G|N.*:[si])") and morphex(word(-1), ":C", ":(?:Y|P|Q|[123][sp]|R)", True)
__conj_nul_nulle__
[nul|nulle] ?qui¿ @:V¬:(?:3s|P|G|N.*:[si])
<<- /conj/ morph(<1, ":C", ":(?:Y|P|Q|[123][sp]|R)")
and not( \1.endswith("ien") and before("> +$") and morph(\2, ":Y", False) )
-2>> =suggVerb(@, ":3s") # Conjugaison erronée. Accord avec « \1… ». Le verbe devrait être à la 3ᵉ personne du singulier.
--1>> =suggVerb(\-1, ":3s") # Conjugaison erronée. Accord avec “\1”. Le verbe devrait être à la 3ᵉ personne du singulier.
TEST: nul ne {{sais}} que faire
TEST: nulle n’{{iras}} là-bas
TEST: nulle femme ne {{saurais}} le faire
TEST: nul homme ne {{sauras}} s’y prendre
TEST: nulle partie du corps ne peut être considérée comme le siège de l’âme.
__[i]/conj(conj_un_une_des)__
(?<!d’)(une? des {w_2}) +({w_1}) @@0,$
<<- morphex(\2, ":V", ":(?:3s|P|G|Q)") and morphex(word(-1), ":C", ":(?:Y|P|Q|[123][sp]|R)", True) and not morph(\2, ":[NA].*:[pi]", False)
-2>> =suggVerb(@, ":3s") # Conjugaison erronée. Accord avec « \1… ». Le verbe devrait être à la 3ᵉ personne du singulier.
__conj_vinfi_suj__
TEST: un des ingénieurs {{vinrent}} nous dire quoi faire.
TEST: un des membres présents au conseil {{demandent}} un vote à bulletin secret
TEST: une des femmes de ce conseil ne {{céderaient}} jamais au chantage.
TEST: une des femmes présente ses résultats.
TEST: les défaillances d’une des branches ne sont pas forcément couvertes.
[<start>|,] @:Y @:V¬:(?:3s|P|Q.*:m:[si]|Y|3p!)
__[i]/conj(conj_un_une_des_qui)__
(une? des {w_2}) +qui +({w_1}) @@0,$
<<- morphex(\2, ":V", ":(?:3[sp]|P|G)") and morphex(word(-1), ":C", ":(?:Y|P|Q|[123][sp]|R)", True)
-2>> =suggVerb(@, ":3s") # Conjugaison erronée. Accord avec « \1… ». Le verbe devrait être à la 3ᵉ personne du singulier.
<<- /conj/ -3>> =suggVerb(\3, ":3s") # Conjugaison erronée. Accord avec “\1”. Le verbe devrait être à la 3ᵉ personne du singulier.
TEST: un des chats qui {{venez}} nous ennuyer tous les jours.
TEST: un des hommes qui vient.
TEST: une des dames qui se sentent mal à l’aise dans cet avion est venue nous trouver.
TEST: l’un des chants les plus diffusés pendant la Révolution culturelle
__[i]/conj(conj_infi)__
^ *({infi}) +({w_2}) @@*,$
<<- morph(\1, ":Y", False) and morph(\2, ":V.[a-z_!?]+(?!.*:(?:3s|P|Q|Y|3p!))")
-2>> =suggVerb(@, ":3s") # Conjugaison erronée. Accord avec « \1… ». Le verbe devrait être à la 3ᵉ personne du singulier.
TEST: manger {{fais}} grossir.
TEST: boire immodérément {{nuis}} à la santé
TEST: Manger salé, c’est mauvais pour la santé.
__[i]/conj(conj_det_sing_nom)__
__conj_det_sing_nom__
(?<![dD]’)(une?|[mts](?:on|a)|ce(?:tte|t|)) +({w_2}) +({w_2}) @@0,w,$
<<- not (re.search("(?i)^une? +(?:dizaine|douzaine|quinzaine|vingtaine|trentaine|quarantaine|cinquantaine|soixantaine|centaine|majorité|minorité|millier|partie|poignée|tas|paquet) ", \0) and morph(\3, ":3p", False))
[le|la|l’|un|une|ce|cet|cette|mon|ton|son|ma|ta|sa|notre|votre|leur] *WORD @:V¬:(?:3s|P|Q|Y|3p!|G)
<<- /conj/ morph(<1, ":C|<start>|>,", ":[YP]") and morph(\2, ":[NA].*:[si]", ":G")
and not ( (value(\2, "|dizaine|douzaine|quinzaine|vingtaine|trentaine|quarantaine|cinquantaine|soixantaine|centaine|majorité|minorité|millier|partie|poignée|tas|paquet|moitié|")
and morphex(\2, ":[NAQ].*:[si]", ":G") and morphex(\3, ":V", ":(?:3s|P|Q|Y|3p!|G)") and morphex(word(-1), ":C", ":(?:Y|P)", True)
and not (before(r"(?i)\b(?:et|ou) +$") and morph(\3, ":[123]?p", False)) and not before(r"(?i)\bni .* ni ") >>>
<<- not checkAgreement(\2, \3)
-3>> =suggVerb(@, ":3s") # Conjugaison erronée. Accord avec « \1 \2… ». Le verbe devrait être à la 3ᵉ personne du singulier.
<<- __else__ and isAmbiguousAndWrong(\2, \3, ":s", ":3s")
-3>> =suggVerb(@, ":3s", suggSing) # Accord avec « \1 \2… » incorrect. Conjugaison erronée ou accord nom/adjectif incorrect.
__[i]/conj(conj_det_sing_nom_confusion)__
(?<![dD]’)(l(?:e(?:ur|) |a |’)) *({w_2}) +({w_2}) @@0,w,$
<<- not (re.search("(?i)^la +moitié ", \0) and morph(\3, ":3p", False))
or tag_before(\1, "ni") or value(<1, "|et|ou|")) and morph(\3, ":3?p") ) >>>
and morphex(\2, ":[NAQ].*:[si]", ":G") and morphex(\3, ":V", ":(?:3s|P|Q|Y|3p!|G)") and morphex(word(-1), ":C", ":(?:Y|P)", True)
and not (before(r"(?i)\b(?:et|ou) +$") and morph(\3, ":[123]?p", False)) and not before(r"(?i)\bni .* ni ") >>>
<<- not checkAgreement(\2, \3)
-3>> =suggVerb(@, ":3s") # Conjugaison erronée. Accord avec « \1 \2… ». Le verbe devrait être à la 3ᵉ personne du singulier.
<<- __else__ and isVeryAmbiguousAndWrong(\2, \3, ":s", ":3s", isStart())
-3>> =suggVerb(@, ":3s", suggSing) # Accord avec « \1 \2… » incorrect. Conjugaison erronée ou accord nom/adjectif incorrect.
__[i]/conj(conj_det_sing_nom_qui)__
<<- /conj/ not checkAgreement(\2, \3)
-3>> =suggVerb(\3, ":3s") # Conjugaison erronée. Accord avec “\1 \2…”. Le verbe devrait être à la 3ᵉ personne du singulier.
<<- /conj/ __else__ and isVeryAmbiguousAndWrong(\2, \3, ":s", ":3s", value(\1, "|<start>|,|"))
-3>> =suggVerb(\3, ":3s", suggSing) # Accord avec “\1 \2…” incorrect. Conjugaison erronée ou accord nom/adjectif incorrect.
(?<![dD]’)(l[ea] |une? |l’|[mts](?:on|a) |ce(?:tte|t|) |leur ) *({w_2}) +qui +({w_2}) @@0,w,$
<<- not ( re.search("(?i)^(?:une? +(?:dizaine|douzaine|quinzaine|vingtaine|trentaine|quarantaine|cinquantaine|soixantaine|centaine|majorité|minorité|millier|partie|poignée|tas|paquet) |la +moitié) ", \0)
and morph(\3, ":3p", False) )
[le|la|l’|un|une|ce|cet|cette|mon|ton|son|ma|ta|sa|notre|votre|leur] *WORD qui @:V¬:(?:3s|P|3p!|G)
<<- /conj/ morph(<1, ":C|<start>|>,", ":[YP]") and morph(\2, ":[NA].*:[si]", ":G")
and not ( (value(\2, "|dizaine|douzaine|quinzaine|vingtaine|trentaine|quarantaine|cinquantaine|soixantaine|centaine|majorité|minorité|millier|partie|poignée|tas|paquet|moitié|")
or tag_before(\1, "ni") or value(<1, "|et|ou|")) and morph(\4, ":3p") )
and morphex(\2, ":[NAQ].*:[si]", ":G") and morphex(\3, ":V", ":(?:3s|P|Q|Y|3p!|G)") and morphex(word(-1), ":C", ":(?:Y|P)", True)
and not (before(r"(?i)\b(?:et|ou) +$") and morph(\3, ":[123]p", False)) and not before(r"(?i)\bni .* ni ")
-3>> =suggVerb(@, ":3s") # Conjugaison erronée. Accord avec « \1 \2… ». Le verbe devrait être à la 3ᵉ personne du singulier.
-4>> =suggVerb(\4, ":3s") # Conjugaison erronée. Accord avec “\1 \2…”. Le verbe devrait être à la 3ᵉ personne du singulier.
TEST: La {{N.S.A.}} {{espionneras}} toujours tout le monde
TEST: La suspicion envers les élus {{accroissaient}}… ->> accroissait
TEST: Le chien n’{{es}} pas mort.
TEST: Ce roman-là de Jean-Paul Sartre {{es}} passionnant.
TEST: Cette confusion qui {{donnent}} le tournis.
TEST: La Corée {{peux}} gagner.
|
15718
15719
15720
15721
15722
15723
15724
15725
15726
15727
15728
15729
15730
15731
15732
15733
15734
15735
15736
15737
15738
15739
15740
15741
15742
15743
15744
15745
15746
15747
15748
15749
15750
15751
15752
15753
15754
15755
15756
15757
15758
15759
15760
15761
15762
15763
15764
15765
15766
15767
15768
15769
15770
15771
15772
15773
15774
15775
15776
15777
15778
15779
15780
15781
15782
15783
|
15802
15803
15804
15805
15806
15807
15808
15809
15810
15811
15812
15813
15814
15815
15816
15817
15818
15819
15820
15821
15822
15823
15824
15825
15826
15827
15828
15829
15830
15831
15832
15833
15834
15835
15836
15837
15838
15839
15840
15841
15842
15843
15844
15845
15846
15847
15848
15849
15850
15851
15852
15853
15854
15855
15856
15857
15858
15859
15860
15861
15862
15863
15864
15865
15866
15867
15868
15869
15870
15871
15872
15873
15874
15875
15876
15877
15878
15879
15880
15881
15882
15883
15884
15885
15886
|
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
+
+
+
-
+
-
-
+
-
-
+
+
+
+
-
-
+
-
-
-
-
+
+
+
+
|
TEST: une majorité de garçons voient mal comment faire
TEST: un tas de choses pouvaient aller de travers.
TEST: un paquet de gens futés n’y ont vu que du feu.
TEST: La moitié d’entre elles voient leurs loyers diminuer depuis le début de l’année
TEST: Une partie de ces propositions étaient naïves
TEST: tu n’acceptais jamais de danser avec quelqu’un si tu avais refusé à quelqu’un d’autre au début
__conj_un_une_des__
[un|une] des *WORD @:V¬:(?:3s|P|G|Q|[NA].*:[pi])
<<- /conj/ morph(<1, ":C|<start>|>,", ":(?:Y|P|Q|[123][sp]|R)")
--1>> =suggVerb(\-1, ":3s") # Conjugaison erronée. Accord avec “\1 \2 \3…”. Le verbe devrait être à la 3ᵉ personne du singulier.
## 1pl
__[i]/conj(conj_nous_pronom)__
^ *nous +({w1}) @@$
<<- morphex(\1, ":V", ":(?:1p|3[sp])") and not after("^ +(?:je|tu|ils?|elles?|on|[vn]ous)")
-1>> =suggVerb(@, ":1p") # Conjugaison erronée. Accord avec « nous ». Le verbe devrait être à la 1ʳᵉ personne du pluriel.
__[i]/conj(conj_nous_qui)__
^ *nous +qui +({w1}) @@$
<<- morphex(\1, ":V", ":[13]p") and not after("^ +(?:je|tu|il|elle|on|[vn]ous)")
-1>> =suggVerb(@, ":1p") # Conjugaison erronée. Accord avec « nous ». Le verbe devrait être à la 1ʳᵉ personne du pluriel.
__[i]/conj(conj_nous)__
^ *nous +(?:qui +|)(\w+ont) @@$
[un|une] des *WORD qui @:V¬:(?:3[sp]|P|G)
<<- /conj/ morph(<1, ":C|<start>|>,", ":(?:Y|P|Q|[123][sp]|R)")
--1>> =suggVerb(\-1, ":3s") # Conjugaison erronée. Accord avec “\1 \2 \3…”. Le verbe devrait être à la 3ᵉ personne du singulier ou du pluriel.
TEST: un des ingénieurs {{vinrent}} nous dire quoi faire.
TEST: un des membres présents au conseil {{demandent}} un vote à bulletin secret
TEST: une des femmes de ce conseil ne {{céderaient}} jamais au chantage.
TEST: un des chats qui {{venez}} nous ennuyer tous les jours.
TEST: une des femmes présente ses résultats.
TEST: les défaillances d’une des branches ne sont pas forcément couvertes.
TEST: Les résultats d’une des membres étaient particulièrement notables.
TEST: un des hommes qui vient.
TEST: une des dames qui se sentent mal à l’aise dans cet avion est venue nous trouver.
TEST: l’un des chants les plus diffusés pendant la Révolution culturelle
## 1pl
__conj_nous2__
[<start>|,] nous @:V¬:(?:1p|3[sp])
<<- /conj/ not value(>1, "|je|tu|il|elle|on|nous|vous|ils|elles|")
-3>> =suggVerb(\3, ":1p") # Conjugaison erronée. Accord avec “nous”. Le verbe devrait être à la 1ʳᵉ personne du pluriel.
[<start>|,] nous qui @:V¬:1p
<<- morphex(\1, ":V", ":1p") and not after("^ +(?:ils|elles)")
-1>> =suggVerb(@, ":1p") # Conjugaison erronée. Accord avec « nous ». Le verbe devrait être à la 1ʳᵉ personne du pluriel.
<<- /conj/ -4>> =suggVerb(\4, ":1p") # Conjugaison erronée. Accord avec “nous”. Le verbe devrait être à la 1ʳᵉ personne du pluriel.
TEST: nous {{donné}} trop de considération
TEST: nous vous {{donnerez}} trop de considération
TEST: nous qui {{somme}} si savants
TEST: nous qui {{mourront}} pour toi.
TEST: nous prendre la tête, c’est son passe-temps favori.
TEST: Nous avons également sous-estimé l’état désastreux dans lequel se trouvait le pays.
TEST: Tu nous fais ton baratin, nous prends pour des cons, nous donnes des leçons de morale, nous assènes ta vision comme si c’était une révélation du ciel.
## 2pl
__[i]/conj(conj_vous_pronom)__
^ *vous +({w1}) @@$
<<- morphex(\1, ":V", ":(?:2p|3[sp])") and not after("^ +(?:je|ils?|elles?|on|[vn]ous)")
-1>> =suggVerb(@, ":2p") # Conjugaison erronée. Accord avec « vous ». Le verbe devrait être à la 2ᵉ personne du pluriel.
__[i]/conj(conj_vous_qui)__
^ *vous +qui +({w1}) @@$
__conj_vous2__
[<start>|,] vous @:V¬:(?:2p|3[sp])
<<- /conj/ not value(>1, "|je|il|elle|on|nous|vous|ils|elles|")
-3>> =suggVerb(\3, ":2p") # Conjugaison erronée. Accord avec « vous ». Le verbe devrait être à la 2ᵉ personne du pluriel.
[<start>|,] vous qui @:V¬:2p
<<- morphex(\1, ":V", ":2p") and not after("^ +(?:je|ils?|elles?|on|[vn]ous)")
-1>> =suggVerb(@, ":2p") # Conjugaison erronée. Accord avec « vous ». Le verbe devrait être à la 2ᵉ personne du pluriel.
<<- /conj/ -4>> =suggVerb(\4, ":2p") # Conjugaison erronée. Accord avec « vous ». Le verbe devrait être à la 2ᵉ personne du pluriel.
TEST: vous {{donné}} du bonheur
TEST: vous lui {{donner}} du temps
TEST: vous qui {{avançait}} dans la nuit comme des ombres furtives
TEST: vous qui {{décider}} de l’avenir du peuple.
TEST: vous “étaler” sera notre plus grande joie.
TEST: je vous donnais votre dû, vous payais mieux que quiconque et vous me faites un procès.
## 3pl
__[i]/conj(conj_ils)__
(ils) +({w_2}) @@0,$
@@@@
<<- morphex(\2, ":V", ":(?:3p|P|Q|G)") and not (morph(\2, ":[PQ]", False) and morph(word(-1), ":V0.*:3p", False, False))
-2>> =suggVerb(@, ":3p") # Conjugaison erronée. Accord avec « \1 ». Le verbe devrait être à la 3ᵉ personne du pluriel.
@@@@
@@@@
@@@@
@@@@END_GRAPH _
<<- __also__ and morph(\2, ":3s", False) -1>> il # Accord avec « \2 ».
@@@@
TEST: {{Ils}} {{vienne}} souvent.
TEST: Ils ne m’{{attends}} pas.
TEST: {{Ils}} vous le {{donne}}.
TEST: {{Ils}} {{faut}} venir.
@@@@
@@@@
@@@@
## 3pl
__[i]/conj(conj_ceux_celles_qui)__
(ce(?:ux|lles) +qui) +({w_1}) @@0,$
<<- morphex(\2, ":V", ":(?:3p|P|Q|G)")
-2>> =suggVerb(@, ":3p") # Conjugaison erronée. Accord avec « \1 ». Le verbe devrait être à la 3ᵉ personne du singulier.
TEST: Ceux qui {{chante}} toute la journée…
TEST: Celles qui {{pense}}.
|