Текстовый алгоритм подобия

У меня есть два файла подзаголовков. Мне нужна функция, которая говорит, представляют ли они тот же текст или подобный текст

Иногда существуют комментарии как "Ветер, дует..., музыка играет" в одном файле только. Но 80%-й процент содержания будет тем же. Функция должна возвратить TRUE (файлы представляют тот же текст). И иногда существуют орфографические ошибки как 1 вместо l (один - L) как здесь: Она 1eft багаж. Конечно, это означает, что функция должна возвратить TRUE.

Мои комментарии:
Функция должна возвратиться, процент подобия текстов - СОГЛАШАЮТСЯ

"все люди были счастливы", и "все люди не были счастливы" - здесь это рассмотрят как орфографическую ошибку, таким образом, это считали бы тем же текстом. Чтобы быть точными, процент, функциональные возвраты будут ниже, но достаточно высоко сказать, что фразы подобны

Действительно рассмотрите, хотите ли Вы применить Levenshtein на целый файл, или просто строка поиска - не уверенный в Levenshtein, но алгоритме должна быть применена к файлу в целом. Это будет очень длинная строка, все же.

14
задан Yonatan 6 November 2011 в 15:15
поделиться

3 ответа

Алгоритм Левенштейна: http://en.wikipedia.org/wiki/Levenshtein_distance

Любой результат, отличный от нуля, означает, что текст не является "идентичным". "Похожи" - это мера того, насколько они далеки/близки. Результат - целое число.

11
ответ дан 1 December 2019 в 12:52
поделиться

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

2
ответ дан 1 December 2019 в 12:52
поделиться

Посмотрите примерный grep . Он может дать вам указатели, хотя почти наверняка будет ужасно работать с большими фрагментами текста, о которых вы говорите.

РЕДАКТИРОВАТЬ: исходная версия соглашения не является открытым исходным кодом, поэтому вы можете получить ссылки на версии OSS из http://en.wikipedia.org/wiki/Agrep

2
ответ дан 1 December 2019 в 12:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: