Ejemplo n.º 1
0
 private static Predicate <AdjectiveRaw> PrepareFilter(Comparability comp)
 {
     if (comp == Comparability.Undefined)
     {
         return((item) => true);
     }
     return((item) => item.Comparability == comp);
 }
Ejemplo n.º 2
0
        public Adverb(string parametrs)
        {
            var args = parametrs.Split(' ');

            if (args[0] != "adv")
            {
                throw new Exception("Method CreateS recieved wrong data");
            }
            var other = args.ToList();

            other.RemoveAt(0);
            foreach (string arg in other)
            {
                switch (arg)
                {
                //степень сравнения
                case "срав":
                    _comparability = Comparability.Сomparative;
                    break;

                case "прев":
                    _comparability = Comparability.Superior;
                    break;

                //смягченная сравнительная степень
                case "смяг":
                    _softened = true;
                    break;

                //нестандартное написание слова
                case "нестанд":
                    _nonStandart = true;
                    break;

                //неправильное употребление слова
                case "неправ":
                    _wrong = true;
                    break;

                //не уверенна, что у меня полная памятка, ПОПОЗЖЕ ПОИСКАТЬ НА САЙТЕ СИНТАГРУСА
                case "мета":
                    break;

                default:
                    throw new Exception("New parametr has arrived: " + arg);
                    break;
                }
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Поиск одного точного совпадения. Null - если не найдено.
        /// </summary>
        public static Adjective FindOne(string sourceForm, Comparability comparability = Comparability.Undefined)
        {
            var searchWord = PrepareWord(sourceForm);

            var res = items.FindOne(new AdjectiveRaw()
            {
                Word = searchWord
            }, new StringReverseComparer <AdjectiveRaw>(), PrepareFilter(comparability));

            if (res.Word == null)
            {
                return(null);
            }
            return(new Adjective(res, sourceForm));
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Returns the names in the same comparability set as <code>name</code>. This set includes <code>name</code>.
        /// </summary>
        /// <param name="name"></param>
        /// <returns></returns>
        public HashSet <string> ComparabilitySet(string name)
        {
            Contract.Requires(!string.IsNullOrWhiteSpace(name));
            Contract.Ensures(Contract.Result <HashSet <string> >() != null);
            Contract.Ensures(Contract.Result <HashSet <string> >().Contains(name));

            if (ids.ContainsKey(name))
            {
                var groupId = comparability.FindSet(ids[name]);
                return(new HashSet <string>(Comparability.Where(x => x.Value == groupId).Select(x => x.Key)));
            }
            else
            {
                return(new HashSet <string>(new[] { name }));
            }
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Поиск по точному или приблизительному совпадению
        /// </summary>
        public static Adjective FindSimilar(string sourceForm, Comparability comparability = Comparability.Undefined)
        {
            var searchWord = PrepareWord(sourceForm);

            var res = items.FindSimilar(new AdjectiveRaw()
            {
                Word = searchWord
            }, new StringReverseComparer <AdjectiveRaw>(), PrepareFilter(comparability));

            if (res.Word == null)
            {
                return(null);
            }
            return(new Adjective {
                Word = sourceForm, SchemaIndex = res.SchemaIndex, Inexact = res.Word != searchWord
            });
        }
Ejemplo n.º 6
0
        public Adjective(string pars)
        {
            var args = pars.Split(' ');

            if (args[0] != "a")
            {
                throw new Exception("Method CreateS recieved wrong data");
            }
            var other = args.ToList();

            other.RemoveAt(0);
            foreach (string arg in other)
            {
                switch (arg)
                {
                //число
                case "мн":
                    _plural = true;
                    break;

                case "ед":
                    _plural = false;
                    break;

                //род
                case "муж":
                    _gender = Gender.M;
                    break;

                case "жен":
                    _gender = Gender.W;
                    break;

                case "сред":
                    _gender = Gender.N;
                    break;

                //падеж
                case "им":
                    _case = Case.Nominative;
                    break;

                case "род":
                    _case = Case.Genetive;
                    break;

                case "парт":
                    _case = Case.Partitive;
                    break;

                case "дат":
                    _case = Case.Dative;
                    break;

                case "вин":
                    _case = Case.Accusative;
                    break;

                case "твор":
                    _case = Case.Instrumentalis;
                    break;

                case "пр":
                    _case = Case.Praepositionalis;
                    break;

                case "местн":
                    _case = Case.Locative;
                    break;

                //одушевленность
                case "од":
                    _animation = true;
                    break;

                case "неод":
                    _animation = false;
                    break;

                //краткость
                case "кр":
                    _shortness = true;
                    break;

                //степень сравнения
                case "срав":
                    _comparability = Comparability.Сomparative;
                    break;

                case "прев":
                    _comparability = Comparability.Superior;
                    break;

                //смягченная сравнительная степень
                case "смяг":
                    _softened = true;
                    break;

                //форма, используемая в словосложении
                case "сл":
                    _composite = true;
                    break;

                //неправильное употребление слова
                case "неправ":
                    _wrong = true;
                    break;

                //нестандартное написание слова
                case "нестанд":
                    _nonStandart = true;
                    break;

                //не уверенна, что у меня полная памятка, ПОПОЗЖЕ ПОИСКАТЬ НА САЙТЕ СИНТАГРУСА
                case "мета":
                    break;

                default:
                    throw new Exception("New parametr has arrived: " + arg);
                    break;
                }
            }
        }