Untitled
unknown
plain_text
3 years ago
2.3 kB
7
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...