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