Задать вопрос
@MrCute
Студент

Как сравнить два текста и вывести разницу?

Приветствую.
Задача заключается в реализации алгоритма для сравнения 2 текстов.
Есть два текста, один правильный(эталонный), а другой ввёден пользователем(который нам нужно проверить). Нужно сравнить их, и во втором тексте найти и подсветить ошибки - неправильно написаное слово, пропущеный знак и т.д.
Писать это всё планируется в Qt на C++.
Нашёл алгоритмы на LCS (longest common subsequence), но там идёт проверка и выделение по строкам, а мне нужно выделять не всю строку а именно неправильное слово или знак.

Буду рад любым подсказкам и советам по решению этой задачи.

UPD: пишу проект
  • Вопрос задан
  • 10148 просмотров
Подписаться 4 Оценить 1 комментарий
Решения вопроса 1
@stepagrus
Сравнить два текста text.num2word.ru
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 8
petermzg
@petermzg
Самый лучший программист
Так преобразуйте тексты в наборы строк, где каждая строка это отдельное слово или знак.
Находите различия и собираете обратно в текст, подсвечивая различия.
Ответ написан
Комментировать
abyrkov
@abyrkov
JavaScripter
На мой взгляд, главная сложность, что требуются 3 разные вещи при 3х типах ошибок:
При пропуске нужно идти дальше по оригиналу до совпадения
При добавке нужно идти по пользовательскому тексту до совпадения
При опечатке нужно идти "в чем не бывало".
Поэтому, алгоритм таков:
Идти по текстам (по буквам) до ошибки.
Пробуем "пропуск" идем по оригиналу дальше 10 символов с проверкой
- Если нашли совпадение 3х-4х символов - отмечаем ошибку и едем дальше
- Если не нашли совпадение - пробуем вариант "добавка" идем с проверкой по пользовательскому тексту 10 символов
- Если нашли совпадение - отмечаем ошибку и идем дальше
- Иначе считаем опечаткой
Ответ написан
Комментировать
tsklab
@tsklab
Здесь отвечаю на вопросы.
Писать это всё планируется
Зачем? Есть.
Ответ написан
Комментировать
@afydoz
Вчерашний школьник.
Зачем изобретать велосипед ? Воспользуйтесь этим.
Ответ написан
Комментировать
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Делается проход с вычислением бинарной разницы одного слова относительно другого.
После обнаружения ошибки - фиксируете и затем двигаетесь дальше по эталонному тексту и ищите это "похожее" слово в набранном тексте.
Главное - грамотно определять "слова": отделять и не путать цифры и другие знаки со словами.
Ответ написан
Комментировать
@RuWeb
Попробуй это https://texttools.ru/difference-checker
Ответ написан
Комментировать
@EkaterinaSklyarova
В таких случаях, я обычно использую code compare
Ответ написан
Комментировать
@MODX314
Вот здесь сравнение текстов сделано на JQUERY
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы