Пример #1
0
        public static void AddIfNotExists(this List <MorphoAmbiguityTuple_t> mats, MorphoAmbiguityTuple_t mat)
        {
            for (int i = 0, len = mats.Count; i < len; i++)
            {
                if (Equals(mats[i], mat))
                {
                    return;
                }
            }

            mats.Add(mat);
        }
Пример #2
0
        private static bool Equals(MorphoAmbiguityTuple_t x, MorphoAmbiguityTuple_t y)
        {
            if (!WordFormMorphology_t.Equals(ref x.WordFormMorphology, ref y.WordFormMorphology))
            {
                return(false);
            }

            if (string.CompareOrdinal(x.Word.valueUpper, y.Word.valueUpper) != 0)
            {
                return(false);
            }

            return(x.PunctuationType == y.PunctuationType);
        }
        unsafe public WordMorphoAmbiguity_t Create(word_t word, int wordIdex)
        {
            while (_MorphoAmbiguityTuples_Buffer.Count <= wordIdex)
            {
                _MorphoAmbiguityTuples_Buffer.Add(new List <MorphoAmbiguityTuple_t>(DEFAULT_WORDFORMMORPHOLOGY_COUNT));
            }

            var punctuationType = MorphoAmbiguityTuple_t.GetPunctuationType(word);
            var buffer          = _MorphoAmbiguityTuples_Buffer[wordIdex];

            buffer.Clear();
            buffer.Add(new MorphoAmbiguityTuple_t(word, new WordFormMorphology_t(), punctuationType));

            return(new WordMorphoAmbiguity_t(word, punctuationType, buffer));
        }
        unsafe public WordMorphoAmbiguity_t Create(word_t word, int wordIdex, WordFormMorphology_t[] wordFormMorphologies)
        {
            while (_MorphoAmbiguityTuples_Buffer.Count <= wordIdex)
            {
                _MorphoAmbiguityTuples_Buffer.Add(new List <MorphoAmbiguityTuple_t>(DEFAULT_WORDFORMMORPHOLOGY_COUNT));
            }

            var punctuationType = MorphoAmbiguityTuple_t.GetPunctuationType(word);
            var buffer          = _MorphoAmbiguityTuples_Buffer[wordIdex];

            buffer.Clear();
            for (int i = 0, len = wordFormMorphologies.Length; i < len; i++)
            {
                buffer.Add(new MorphoAmbiguityTuple_t(word, wordFormMorphologies[i], punctuationType));
            }
            return(new WordMorphoAmbiguity_t(word, punctuationType, buffer));
        }