Esempio n. 1
0
        public static NeighborhoodBuilder Init(string lexiquePath)
        {
            var nouns = LexiqueParser.ParseLexique(lexiquePath)
                        .Where(e => e.POS == "NOM")
                        .Select(e => new WordForm(e.WordForm, _realizationComputer.Compute(e)))
                        .ToArray();

            var nounsByForm = nouns.ToLookup(e => e.GraphicForm);

            return(new NeighborhoodBuilder(nouns, nounsByForm));
        }
Esempio n. 2
0
        public void TestComputeAllNounDistances()
        {
            string lexiquePath = @"C:\Users\VR1\source\repos\phonos\data\Lexique383.tsv";
            var    nouns       = LexiqueParser.ParseLexique(lexiquePath)
                                 .Where(e => e.POS == "NOM")
                                 .ToArray();

            var phoneticDistance    = new PhoneticDistance(new SyllableDistance(Distances.Distances.NeighborhoodVowelDistance, Distances.Distances.NeighborhoodConsonantDistance));
            var realizationComputer = new RealizationComputer();

            var res = new List <Tuple <double, Realization, Realization> >();

            foreach ((var n1, var n2) in nouns.UnorderedPairs())
            {
                var r1         = realizationComputer.Compute(n1).Single();
                var r2         = realizationComputer.Compute(n2).Single();
                var distance   = phoneticDistance.GetDistance(r1, r2);
                var similarity = 1 / (1 + distance);
                res.Add(Tuple.Create(similarity, r1, r2));
            }

            var sorted = res.OrderByDescending(t => t.Item1).ToArray();
        }