Практическая задачка.
Было в тексте 1000 символов.
(условимся, что все символы в тексте разные).
Удалили 300 символов.
Затем написали 100 новых символов (не встречающихся в изначальном тексте).
На сколько процентов изменился текст?
Было в тексте 1000 символов.
(условимся, что все символы в тексте разные).
Удалили 300 символов.
Затем написали 100 новых символов (не встречающихся в изначальном тексте).
На сколько процентов изменился текст?
1) сравниваем два одинаковых текста. Текст изменился на 0 процентов.
2) сравниваем текст 1000 символов с другим текстом (любой длины и с другими символами) - текст, очевидно, поменялся на 100 % процентов. Это абсолютно два разных текста.
А дальше начинаются непонятки:
- добавили 1000 новых символов к исходному тексту. На сколько изменился текст? на 50?
- удалили 500 символов из 1000. Текст изменился на сколько? На 50 процентов?
- удалили 500 символов и добавили других 500 символов, длина текста не поменялась. Это на сколько? тоже на 50? Нелогично вроде. Цифра, наверное, должна как-то отличаться от предыдущего случая в бОльшую сторону.
У меня есть примерный подход и вид оценочной функции, но хочется услышать и другие мнения.
Дык, все празднуют...
На сколько процентов изменился текст?
А дальше начинаются непонятки:
Требуется определение понятия "доля изменения текста"... мне кажется это особенно актуально при текстах разной длины...
удалили 500 символов и добавили других 500 символов, длина текста не поменялась. Это на сколько? тоже на 50?
тут 50 % выглядят естественным образом...
А в остальных случаях непонятно...
Если считать долю прежнего текста в новом, то:
- удалили 500 символов из 1000. - тут получится 100%
- добавили 1000 новых символов к исходному тексту. На сколько изменился текст? на 50? - тут 50...
Было в тексте 1000 символов. Удалили 300 символов. Затем написали 100 новых символов (не встречающихся в изначальном тексте). - а здесь `700/8 = 87.5%`...
не. 100% процентов только тогда, когда текст абсолютно другой. А если часть старого текста осталось, значит это не на 100% новый текст.
Этот новый текст на сколько-то процентов не совпадает со старым. Но не на 100.
надо самим придумать.
я считал про сохранения текста...
Можно считать, что вторую половину текста заменили на пустые символы. Процент изменения тот же, как если бы заменили на другие символы.
имеется метрика: три величины
L1 = размер первого текста (количество операций редактирования, чтобы его набрать),
L2 = размер второго текста (количество операций редактирования) и
D12 = расстояние между текстами (количество операций редактирования)
связаны неравенством треугольника,
на этой метрике можно определить коэффициент схожести текстов как величину от 0 до 1 по формуле (1 - D12/(L1+L2))
1 = одинаковы, 0 = вообще ничего общего
Удаление текста отождествляем с заменой его на невидимый символ.
(при этом невидимому символу я приписал меньший вес, чтобы удаление символа была менее значимой операцией, чем замена символа на другой)
Удаление текста отождествляем с заменой его на невидимый символ.
(при этом невидимому символу я приписал меньший вес, чтобы удаление символа была менее значимой операцией, чем замена символа на другой)
Удаление текста отождествляем с заменой его на невидимый символ.
(при этом невидимому символу я приписал меньший вес, чтобы удаление символа была менее значимой операцией, чем замена символа на другой)
т.е., схожесть_текстов(текст1, текст2) != схожесть_текстов(текст2, текст1)