YuS_2
Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору IvanStepanov Цитата: Примерно так звучат Ваши слова. | Ваша-то задача вообще не звучит, вернее, я озвучивал её выше, про пойти туда - не знаю куда. Видимо, помощь Вам совсем не требуется... или требуется но на блюдечке с голубой каемочкой... Как сказали уже выше, такая помощь в такой задаче, вряд ли, будет бесплатной, так что... Цитата: Повторяя - там совсе другая задача. | Повторять не надо, надо прочитать внимательно тот алгоритм. Цитата: Там вся игра идёт на статистике повторяемости слов. | Там создается база данных чек-сумм, с которой сверяются чек-суммы вновь поступивших файлов... Вот, цитата: Цитата: 2. Эффективное решение Text::Distill 2.1 Нормализация символов строки Прежде чем строить хэш текст следует “свернуть” текст, исключив все несущественные для поиска копий детали, которые в силу ошибок OCR или умышленной атаки на алгоритм сравнения могут быть добавлены в файл. Убираем знаки препинания, непонятные конструкции вида [стр56], нормализуем UTF8, приводим всё в нижний регистр и упрощаем сложные знаки, например преобразуем “ё” в “е”, а “й” в “и”. Замысел состоит в том, что два похожих текста, скорей всего, и после такой нормализации останутся похожими, а два непохожих - непохожими. 2.2 Удаление коротких слов Следующим шагом мы убираем все короткие слова. Для кирилицы считаем короткими слова 6 букв и меньше, для латиницы 5 и меньше. Как правило тексты, даже посвященные одной теме и состоящие из приблизительно тех же слов, будут включать большие слова на разных позициях. При этом мелкие вариации мы опускаем, что радикально уменьшает объём сверяемого текста без заметной деградации уникальности. ... После рассечения теста на фрагменты мы отбрасываем “свернутые” строки, длина которых меньше 150 знаков, по остальным фрагментам формируем 32-х битный хэш (хеш-функция Дженкинса подходит идеально). В итоге получается набор 32-х битных чексумм, объёмом приблизительно 0,5% от исходного текста. Эти чексуммы можно поместить в индексированное поле в БД и находить совпадения с минимальными затратами вычислительных ресурсов. 2.5 Сравнение чексумм Соответственно, имея в БД чексуммы по всем известным нам текстам, мы можем, выделив чексуммы из произвольного текстового файла, сравнить их с известными. Если между двумя текстами есть множество совпадений - значит тексты либо содержат массовые заимствования, либо являются “зашумленными” копиями. Боевые испытания выявили у алгоритма возможность обнаружения даже более-менее обширных цитат. | - ГДЕ тут речь о статистике повторяемости слов? Почитайте, хотя бы, внимательнее... а потом уже пишите о том, о чем имеете слабое представление. | Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 14:49 25-05-2019 | Исправлено: YuS_2, 14:54 25-05-2019 |
|