Библиотека сравнения текста PHP, которая возвращает JSON с исходными и отредактированными текстовыми фрагментами [закрытPhp

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Библиотека сравнения текста PHP, которая возвращает JSON с исходными и отредактированными текстовыми фрагментами [закрыт

Сообщение Anonymous »

Мне нужно сравнить два текста и вернуть различия в формате JSON. JSON должен содержать фрагменты неизмененного текста, а также фрагменты исходного и отредактированного текста. Вот пример входных данных и желаемого результата:
Пример желаемого результата:

Код: Выделить всё

{
"chunks": [
{"text": "Known as the “King of Pop,” Michael Jackson was a "},
{"text": "bet-selling", "edit": "best-selling"},
{"text": " American singer, songwriter, and dancer. As a child, Jackson "},
{"text": "becamv", "edit": "became"},
{"text": " the lead singer of his family’s popular Motown group, the Jackson 5. H..."}
]
}
Два текста:

Код: Выделить всё

$text1 = "Known as the “King of Pop,” Michael Jackson was a bet-selling American singer, songwriter, and dancer. As a child, Jackson becamv the lead singer of his family’s popular Motown group, the Jackson 5. H...";

$text2 = "Known as the “King of Pop,” Michael Jackson was a best-selling American singer, songwriter, and dancer. As a child, Jackson became the lead singer of his family’s popular Motown group, the Jackson 5. H...";
Что я пробовал
  • Библиотека Jfcherng\Diff (https: //github.com/jfcherng/php-diff):
    Я попробовал использовать библиотеку Jfcherng\Diff с пользовательским рендерингом для достижения желаемого результата. Однако он не обрабатывал неизмененные фрагменты текста должным образом и не разделял изменения на уровне слов должным образом.
  • Unix diff через Shell_exec:
    Попытка использовать Unix diff через Shell_exec, чтобы сгенерировать различия и проанализировать выходные данные. Результаты были не в ожидаемом формате и включали дополнительные метаданные, не относящиеся к нашему варианту использования.
  • Разделение текста вручную:
    Проверено вручную разбивать тексты на слова и сравнивать их, но такому подходу не хватало эффективности и точности.
Текущая реализация кода
Вот текущая реализация с использованием библиотеки Jfcherng\Diff:

Код: Выделить всё


Подробнее здесь: [url]https://stackoverflow.com/questions/78478737/php-text-comparison-library-that-returns-json-with-original-and-edited-text-chun[/url]
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»