Методы сравения линков....

Тема в разделе "Как сделать...", создана пользователем qwerty, 7 июн 2008.

Статус темы:
Закрыта.
  1. qwerty

    qwerty Постоялец

    Регистр.:
    10 апр 2006
    Сообщения:
    75
    Симпатии:
    0
    имеется таблица с записями
    id|url|discription

    в url
    могут быть ссылки с например с файлообменника
    вида
    Перейти по ссылке
    Перейти по ссылке
    Перейти по ссылке
    Перейти по ссылке

    или
    Перейти по ссылке
    Перейти по ссылке
    Перейти по ссылке

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

    требуется создать новую таблицу или записать в файл не важно как ну вообщем получить массив вида

    id|url|discription|id_parents
    для самой первой ссылки в наборе в id_parents должен стоять 0
    в примере для Перейти по ссылке
    а для остальных ссылок в id_parents должен стоять id самой первой ссылки.

    для просто не групповых линков соответсвтенно в id_parents будет 0 так как они и заглавные и конечные.

    помогите реализовать преобразователь из той таблици в эту.

    Очень буду рад Вашей помощи.Сам уже мучаюсь ни как не могу этог сделать.
     
  2. qwerty

    qwerty Постоялец

    Регистр.:
    10 апр 2006
    Сообщения:
    75
    Симпатии:
    0
    Нашел я ответ на свой вопрос. Может кому пригодится кто не знает.

    int similar_text ( string $first , string $second [, float $percent ] )
    Вычисляет степень похожести двух строк по алгоритму, описанному Oliver [1993]. Эта реализация алгоритма не использует стэка, использованного в оригинале, вместо этого применяются рекурсивные вызовы, что в некоторых случаях может ускорить процесс. Сложность алгоритма составляет O(N**3), где N - длина более длинной из двух строк.
    При передаче по ссылке третьего аргумента, ему присваивается степень похожести двух строк в процентах. Возвращается количество совпадающих символов в двух строках.


    int levenshtein ( string $str1 , string $str2 )
    int levenshtein ( string $str1 , string $str2 , int $cost_ins , int $cost_rep , int $cost_del )
    int levenshtein ( string $str1 , string $str2 , function $cost )
    Функция возвращает расстояние Левенштейна между двумя строками, или -1, если хотя бы одна из строк длиннее 255 символов (этого более чем достаточно для сравнения имен или поиска по словарю, а проводить генетический анализ на PHP просто несерьезно).
    Расстояние Левенштейна - это минимальное количество вставок, замен и удалений символов, необходимое для преобразования str1 в str2 . Сложность алгоритма равна O(m*n), где n и m - длины строк str1 и str2 имеющей сложность O(max(n,m)**3), но все же довольно много).
    В простейшей форме функция принимает в качестве аргументов две строки и возвращает минимальное количество вставок, замен и удалений символов, необходимое для преобразования str1 в str2 .
    Второй вариант принимает три дополнительных аргумента, задающих стоимость операций вставки, замены и удаления. Этот вариант универсальнее первого, но не так эффективен.
    Третий вариант (который еще не реализован) будет наиболее универсальным, но и самым медленным. Он будет принимать в качестве третьего аргумента пользовательскую функцию, которая будет вычислять стоимость каждой возможной операции.

    Пользовательская функция будет иметь следующие аргументы:
    • <LI class=listitem>тип операции: 'I', 'R' or 'D' <LI class=listitem>текущий символ в строке 1 <LI class=listitem>текущий символ в строке 2 <LI class=listitem>текущая позиция символа в строке 1 <LI class=listitem>текущая позиция символа в строке 2 <LI class=listitem>количество символов, оставшихся в строке 1
    • количество символов, оставшихся в строке 2
    Пользовательская функция должна возвращать положительное целое, определяющее стоимость конкретной операции.

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

    Добавлено через 2 минуты
    так же требуется добавить что эти функции есть только
    в (PHP 4 >= 4.0.1, PHP 5)
     
Статус темы:
Закрыта.