задается вопросом о наилучшем способе решения этой конкретной проблемы и о том, есть ли какие-либо библиотеки (желательно на python, но я могу быть гибким в случае необходимости).
У меня есть файл со строкой в каждой строке. Я хотел бы найти самые длинные общие образцы и их местоположения в каждой строке. Я знаю, что могу использовать SequenceMatcher для сравнения строки 1 и 2, 1 и 3 и т. Д., А затем сопоставить результаты, но есть ли что-то, что уже делает это?
В идеале эти совпадения должны появляться в любом месте на каждой строке, но для начала я могу согласиться с тем, что они существуют с одинаковым смещением в каждой строке и идут оттуда. Что-то вроде библиотеки сжатия, имеющей хороший API для доступа к своей таблице строк, может быть идеальным, но я пока не нашел ничего подходящего этому описанию.
Например, с такими строками:
\x00\x00\x8c\x9e\x28\x28\x62\xf2\x97\x47\x81\x40\x3e\x4b\xa6\x0e\xfe\x8b
\x00\x00\xa8\x23\x2d\x28\x28\x0e\xb3\x47\x81\x40\x3e\x9c\xfa\x0b\x78\xed
\x00\x00\xb5\x30\xed\xe9\xac\x28\x28\x4b\x81\x40\x3e\xe7\xb2\x78\x7d\x3e
Я хотел бы видеть, что 0-1 и 10-12 совпадают во всех строках в одной и той же позиции, а line1 [4,5] соответствует line2 [5,6] соответствует line3 [7,8].
Спасибо