예제 #1
0
        public static SpellResult CheckSpelling(string text, Language language, Options options = Options.Default, TextFormat textFormat = TextFormat.Plain)
        {
            Lang lang;

            switch (language)
            {
            case Language.rus: lang = Lang.Ru; break;

            case Language.eng: lang = Lang.En; break;

            default: throw new ArgumentException("Язык только русский или английский", "language");
            }

            IYandexSpeller speller = new YandexSpeller();
            SpellResult    res     = speller.CheckText(text, lang, options, textFormat);

            return(res);
        }
예제 #2
0
        private string CorrectInputMessage(string inputText)
        {
            var correctedmessage = inputText;
            var speller          = new YandexSpeller();
            var result           = speller.CheckText(correctedmessage, Lang.Ru | Lang.En, Options.Default, TextFormat.Plain);
            int countErrs        = result.Errors.Count;

            if (countErrs > 0)
            {
                for (int i = countErrs; i > 0; i--)
                {
                    var err = result.Errors[i - 1];

                    if (err.Steer.Count > 0)
                    {
                        correctedmessage = correctedmessage.Remove(err.Pos, err.Len);
                        correctedmessage = correctedmessage.Insert(err.Pos, err.Steer[0]);
                    }
                }
            }
            return(correctedmessage);
        }
예제 #3
0
        public void Run()
        {
            var yandexSpellCheck = new YandexSpeller();

            using (var hunSpellEng = new Hunspell(@"Dictionaries\English (American).aff", @"Dictionaries\English (American).dic"))
                using (var hunSpell = new Hunspell(@"Dictionaries\Russian.aff", @"Dictionaries\Russian.dic"))
                {
                    InitCustomDictionary(hunSpell);

                    //Skip test pack with id 20
                    foreach (var pack in _packs.Where(p => p.Id != 20))
                    {
                        Console.WriteLine($"Смотрю пак {pack.Name}");
                        foreach (var phrase in pack.Phrases)
                        {
                            SpellPhrase(pack, phrase.Phrase, hunSpell, hunSpellEng, yandexSpellCheck);
                            SpellPhrase(pack, phrase.Description, hunSpell, hunSpellEng, yandexSpellCheck);
                        }
                    }
                }
            Console.WriteLine("Spell check is finished");
        }
예제 #4
0
 public SpellCheckerBot(string nick, string channel)
 {
     _nick    = nick;
     _channel = channel;
     _speller = new YandexSpeller();
 }