|
|
|
Поскажите алгоритм сравнения строк
|
|||
|---|---|---|---|
|
#18+
Нужно сравнить два похожих текста и подсветить отличающиеся части, например как это делает Araxis Merge. Попробовал погуглить, но гуглятся лишь алгоритмы сравнения типа одинаковые/разные, меряющиеся производительностью. А мне нужно, например, на выходе получить два массива, в которых чередуются одинаковые и разные куски исходных строк. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2016, 17:08 |
|
||
|
Поскажите алгоритм сравнения строк
|
|||
|---|---|---|---|
|
#18+
diff чем не устраивает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2016, 17:18 |
|
||
|
Поскажите алгоритм сравнения строк
|
|||
|---|---|---|---|
|
#18+
Возможно, тебе подойдут алгоритмы поиска [наибольшей] общей подстроки? Нашёл (есссно, вменяемо некороткие), вырезал (есссно запомнив, откуда), нашёл, вырезал... а что останется - то и есть различия. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2016, 17:20 |
|
||
|
Поскажите алгоритм сравнения строк
|
|||
|---|---|---|---|
|
#18+
White Owldiff чем не устраивает? дифф из цигвина не сравнивает кирилицу вроде? или в ютифи8 он её сравнивает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2016, 17:35 |
|
||
|
Поскажите алгоритм сравнения строк
|
|||
|---|---|---|---|
|
#18+
White Owldiff чем не устраивает?а это что? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2016, 17:52 |
|
||
|
Поскажите алгоритм сравнения строк
|
|||
|---|---|---|---|
|
#18+
AntonariyWhite Owldiff чем не устраивает?а это что?утилита такая из стандартного набора GNU распространяющаяся в исходниках во всех дистрибутивах линуксов. Тебе ж алгоритм нужен? Ну так возьми и прочитай работающий пример. https://www.gnu.org/software/diffutils/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2016, 18:06 |
|
||
|
Поскажите алгоритм сравнения строк
|
|||
|---|---|---|---|
|
#18+
AntonariyWhite Owldiff чем не устраивает?а это что? в первую очередь алгоритм поиска совпадающей подцепочки максимальной длины или же старая добрая юниксовая утилита ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2016, 21:58 |
|
||
|
Поскажите алгоритм сравнения строк
|
|||
|---|---|---|---|
|
#18+
собственно алгоритм - http://www.angusj.com/delphi/textdiff.html но работает _построчно_ для "подсветить отличающиеся части, например как это делает Araxis Merge" придется допиливать - перед скармливанием алгоритму разбивать текст _пословно_ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2016, 06:21 |
|
||
|
Поскажите алгоритм сравнения строк
|
|||
|---|---|---|---|
|
#18+
Antonariy, ex1 abc def gkm & abc def 123 gkm Согласно вашей логике 123 будет подсвечено. ex2 abc 123 def gkm & abc def 123 gkm Будет ли что-то подсвечено в данном примере, и что именно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2016, 08:56 |
|
||
|
Поскажите алгоритм сравнения строк
|
|||
|---|---|---|---|
|
#18+
SashaMercuryex2 abc 123 def gkm & abc def 123 gkm Будет ли что-то подсвечено в данном примере, и что именно?будет подсвечено 123 в обеих строках. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2016, 11:10 |
|
||
|
Поскажите алгоритм сравнения строк
|
|||
|---|---|---|---|
|
#18+
command.comсобственно алгоритм - http://www.angusj.com/delphi/textdiff.html но работает _построчно_ для "подсветить отличающиеся части, например как это делает Araxis Merge" придется допиливать - перед скармливанием алгоритму разбивать текст _пословно_не подходит, нужно подсвечивать и куски слов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2016, 11:23 |
|
||
|
Поскажите алгоритм сравнения строк
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2016, 11:31 |
|
||
|
Поскажите алгоритм сравнения строк
|
|||
|---|---|---|---|
|
#18+
ага, только мне самому нужно такое в html забацать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2016, 12:57 |
|
||
|
Поскажите алгоритм сравнения строк
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2016, 14:21 |
|
||
|
Поскажите алгоритм сравнения строк
|
|||
|---|---|---|---|
|
#18+
На гитхабе что-то было ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2016, 14:42 |
|
||
|
Поскажите алгоритм сравнения строк
|
|||
|---|---|---|---|
|
#18+
Antonariyне подходит, нужно подсвечивать и куски слов.ты бы разобрался получше сначала алгоритм работает с двумя списками (последовательностями) неких сущностей (например, строк или символов или каких-то кусков текста), сравнивая их посущностно (покусочно) разбивка на эти куски - вне ответственности алгоритма, ему на вход подаются предварительно подготовленные последовательности. если сразу скормить ему отдельные символы - на выходе будет полная каша. имеет смысл сначала дать ему пару текстов, разбитых на строки, затем - пары _несовпадающих_ групп строк, разбитых на слова, а уже затем, если нужно - пары _несовпадающих_ слов посимвольно, чтобы получить подсветку отдельных символов, а не слов целиком ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2016, 14:52 |
|
||
|
Поскажите алгоритм сравнения строк
|
|||
|---|---|---|---|
|
#18+
AntonariySashaMercuryex2 abc 123 def gkm & abc def 123 gkm Будет ли что-то подсвечено в данном примере, и что именно?будет подсвечено 123 в обеих строках. А почему не def? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2016, 14:55 |
|
||
|
Поскажите алгоритм сравнения строк
|
|||
|---|---|---|---|
|
#18+
SashaMercuryAntonariyпропущено... будет подсвечено 123 в обеих строках. А почему не def?потому что abc 123 def и abc def отличаются лишь отсутствием 123. в общем, сделал на алгоритме наибольшей общей подстроки по совету Akina, всем спасибо. работает не идеально, но ко всему, чему нужно, внимание привлекает: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2016, 15:49 |
|
||
|
Поскажите алгоритм сравнения строк
|
|||
|---|---|---|---|
|
#18+
Да, делал сам похожую штуку. Есть разные алгоритмы создания диффов - они отличаются используемой эвристикой, т.к. "честный" дифф достаточно тяжел вычислительно. На что следует обратить внимание: - https://ru.wikipedia.org/wiki/Наибольшая_общая_подстрока - https://ru.wikipedia.org/wiki/Расстояние_Левенштейна - обобщить для удаления и вставки подстрок вместо отдельных символов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2016, 18:47 |
|
||
|
Поскажите алгоритм сравнения строк
|
|||
|---|---|---|---|
|
#18+
AntonariySashaMercuryпропущено... А почему не def?потому что abc 123 def и abc def отличаются лишь отсутствием 123. в общем, сделал на алгоритме наибольшей общей подстроки по совету Akina, всем спасибо. работает не идеально, но ко всему, чему нужно, внимание привлекает: строки не такие. А такие: abc 123 def и abc def 123 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2016, 02:41 |
|
||
|
Поскажите алгоритм сравнения строк
|
|||
|---|---|---|---|
|
#18+
SashaMercuryAntonariyпропущено... потому что abc 123 def и abc def отличаются лишь отсутствием 123. в общем, сделал на алгоритме наибольшей общей подстроки по совету Akina, всем спасибо. работает не идеально, но ко всему, чему нужно, внимание привлекает: строки не такие. А такие: abc 123 def и abc def 123а если бы были abc def 123 и abc 123 def, то подсветилось бы def. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2016, 10:09 |
|
||
|
Поскажите алгоритм сравнения строк
|
|||
|---|---|---|---|
|
#18+
Antonariyесли бы были abc def 123 и abc 123 def, то подсветилось бы def.В рамках задачи на поиск отличающихся вставок это имхо некорректно. SashaMercuryex2 abc 123 def gkm & abc def 123 gkm Будет ли что-то подсвечено в данном примере, и что именно? Мне кажется, что корректная подсветка должна быть такой: abc 123 def gkm | abc def 123 gkm ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2016, 10:45 |
|
||
|
Поскажите алгоритм сравнения строк
|
|||
|---|---|---|---|
|
#18+
AkinaМне кажется, что корректная подсветка должна быть такой: abc 123 def gkm | abc def 123 gkm ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2016, 11:31 |
|
||
|
Поскажите алгоритм сравнения строк
|
|||
|---|---|---|---|
|
#18+
AkinaМне кажется, что корректная подсветка должна быть такой: abc 123 def gkm | abc def 123 gkm а почему не такой вариант? abc 123 def gkm | abc def 123 gkm ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2016, 11:33 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=39312741&tid=1340598]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
55ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
63ms |
get tp. blocked users: |
1ms |
| others: | 233ms |
| total: | 390ms |

| 0 / 0 |
