Я пишу бота Telegram, который отвечает на вопросы людей о конкретном городе. Я хотел написать фрагмент кода, который сравнивает сообщение с вопросами, которые у меня есть в моей таблице базы данных sqlite.
Самая большая проблема в том, что я не могу использовать difflib.get_close_matches
, потому что вопросы не на английском , и на данный момент я работаю только с точно совпадающими строками, например:
if msg.lower() == "what can you do?":
send_message("I can answer to any question you have about...", chat_id)
И это определенно НЕ моя цель
Итак, давайте перейдем к коду: я использую эту функцию, чтобы получить последнее сообщение
URL = "https://api.telegram.org/bot{}/".format(TOKEN)
def get_updates(offset=None):
url = URL + "getUpdates"
if offset:
url += "?offset={}".format(offset)
js = get_json_from_url(url)
return js
и присвоить возвращаемое значение переменной updates
, в результате у меня будет текст сообщения в update["message"]["text"]
Теперь сложная часть, мне нужно будет сравнить строку с записями в БД, затем, если нет совпадений, мне нужно будет найти синонимы слов в сообщении и повторно сравнить их с записями. ,
НО это сделало бы работу программы очень медленной, и у меня нет ни времени, ни желания составлять список синонимов для каждого возможного слова
Может кто-нибудь помочь мне найти способ сделать сравнение и найти похожую строку в БД, чтобы программа работала как можно быстрее?