Beispiel #1
0
        public static List <Word> RassemblerGN(List <Word> phraseArg)
        {
            List <MyTuple <Mask, int, int> > tousLesMaskTrouves = TrouverGroupesNominaux(phraseArg);
            List <Word>   phrase = new List <Word>(phraseArg);
            GroupeNominal gn     = new GroupeNominal();

            int reducTaillePhraseOld = 0;
            int reducTaillePhraseNew = 0;

            // Pour chaque GN trouvé, on rassemble les mots qu'il comprend
            for (int i = 0; i < tousLesMaskTrouves.Count; i++)
            {
                reducTaillePhraseNew += tousLesMaskTrouves[i].Third - 1;

                // On crée un groupe nominal qui contient les mots pourvus de leur fonction
                gn = new GroupeNominal(CreateMotFonction(phraseArg.GetRange(tousLesMaskTrouves[i].Second, tousLesMaskTrouves[i].Third), tousLesMaskTrouves[i].First.fonctionMask).ToArray());

                // On supprime ces mots de la phrase et on y insert le gn à la place
                phrase.RemoveRange(tousLesMaskTrouves[i].Second - reducTaillePhraseOld, tousLesMaskTrouves[i].Third);
                phrase.Insert(tousLesMaskTrouves[i].Second - reducTaillePhraseOld, gn);

                reducTaillePhraseOld = reducTaillePhraseNew;
            }

            return(phrase);
        }
Beispiel #2
0
        // Attribue une fonction grammaticale à chaque mot de la phrase.
        public static List <MotFonction> CreateMotFonction(List <Word> phrase, FonctionMaskNugget[] listFonction)
        {
            List <MotFonction> resFonction = new List <MotFonction>();

            for (int i = 0; i < phrase.Count(); i++)
            {
                if (phrase[i].Nature == "GN")
                {
                    GroupeNominal gn = (GroupeNominal)phrase[i];
                    gn.ModifierLienChefGN(listFonction[i].fonction, phrase[i + listFonction[i].cibleLien]);
                }

                resFonction.Add(new MotFonction(phrase[i], listFonction[i].fonction, phrase[i + listFonction[i].cibleLien]));
            }

            return(resFonction);
        }