private static PosTaggerOutputType ToPosTaggerOutputType(PartOfSpeechEnum singlePartOfSpeech)
        {
            switch (singlePartOfSpeech)
            {
            case PartOfSpeechEnum.Adjective: return(PosTaggerOutputType.Adjective);

            case PartOfSpeechEnum.Adverb: return(PosTaggerOutputType.Adverb);

            case PartOfSpeechEnum.Article: return(PosTaggerOutputType.Article);

            case PartOfSpeechEnum.Conjunction: return(PosTaggerOutputType.Conjunction);

            case PartOfSpeechEnum.Interjection: return(PosTaggerOutputType.Interjection);

            case PartOfSpeechEnum.Noun: return(PosTaggerOutputType.Noun);

            case PartOfSpeechEnum.Numeral: return(PosTaggerOutputType.Numeral);

            case PartOfSpeechEnum.Other: return(PosTaggerOutputType.Other);

            case PartOfSpeechEnum.Particle: return(PosTaggerOutputType.Particle);

            case PartOfSpeechEnum.Predicate: return(PosTaggerOutputType.Predicate);

            case PartOfSpeechEnum.Preposition: return(PosTaggerOutputType.Preposition);

            case PartOfSpeechEnum.Pronoun: return(PosTaggerOutputType.Pronoun);

            case PartOfSpeechEnum.Verb: return(PosTaggerOutputType.Verb);

            default:
                throw new ArgumentException(singlePartOfSpeech.ToString());
            }
        }
        /*
         * морфоанализатор::{PartOfSpeechEnum}  PoS-tagger::{PosTaggerOutputType}
         * PartOfSpeechEnum.Adjective	    PosTaggerOutputType.Adjective
         *                              PosTaggerOutputType.AdjectivePronoun
         * PartOfSpeechEnum.Adverb	        PosTaggerOutputType.Adverb
         *                              PosTaggerOutputType.AdverbialPronoun
         * PartOfSpeechEnum.Article	    PosTaggerOutputType.Article
         * PartOfSpeechEnum.Conjunction	PosTaggerOutputType.Conjunction
         * PartOfSpeechEnum.Interjection	PosTaggerOutputType.Interjection
         * PartOfSpeechEnum.Noun	        PosTaggerOutputType.Noun
         * PartOfSpeechEnum.Numeral	    PosTaggerOutputType.Numeral
         * PartOfSpeechEnum.Other	        PosTaggerOutputType.Other
         * PartOfSpeechEnum.Particle	    PosTaggerOutputType.Particle
         * PartOfSpeechEnum.Predicate	    PosTaggerOutputType.Predicate
         * PartOfSpeechEnum.Preposition	PosTaggerOutputType.Preposition
         * PartOfSpeechEnum.Pronoun	    PosTaggerOutputType.Pronoun 
         *                                  PosTaggerOutputType.PossessivePronoun
         *                                  PosTaggerOutputType.AdjectivePronoun  
         *                                  PosTaggerOutputType.AdverbialPronoun
         * PartOfSpeechEnum.Verb	        PosTaggerOutputType.Verb
         *                                  PosTaggerOutputType.Infinitive
         *                                  PosTaggerOutputType.AdverbialParticiple
         *                                  PosTaggerOutputType.AuxiliaryVerb
         *                                  PosTaggerOutputType.Participle
         * -	                            PosTaggerOutputType.Punctuation
         */
        #endregion

        private static void CorrectPosTaggerOutputType(Word word, PartOfSpeechEnum singlePartOfSpeech)
        {
            switch (singlePartOfSpeech)
            {
            case PartOfSpeechEnum.Adjective:
                switch (word.posTaggerOutputType)
                {
                case PosTaggerOutputType.Adjective:
                case PosTaggerOutputType.AdjectivePronoun:
                    break;

                default:
                    word.posTaggerOutputType = PosTaggerOutputType.Adjective;
                    break;
                }
                break;

            case PartOfSpeechEnum.Adverb:
                switch (word.posTaggerOutputType)
                {
                case PosTaggerOutputType.Adverb:
                case PosTaggerOutputType.AdverbialPronoun:
                    break;

                default:
                    word.posTaggerOutputType = PosTaggerOutputType.Adverb;
                    break;
                }
                break;

            case PartOfSpeechEnum.Article: word.posTaggerOutputType = PosTaggerOutputType.Article; break;

            case PartOfSpeechEnum.Conjunction: word.posTaggerOutputType = PosTaggerOutputType.Conjunction; break;

            case PartOfSpeechEnum.Interjection: word.posTaggerOutputType = PosTaggerOutputType.Interjection; break;

            case PartOfSpeechEnum.Noun: word.posTaggerOutputType = PosTaggerOutputType.Noun; break;

            case PartOfSpeechEnum.Numeral: word.posTaggerOutputType = PosTaggerOutputType.Numeral; break;

            case PartOfSpeechEnum.Other: word.posTaggerOutputType = PosTaggerOutputType.Other; break;

            case PartOfSpeechEnum.Particle: word.posTaggerOutputType = PosTaggerOutputType.Particle; break;

            case PartOfSpeechEnum.Predicate: word.posTaggerOutputType = PosTaggerOutputType.Predicate; break;

            case PartOfSpeechEnum.Preposition: word.posTaggerOutputType = PosTaggerOutputType.Preposition; break;

            case PartOfSpeechEnum.Pronoun:
                switch (word.posTaggerOutputType)
                {
                case PosTaggerOutputType.Pronoun:
                case PosTaggerOutputType.PossessivePronoun:
                case PosTaggerOutputType.AdjectivePronoun:
                case PosTaggerOutputType.AdverbialPronoun:
                    break;

                default:
                    word.posTaggerOutputType = PosTaggerOutputType.Pronoun;
                    break;
                }
                break;

            case PartOfSpeechEnum.Verb:
                switch (word.posTaggerOutputType)
                {
                case PosTaggerOutputType.Verb:
                case PosTaggerOutputType.Infinitive:
                case PosTaggerOutputType.AdverbialParticiple:
                case PosTaggerOutputType.AuxiliaryVerb:
                case PosTaggerOutputType.Participle:
                    break;

                default:
                    word.posTaggerOutputType = PosTaggerOutputType.Verb;
                    break;
                }
                break;

            default:
                throw new ArgumentException(singlePartOfSpeech.ToString());
            }
        }