Алгоритм поиска, если один документ включен в другой, когда эти два документа похожи - PullRequest
0 голосов
/ 04 августа 2010

Я ищу алгоритм, который определяет, похожи ли два текстовых документа, если один документ включен в другой документ.

Заранее благодарю.

1 Ответ

0 голосов
/ 04 августа 2010

Вы всегда можете использовать diff с diffstat . В документации diff нет точного описания алгоритмов, которые он использует, но авторы оригинала написали статью об этом (Google для diff paper ), и вы всегда можете прочитать исходный код.

Для более точных ответов вам понадобится более точный вопрос. Вас интересует только то, является ли один документ фрагментом другого документа? Или вам также интересно узнать, можно ли разделить одну на части, каждая из которых встречается в другом документе, в том же порядке? Или вам также интересно узнать, сколько материала получается , а не , если вы пытаетесь сопоставить материал обоих документов с помощью быстрого алгоритма? Дифф расскажет вам все эти вещи. Или вы хотите знать, что абсолютно подходит? diff не всегда дает вам это, вам понадобится что-то вроде расстояние Левенштейна . Если один из документов намного короче другого, вы можете использовать быстрые алгоритмы поиска строк . И т. Д. И т. Д.

...