0
0 комментариев

Задача функции — сравнить входной текст с уже имеющимся и, если он изменился, сигнализировать об этом. Такая задача возникла при написании бота, который оповещает о новости на определенной странице сайта. Дело в том, что текст на (чужом) сайте обновляется ручным способом, и поэтому часто бывает, что текст обновился, но автор решил исправить пару слов, ошибки в написании и проч. Раньше я тупо сравнивал 2 текста, одинаковы ли они или нет, но теперь хочу сделать более-менее цивилизованно, чтобы триггер не срабатывал, если в новом тексте просто добавилась какая-нибудь запятая. Пока что я делаю это таким способом:

def findMessageOverlap(new_message, old_message):
    overlap_count = 0
    for word in new_message.strip(' '):
        if word in old_message:
            overlap_count += 1
    overlap_percentage = (100 * overlap_count) / len(old_message.strip(' '))
    # if overlap percentage is less than 50%, there is new message on the site
    if overlap_percentage < 50:
        return overlap_percentage

Я обращаю разницу во встречающихся словах нового текста в проценты, и если текст отличается больше чем на 50% от старого, то сигнализирую об этом. Как вы, опытные разработчики, решили бы такую задачу? Потому что я лишь начинающий.

Изменен статус публикации
Добавить комментарий