Архив

Архив раздела ‘Data Mining’

Получить RSS-ленты из страницы? Так точно!

2 января 2010 Comments off

Billboard_Feed_256x256Приветствую своих читателей! С Новым Годом! Первой темой, который мы откроем этот год жизни блога, будет следующая задача. Дано - система, схожая с Google Readers, которая принимает от пользователя некоторый адрес и должна обеспечить просмотр (а позже, и подписку) доступных там RSS-фидов. Задача осложняется тем, что от пользователя нельзя требовать ввода именно полного адреса ленты, да и даже просто адреса сайта или произвольной страницы - он может быть введен в совершенно разных вариантах, полностью или частично и т.п. Самих лент на странице также может быть более одно, часто нескольких форматов сразу (а то и не быть вовсе). Поэтому нам надо выбрать из всех доступных лент последние сообщения и отобразить пользователю, чтобы именно он выбрал в конечном итоге одну ленту, которая его интересует. Открою секрет - да, это только начало и в последующих статьях мы вместе постоим несколько уменьшенную версию системы агрегации и чтениях новостей. Но сегодня попробуем решить первую задачу, без которой наша "читалка" просто не сможет работать, какие бы дальше технологии не применялись.

Основой будет мой любимый инструмент  - Zend Framework (используем последнюю, trunk версию). Если вы знакомы с его возможностями, что сходу предложите компонент Zend_Feed, который имеет встроенные возможности по извлечению из страницы лент. Однако не спешите, на практике задача не так и проста. Поэтому будем решать ее постепенно.

Читать далее...

Полнотекстовый поиск в веб-проектах: Sphinx, Apache Lucene, Xapian

4 августа 2008 23 комментария

Полная авторская верcия.
Оригинал материала написан специально для Developers.org.ua

Наверное любой современный веб-проект сложно себе представить без... без контента! Да, именно контент в разных его проявлениях сегодня "правит бал" в различных веб-проектах. Не так важно - создаваемый пользователями или получаемый из других источников автоматически - информация является основной любого (ну, или почти любого) проекта. А раз так - то вопрос поиска необходимой информации стоит очень остро. И острее с каждым днем, ввиду стремительного расширения количества этого самого контента, в основном за счёт создаваемого пользователями (это и форумы, и блоги и модные нынче сообщества, вроде Habrahabr.ru). Таким образом, любой разработчик, реализующий сегодня какой-либо проект, сталкивается с потребностью реализовать поиск в своём веб-приложении. При этом требования к такому поиску уже намного сложнее и шире, чем даже год-два назад. Конечно, для каких-то проектов вполне подойдёт и простое решение, к примеру, вполне можно использовать Custom Google Search. Но чем более сложное приложение, и чем сложнее структура контента, если требуются особые виды поиска и обработки результата, или же просто количество или формат данных в вашем проекте особый, вам потребуется собственная поисковая система. Именно своя система, собственный поисковый сервер или сервис, а не сторонний, пусть даже гибкий и настраиваемый. Но что же выбрать, и вообще - какие сейчас на рынке есть поисковые проекты, которые готовы для использования в реальных проектах, не исследовательских или научных, а реальных бизнес-приложениях? Далее мы кратко рассмотрим различные варианты поисковых решений, пригодных для встраивания в ваше веб-приложение или развёртывания на собственном сервере.
Читать далее...

Автоматическое определение языка произвольного текста на РНР — библиотека PHPLangautodetect

Приветствуем наших читателей. Знаете, работа с стартапе, который пытается создать что-то новое и уникальное на рынке очень захватывает. И не только открывающимися возможностями, но и часто нетривиальными задачами и вопросами, которые ставятся перед создателями и которые раньше никто не решал. Вот один из таких вопросов как раз вчера появился передо мной: дано нам произвольную строку текста, заведомо известно, что она может быть двух, а в некоторых случаях и трёхязычной, то есть там смешанный текст из нескольких языков. Необходимо прозрачно для пользователя определить язык, на котором написан текст.

На самом деле задача не такая и редкая - подобная функциональность есть и в текстовых редакторах, и в переключателе клавиатуры PuntoSwitcher, да и в системах машинного перевода такой функционал востребован, не говоря уже про системы поиска информации. Кстати, именно в контексте создания специализированного поисковика и классификатора текстов и появилась такая проблема. Необходимо было получить такую возможность в собственной программе на платформе РНР и при этом не задействовать сторонние сервисы - подобная возможность в виде веб-сервиса присутствует в Google Language API (мы уже исследовали этот сервис), однако она выполняется удалённо и имеет некоторые существенные для нас ограничения, в частности, процедура опознания языка выполняется с существенной задержкой и асинхронна по своей природе. Кроме этого очень хотелось иметь полный контроль над процессом и иметь возможность его гибко настраивать, чего, увы, нет в сторонних сервисах. Поэтому пришлось подумать и попробовать реализовать собственными силами, результат же представляем вашему вниманию. Читать далее...

IBM Unstructured Information Modeler — инструментарий для исследования данных.

27 октября 2007 Comments off

Мы продолжаем знакомить читателей с интересными и инновационными разработками от компании IBM. Тамошние специалисты давно занимаются различными вопросами исследования массивов текстовой информации, а также смежными проблемами - индексации, извлечение данных и из неструктурированных хранилищ, автоматическая классификация и категоризация и т.п. Часть из этих работ находит вполне осязаемое применение, в частности, в пакетах OmniFind, СУБД DB2 Viper и других. Сегодняшняя разработка ещё не коммерческая, и пока предназначена для исследователей и учёных, разработчиков систем хранения и поиска данных, систем анализа и извлечения - в общем, для всех, кто имеет отношение к обработке текстовой информации, которая ещё "не разложена по полочкам" (такое направление ещё называется data mining).

Программа Unstructured Information Modeler, исходя из названия, представляет собой утилиту для анализа неструктурированных массивов текстовых данных, к примеру, анализа логов обращения в службу технической поддержки (более точно - создание таксономии). Пакет позволяет автоматизировать процесс классификации данных и распределение по категориям всех поступающих данных.
Читать далее...

Developers.org.ua