88005555555

88005555555


import pymorphy2
import telebot

bot = telebot.TeleBot('761209182:AAGDUOrDKPqfI2y0kgT9o74ZfXKtovMyLuI')
morph = pymorphy2.MorphAnalyzer()


class WordParsing():
    def __init__(self, smt, word, x):
        self.word = word
        self.mrp = smt[x]
        self.temp = ''
        self.s_parsing()

    def gender(self):
        if 'masc' in self.mrp.tag:
            return 'мужской род,'
        elif 'femn' in self.mrp.tag:
            return 'женский род,'
        elif 'neut' in self.mrp.tag:
            return 'средний род,'
        else:
            return ''

    def declination(self):
        if (self.gender() == 'мужской' or self.gender() == 'женский') and (
                self.normalform()[-1] == 'а' or self.normalform()[-1] == 'я'):
            return '1 склонение,'
        elif (self.gender() == 'мужской') or (
                self.gender() == 'средний' and self.normalform()[
            -1] == 'о') or (
                self.gender() == 'средний' and self.normalform()[-1] == 'е'):
            return '2 склонение,'
        else:
            return '3 склонение,'

    def s_parsing(self):
        self.temp += (f'I.{self.word} - сущ\n')
        self.temp += (f'II.Начальная форма - {self.normalform()}\n')
        self.temp += (
            f'Постоянные признаки: {self.proper_or_common()} {self.anim()} {self.gender()}'
            f' {self.declination()}\n')
        self.temp += (f'Непостоянные признаки: {self.case()} {self.num()}\n')
        self.temp += (
            f'III.Может быть различным членом предложения, смотрите по контексту.')

    def anim(self):
        if 'anim' in self.mrp.tag:
            return 'одушевлённое,'
        else:
            return 'неодушевлённое,'

    def case(self):
        if 'nomn' in self.mrp.tag:
            return 'Именительный падеж,'
        elif 'gent' in self.mrp.tag:
            return 'Родительный падеж,'
        elif 'datv' in self.mrp.tag:
            return 'Дательный падеж,'
        elif 'accs' in self.mrp.tag:
            return 'Винительный падеж,'
        elif 'ablt' in self.mrp.tag:
            return 'Творительный падеж,'
        elif 'loct' in self.mrp.tag:
            return 'Предложный падеж,'
        else:
            return ''

    def num(self):
        if 'sing' in self.mrp.tag:
            return 'единственное число,'
        else:
            return 'множественное число,'

    def normalform(self):
        return self.mrp.normal_form

    def proper_or_common(self):
        if 'Name' in self.mrp.tag:
            return 'имя собственное,'
        elif 'Surn' in self.mrp.tag:
            return 'имя собственное,'
        elif 'Patr' in self.mrp.tag:
            return 'имя собственное,'
        elif 'Geox' in self.mrp.tag:
            return 'имя собственное,'
        elif 'Orgn' in self.mrp.tag:
            return 'имя собственное,'
        elif 'Trad' in self.mrp.tag:
            return 'имя собственное,'
        else:
            return 'имя нарицательное,'


@bot.message_handler(commands=['help'])
def send_welcome(message):
    msg = bot.send_message(message.chat.id, 'Заработало')


@bot.message_handler(commands=['start'])
def send_welcome(message):
    msg = bot.send_message(message.chat.id, 'Напишите слово')


@bot.message_handler(content_types=["text"])
def start(message):
    word = message.text
    word = word.lower()
    bot.send_message(message.chat.id, word)
    ans = ''
    if len(morph.parse(word)) > 1:
        ans += (
            f'Слово {word} может быть разобрано {len(morph.parse(word))} способами. Вариант разбора зависит от того, в составе какого'f' словосочетания или предложения слово находится. Выберите подходящий вариант для вашего случая.')
        bot.send_message(message.chat.id, ans)
        ans = ''
    for i in range(len(morph.parse(word))):
        ans = ''
        ans += (i + 1, "разбор: \n")
        ans += WordParsing(morph.parse(word), word, i)
        bot.send_message(message.chat.id, ans)


bot.polling(none_stop=True)


Report Page