Я нашел множество ссылок о нечетком сопоставлении, о сравнении одной строки с другой и выяснении, какая из них имеет наивысший балл схожести.
У меня есть одна очень длинная строка, которая представляет собой документ и подстроку. Подстрока взята из исходного документа, но была преобразована несколько раз, поэтому могли появиться странные артефакты, такие как пробел здесь, тире там. Подстрока будет соответствовать части текста в исходном документе на 99% или более. Я не могу определить, из какого документа эта строка, я пытаюсь найти индекс в документе, где начинается строка.
Если строка была идентична, потому что не было внесено случайной ошибки, я бы использовал документ . index (substring)
, однако это не удается, если существует хотя бы одно различие в символе.
Я думал, что разница будет объяснена удалением всех символов, кроме z, как в строке, так и в подстроке, сравнением, а затем использованием индекса, который я сгенерировал при сжатии строки, чтобы преобразовать индекс в сжатой строке в индекс в настоящий документ. Это хорошо сработало там, где разница заключалась в пробелах и пунктуации, но как только одна буква стала другой, это не удалось.
Документ обычно составляет от нескольких страниц до сотни страниц, а подстрока - от нескольких предложений до нескольких страниц.
11118420]