Untitled
unknown
plain_text
2 years ago
2.3 kB
6
Indexable
import logging from telegram import Update from telegram.ext import Updater, CommandHandler, MessageHandler, filters, CallbackContext import queue import nltk from nltk.corpus import wordnet logging.basicConfig(level=logging.INFO) API_TOKEN = '6292387381:AAEV1AKe4qaYo199MXQPg1dsX3X_X3LEUqk' def start(update: Update, context: CallbackContext): update.message.reply_text('Привет! Отправь мне английское слово, и я сделаю его морфологический разбор.') def process_word(update: Update, context: CallbackContext): input_word = update.message.text.lower() synsets = wordnet.synsets(input_word) if not synsets: update.message.reply_text('К сожалению, я не смог найти это слово в базе данных WordNet. Пожалуйста, проверьте правильность написания.') return base = synsets[0].lemmas()[0].name() pos = synsets[0].pos() if pos == 'n': pos_rus = 'существительное' elif pos == 'v': pos_rus = 'глагол' elif pos == 'a': pos_rus = 'прилагательное' elif pos == 's': pos_rus = 'сателлитное прилагательное' elif pos == 'r': pos_rus = 'наречие' else: pos_rus = 'неизвестная часть речи' response = f"{base} ({pos_rus})\n\n" inflections = [lemma.name() for lemma in synsets[0].lemmas()] response += "Формы слова:\n" for inflection in inflections: response += f"- {inflection}\n" # Здесь вы можете добавить свою логику для анализа морфологии слова # и предоставления подробного описания на русском языке. update.message.reply_text(response) def main(): updater = Updater(API_TOKEN, use_context=True) dp = updater.dispatcher dp.add_handler(CommandHandler("start", start)) dp.add_handler(MessageHandler(filters.text, process_word)) updater.start_polling() updater.idle() if __name__ == '__main__': main()
Editor is loading...