IvanStepanov
BANNED | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Jonmey Цитата: Если я правильно понимаю, то ваша задача требует возможностей неточного сравнения текстовых данных (то есть, с переменной степенью похожести) | В идеале да. Но раз это так трудно - меня бы устроило нахождение просто одинаковых (без учёта пробельных разделителей) кусков. Jonmey Цитата: поскольку в вашем случае к первой возможности необходима возможность плавающей выборки в анализируемых текстах. | Не понял. Поясните. Jonmey Цитата: Но если первая задача при анализе даже десятков тысяч текстов длиной до 2тыс. символов между собой требует многочасовой работы достаточно мощного компа, то обе функции, даже если их реализовать в одной программе, потребуют мощности среднего суперкомпа. | Ну реально работать придётся не со всей базой в несколько сотен тысяч файлов, а где-то с порядка 100...1000 файлами, которые я отфильтрую в самом архивариусе 3000 по ключевым словам и названиям файлов. PowerGREP в таком массиве вполне у меня находит нужные мне куски по описанным мной REGEX-ам за 1...3 минуты на моем слабеньком ноуте. Существуют программы поиска похожих картинок. Там алгоритм ещё более многожручий и тем не менее он находит лицо или похожие фотки среди нескольких достаточно шустро на обычном компе. YuS_2 Цитата: т.е. по сути, Вы желаете получить что-то типа: Код: | Ну раз так с помощью регексов невозможно сделать - нужно переходить к грамматикам более высокого, чем ругулярные, порядка и программированию? Смотрю сейчас в сторону текстового редактора EMACS. Он из коробки поддерживает написание скриптов на LISP. А кроме того, поддерживает всплывающие подсказки к найденным и подсвеченным фрагментам. Беглое чтение в инете говорит, что вроде как с помощью скриптов на ЛИСП можно реализовать более сложный PATTERN MATCHING, чем с помощью REGEX. Возможно есть и другие решения. В любом случае, как я понимаю, "с наскока" такую задачу не решить. Потребуется очень много времени на освоение нужного инструментария. Ну хорошо. А если я буду использовать не (.*), а что-то более определенное? Типа того, что Вы мне написали для поиска фрагментов, содержашего не менее 5-ти слов из заданного списка из 10 слов? Задача имеет же решение? Т.е. раз реализовать нужную мне функцию, делающую всё в полном автомате трудно, то мне хотя бы в полуавтомате сделать. Т.е. что-то вручную набивать (REGEX-ы предположительно повторяющиеся фрагментов), а что-то выполнять автоматически |