- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Как снизить ДРР до 4,38% и повысить продажи с помощью VK Рекламы
Для интернет-магазина инженерных систем
Мария Лосева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
PHP-скрипт. Написал для себя; дай, думаю, и сюда запульну.
Подобное в этой ветке выкладывалось уже, но только в виде программы под винду с закрытым исходником.
Для чего вообще
Проверяет статьи в пачке на уникальность относительно друг друга, работатет по методу сравнения шинглов, т.е. ищет нечёткие дубли.
Как работает
Например, есть у вас пачка статей (тыща штук, скажем), и вам нужно из этой пачки выбрать все статьи с уникальностью не менее, допустим, 85%. А статьи, которые будут иметь меньшую уникальность, выкинуть нафик.
Кладёте в рабочую директорию /pages ваши статьи, выставляете в настройках скрипта нужный процент (вместо уникальности в настройках используется процент неуникальности, т.е. в данном случае 15% вместо вышепомянутых 85%), запускаете скрипт - и вуаля, в рабочей директории остаются только уникальные тексты, все неуникальные складируются в директорию /rejected
Запуск
Скрипт консольный (не серверный), для запуска на локальной машине; соотв., у вас на компе должен быть установлен дистрибутив PHP (для винды по умолчанию он ставится в C:\Program Files\PHP). Если он стоит у вас именно там, тогда скрипт можно запускать из консоли прямо так: "php separator.php" (bat-файлик для удобного запуска прилагается). Если у вас установлен Денвер, и вам неохота ставить ещё и отдельный дистрибутив PHP, то можно воспользоваться денверовской установкой PHP, тогда из консоли скрипт запускается примерно так: "C:\путь_к_денверу\usr\local\php5\php.exe C:\путь_к_скрипту\separator.php"
Скорость работы
Скрипт никак специально не оптимизировался, ибо не предназначен для промышленного датамайнинга с миллионами и миллиардами статей. Для использования в быту скорость вполне удовлетворительная, я щетаю. Для примера, массив в 1К статей (по 1,5-2,5К симв. с пробелами на статью) обрабатывается около трёх минут; массив в 15К таких же статей обрабатывается около трёх часов.
Чево у ей внутре (тонкости процесса)
Считываем все файлы из рабочей директории (function rdir), получаем их тексты, чистим эти тексты (function clean_text - удаляем тэги, все не буквенно-цифровые символы, лишние пробелы и переносы, слова короче трёх букв и приводим тексты к нижнему регистру; если ваши тексты в юникоде (utf-8), вы должны указать это в настройках скрипта, иначе чистка пойдёт не тем путём), получаем массив шинглов для каждого текста (function get_shingles, длина шингла в словах настраивается, по умолчанию 5 слов на шингл), опосля чего берём каждый массив и тупо сравниваем с массивами всех других статей (тех, которые ещё не выброшены). Если в каких-то из двух сравниваемых в каждой итерации массивов окажется слишком много одинаковых шинглов (порог одинаковости задаётся в настройках), выкидываем один из них (точнее, выкидываем статью, ассоциированную с этим массивом).
Как-то так.