За последние 24 часа нас посетил 21941 программист и 1002 робота. Сейчас ищут 697 программистов ...

Подскажите как сравнить два текста?

Тема в разделе "PHP для новичков", создана пользователем AnteFil, 29 ноя 2022.

  1. AnteFil

    AnteFil Активный пользователь

    С нами с:
    14 янв 2014
    Сообщения:
    531
    Симпатии:
    4
    Может какой то хитрый алгоритм есть или сервис с бесплатным API для сравнения.
     
  2. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.553
    Симпатии:
    1.754
    Критерии сравнения?
     
  3. AnteFil

    AnteFil Активный пользователь

    С нами с:
    14 янв 2014
    Сообщения:
    531
    Симпатии:
    4
    Я даже не знаю какие критерии могут быть. Сейчас я сравниваю по ключевым словам мол если есть совпадения двух ключей то я говорю что текст схож. В таком подходе просто гиганское количество ошибочных результатов
    --- Добавлено ---
    Тестил и similar_text и левенштейна не то
     
  4. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.822
    Симпатии:
    736
    Адрес:
    Татарстан
    Так вы сами для себя тот определили критерии сравнения. Если нет - то кто ж вам поможет?
     
    don.bidon нравится это.
  5. AnteFil

    AnteFil Активный пользователь

    С нами с:
    14 янв 2014
    Сообщения:
    531
    Симпатии:
    4
    Есть два текста text_1 = "В Москве началась настоящая зима, идёт снег и на улице мороз", text_2 = "В Россию пришла зима с настоящими морозами, в Москве идёт снег". Вот это два одинаковых текста по смыслу но только слова переставлены.
    --- Добавлено ---
    При анализе по ключевым словам я определю но если добавить например третий текст. text_3 = "Этой зимой в из-за обилия снега в Москве не смотря на мороз будут строить различные горки".. Ключи использованы теже самые но текст совершенно другой.

    Москва, снег, мороз, зима
     
  6. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.822
    Симпатии:
    736
    Адрес:
    Татарстан
    ну ты загнул....
    подключай какой-нибудь AI
     
  7. AnteFil

    AnteFil Активный пользователь

    С нами с:
    14 янв 2014
    Сообщения:
    531
    Симпатии:
    4
    Проблема что я в этом ни чего не понимаю. Пытался когда то прикрутить PHP ML но так и не понял что к чему. Такой вариант самый логичный был бы для меня. Я в базе ищу совпадения по ключам, если нахожу совпадение отправляю например по API эти два текста что бы проверить совпадают они или нет. Но не могу найти ни чего подходящего
     
  8. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.822
    Симпатии:
    736
    Адрес:
    Татарстан
    а кому сейчас легко?
     
  9. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.553
    Симпатии:
    1.754
    А FullText-индексы не получится использовать?
     
  10. don.bidon

    don.bidon Активный пользователь

    С нами с:
    28 мар 2021
    Сообщения:
    858
    Симпатии:
    132
    для сравнения не подскажу, на морфологический разбор (если то поможет) поищи на пхпклабе, там чел что-то могучее выкладывал и поддерживал долгое время когда-то.
     
  11. AnteFil

    AnteFil Активный пользователь

    С нами с:
    14 янв 2014
    Сообщения:
    531
    Симпатии:
    4
    Целый день гуглил по машинному обучению. Чуток подразобрался в итоге родилась такая идея.
    Есть вот такая мысль сравнивать сначала первый текст со вторым по словам если есть вхождение слова то присваивать +1 если нету то -1 потом местами поменять и проделать тоже самое, после чего тупо всё сложить. Если в итоге сумма больше 0 это похожий текст если сумма меньше 0 то это новый текст. Есть у кого нить мысли по этому поводу.
     
  12. AnteFil

    AnteFil Активный пользователь

    С нами с:
    14 янв 2014
    Сообщения:
    531
    Симпатии:
    4
    На примере опять же 2 теста.
    1. Я иду домой = - 8
    2. Я иду в магазин - 9
    Итоговая сумма минус 17 что меньше 0 следовательно текст разный
    --- Добавлено ---
    или вычитать из большего текста меньший и смотреть ни тяговую разность