Сервис Интернет Объявлений

 

Archive for Сентябрь, 2012

30
Сентябрь
2012

Алгоритм поиска нечетких совпадений в PHP




Нечеткий поиск фраз в PHPВсем привет!
Сегодня речь пойдет о нечетких совпадениях в PHP.
В сети можно найти достаточно примеров поиска отдельных слов и сравнения целых текстов.
Но моя задача выглядит так: определить, принадлежит ли текст одной из Веб-страниц.
Или, наоборот: имеется Веб-страница и несколько текстов. Определить, какой текст расположен на этой Веб странице.

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

Где это нужно? Да везде. В частности, при поиске возможного плагиата, при генерации Мета-тегов и т.д.

Таким образом, мы имеем дело с двумя задачами.

  • 1. Из множества текстов найти такие, которые могут содержать искомый фрагмент;
  • 2. Выбрать тот текст, который действительно с большой вероятностью содержит искомый фрагмент текста.

Я не буду приводить здесь PHP-код. Но дам наводку, как поступать. Учтите, в РНР я недавно.

Первым делом подготавливаем две строковые переменные: одну с искомым тестом, вторую — с текстом, где нужно будет искать. Удаляем из этих строк все символы, разметку и пробелы. Т.е. оставляем две строки, состоящие только из букв и цифр русского и английского языков.

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

Имея много текстов, и упаковав все это в один большой цикл, мы сможем получить несколько значений levenshtein(). Где значение меньше — тот текст и ближе к искомому. Но ,согласитесь, не факт, что текст окажется совпадающим.

Для окончательной проверки текстов на реальную похожесть воспользуемся PHP-функцией similar_text(), которая и покажет нам в процентах сходство текстов.
В зависимости от специфики текста, можно сказать, что тексты со схожестью 80% и выше можно считать одинаковыми.

При реализации этого алгоритма нужно учитывать, что levenshtein() не работает со строками длиннее 255 символов. Так что, продумайте этот момент и разбейте на подстроки, если это нужно.
Также учтите, что перебор может занять много времени. Сократить время перебора поможет увеличение шага сравнения строк. Но здесь Вы приносите в жертву точность.
Хотя, для нечеткого поиска и точность будет нечеткой.

П.С. А ВЫ знали, что дорожные блокираторы могут быть установлены на любой дороге и смогут задержать даже военную технику?

25
Сентябрь
2012

JotForm — создание HTML-форм, конструктор функциональных форм

Недавно возникла потребность быстро создать функциональную и привлекательную форму на сайт.
Разумеется, руками рисовать ее было влом. Поэтому начал рыть дебри Интернета в поисках чего-то съедобного, функционального и с внятной поддержкой. И нашел сервис JotForm.
Интернфейс там очень даже интуитивно понятный. Drag-n-Drop, группы элементов, возможность редактирования как формы вцелом, так и свойств отдельных составляющих.

Порадовала возможность встраивания через iframe и при помощи HTML-кода.
Встраивание полезно для быстрой вставки формы на сайт без необходимости проводить существенные правки.
Если же Вы хотите пошаманить, перекрасить, подвигать, изменить способ отправки и количество данных — вытаскивайте форму в Dreamweaver и редактируйте в свое удовольствие.
Форма использует три внешних файла: один скриптовый и два ЦСС.
Но они легко скачиваются и размещаются локально, без необходимости подгрузки.
Кроме того, локально Вы можете подправлять как CSS, так и JS-файлы.

Отдельно следует отметить поддержку. JotForm имеет очень даже живой форум.
Например, я там задавал вопрос об отключении автоматической прокрутке при развороте Form Collapse. В течение суток ответ был дан!
Впрочем, я и так до него докопался, обычным редактированием Джаваскрипта.

Кстати, на сайте, где Вы можете скачать новый фильмец Банда Неудачников http://onlymult.com/39-piraty-banda-neudachnikov.html также обратите внимание на формы ввода информации. Возможно, Вы найдете знакомые элементы?

А для удобного просмотра этого фильма и других программ очень рекомендую приобрести удобный кухонный диван в Минске. Если Вы хотите что-то уникальное под конкретную планировку — сделайте заказ и все будет изготовлено всрок.

20
Сентябрь
2012

Фасадные панели: новый облик вашего домика

Вы задумывались, каким образом можно улучшить внешний вид дома? Краска, лак, смола? Нет! Будем современными.
Для облицовки домов сейчас активно используются фасадные панели . Фасадные панели бывают из разных материалов, например, из алюминия или композитного материала. При выборе материала и цвета нужно руководствоваться из области применения и предъявляемых требований. Множество подробностей о панелях доступны из Интернета на специализированных форумах.
Главное преимущество панелей — это легкость и прочность материалов, звукоизоляционные характеристики, устойчивость к коррозии и высокая долговечность. В совокупности эти характеристики дают значительную экономию в дальнейших затратах на рекмонт или облицовку фасадов. Кроме того, сами панели фасадные обладают энергосберегающими свойствами.
Алюминиевые композитные панели Winbond подарят Вам комфорт, стиль, и экономию. Звоните на горячую линию бесплатно.

10
Сентябрь
2012

Выводим имя юзера и прочую инфу на странице Вордпресса

Сначала ставим плагин, включающий РНР в Вордпрессе. Например, grimp-php

Затем добавляем этот код:

<?php global $current_user;
      get_currentuserinfo();

      echo 'Username: ' . $current_user->user_login . "\n";
      echo 'User email: ' . $current_user->user_email . "\n";
      echo 'User first name: ' . $current_user->user_firstname . "\n";
      echo 'User last name: ' . $current_user->user_lastname . "\n";
      echo 'User display name: ' . $current_user->display_name . "\n";
      echo 'User ID: ' . $current_user->ID . "\n";
?>

и радуемся!