380 likes | 527 Views
Построение новостного агрегатора в Интернет на основе материалов сайтов СМИ ( обзор технологии yandex.ru). Шевченко Алексей, 422 группа. Yandex.ru. План доклада. Проблематика Реализация новостной ленты на примере yandex.ru Поиск «похожих» текстов Методы кластеризации Стандарт RSS.
E N D
Построение новостного агрегатора в Интернет на основе материалов сайтов СМИ (обзор технологии yandex.ru) Шевченко Алексей, 422 группа
План доклада • Проблематика • Реализация новостной ленты на примере yandex.ru • Поиск «похожих» текстов • Методы кластеризации • Стандарт RSS
Проблематика • Поиск и объединение в сюжетные темы документов, описывающих одни и те же события • Ранжирование сюжетов
Построение сюжетов на yandex.ru • Определение попарной текстуальной близости документов • Построение матрицы попарной близости • Обработка матрицы двухуровневым алгоритмом кластеризации с эмпирически подобранным радиусом
Построениесюжетовна infostream.ua • Определение текстуальной близости документов на основе последовательностей ключевых слов • Построение цепочек документов, коэффициент близости которых превышает некоторый, установленный эмпирически • Выбор самой актуальной информации на основании длины и оперативности цепочек
Метрики • Полнота – описывает количество сообщений, не попавших в нужные сюжеты • Точность – описывает количество «чужих» сообщений в сюжете В обеих системах достигаются полнота более 80% и точность около 95%.
Алгоритмы определения текстуальной близости на yandex.ru • Алгоритм поиска похожих документов (базируется на методе w-шинглов) • Алгоритм нечеткого поиска, базирующийся на матрице похожести текстов
Метод w-шинглов • Метод шинглов определяет близость двух текстов • Каждый из текстов рассматривается как набор слов • Алгоритм разбивает каждый текст на пересекающиеся цепочки из слов фиксированной длины, затем полученные цепочки сличаются • Для достижения наилучших результатов можно применять алгоритм неоднократно, увеличивая длину цепочки
Метод w-шинглов • Первый текст: а роза упала на лапу Азора • Второй текст: а роза упала на лапу, упала на лапу Азора • Пусть длина шингла равна трем
Метод w-шинглов • Для первого текста имеем цепочки: (а, роза, упала), (роза, упала, на), (упала, на, лапу), и т.д. Аналогично строятся цепочки для второго текста • Для каждого текста из получившегося набора шинглов удаляются дубликаты • Пусть S(A) – множество шинглов для текста A. Тогда схожесть текстов определяется по формуле:
Метод w-шинглов • Таким образом, используя метод шинглов с длиной 3, получаем, что исходные два текста являются полными дубликатами
Другой метод определения похожести текстов • Метод определяет похожесть двух текстов • Текст рассматривается как набор слов • Для пары текстов строится матрица MxN, где M – количество слов первого текста, N – второго • Значение матрицы Aij равно похожести соответствующих слов
Другой метод определения похожести текстов • Похожесть слов определяется некоторым образом (например, как расстояние редактирования) • Все слова, похожесть которых меньше некоторого порогового значения (например, 20%), считаются абсолютно непохожими (0%) • Пусть для определенности M <= N. Назовем покрытием матрицы множество ее элементов, таких, что в любой строке содержится ровно один элемент этого множества и в любом столбце содержится не более одного элемента этого множества
Другой метод определения похожести текстов • Для матрицы строится максимальное покрытие, т.е. такое покрытие, элементы которого имеют наибольший суммарный вес • Значение функции похожести текстов определяется как частное суммарного веса элементов максимального покрытия и max(M,N)
Кластеризация • Кластеризация – объединение в группы схожих объектов • На yandex.ru используется двухуровневая иерархическая кластеризация для объединения атомарных кластеров в более крупные (построение «сюжетов»и «событий»)
Основные типы алгоритмов кластеризации • Графовые алгоритмы (исходная выборка представляется в виде графа) • Статистические алгоритмы (основаны на предположении, что кластеры описываются семейством вероятностных распределений) • Иерархические алгоритмы (построение системы вложенных разбиений)
Графовые алгоритмы (алгоритм связных компонент) • Выборка представляется в виде графа • Вершины графа соответствуют элементам выборки • Ребрам графа соответствуют расстояния между соответствующими вершинами • Из графа удаляются все ребра, для которых расстояние между вершинами больше некоторой константы • Суть алгоритма – подбор такой константы, чтобы граф распадался на несколько связных компонент
Статистические алгоритмы (алгоритм k средних) • Элементы выборки представляются n-мерными векторами, расстояние вычисляется как евклидово • Необходимо знать число кластеров заранее • Идея алгоритма: заданное фиксированное число k кластеров наблюдения сопоставляются кластерам так, что средние в кластере (для всех переменных) максимально возможно отличаются друг от друга • Алгоритм: • 1) Выбор начальных k центров как наиболее удаленных друг от друга объектов выборки • 2) Построение k кластеров • 3) Вычисление нового центра каждого кластера как среднего значения для всех его элементов • 4) Переход ко второму шагу • Выполнение завершается в двух случаях: • Покластерное распределение следующей итерации совпало с предыдущей • Достигнуто некоторое максимальное количество итераций
Иерархические алгоритмы (алгоритм инкрементальной кластеризации - базовый алгоритм yandex.ru) • Задача алгоритма – при получении нового сообщения соотнести его с уже имеющимся кластером или принять решение о создании нового кластера • Выбирается мера близости нового сообщения и кластера (на этапе определения текстуальной близости) • Для каждого нового сообщения выбирается кластер, наиболее близкий к сообщению • В случае, если значение меры близости превышает некоторое пороговое значение, сообщение добавляется в существующий кластер • Если же значение меры близости не превысило пороговое значение, создается новый кластер
Иерархические алгоритмы (алгоритм инкрементальной кластеризации) • Кластеризация выполняется в два подхода, поэтому алгоритм иерархический • Такой алгоритм кластеризации позволяет строить сюжеты (кластеры высокого уровня) и выделять события внутри каждого из них (атомарные кластеры) • Документы в данном методе представлены n-мерными векторами • Для реализации такого алгоритма необходимо ввести понятие расстояния между кластером и элементом (вектором). Расстояние может вводиться различными способами
Иерархические алгоритмы (алгоритм инкрементальной кластеризации) – td*idf мера • Для определения схожести документов используется tf*idf мера (Tf = term frequency, Idf = inverse document frequency): • Размерность вектора, представляющего документ, равна общему количеству термов (различных слов) во всей выборке документов • J-й элемент вектора I, соответствующего I-му документу, равен tf*idf • Tf = ½ + ½ * TermFrequency/MaxTermFrequency, где TermFrequency – частота терма в документе, MaxTermFrequency – максимальная частота термов в документе • Idf = log(N/df), где N – число документов в выборке, df – число документов, в которых встречается терм • Схожесть документов определяется как косинус угла между векторами, представляющими документы:
Ранжирование сюжетов на yandex.ru • Основными факторами, влияющими на ранжирование, являются свежесть и размер сюжета • Свежесть отсекает старые сюжеты • Размер позволяет выделить наиболее популярные • Кроме того, интересным для ранжирования фактором оказался «интерес пользователей поисковой системы»
Что такое RSS? • RSS 2.0 – стандарт, определяющий формат xml-документов • RSS =Really Simple Syndication (для версии 2.0) • RSS используется для организации трансляций
Для чего используется RSS • Обычно с помощью RSS даётся краткое описание новой информации, появившейся на сайте, и ссылка на её полную версию • Интернет-ресурс в формате RSS называется RSS-каналом или RSS-лентой
Кто работает с RSS • Браузеры и почтовые клиенты (IE начиная с 7.0) • RSS-агрегаторы – приложения, собирающие и обрабатывающие информацию RSS-каналов (yandex.ru – новостной агрегатор)
Краткая спецификация RSS 2.0 • RSS-каналы должны удовлетворять стандарту XML 1.0 • RSS-канал должен начинаться тегом верхнего уровня <RSS> с атрибутом version, например, <rss version=“2.0”>
Краткая спецификация RSS 2.0 • Внутри элемента <rss> должен располагаться элемент <channel>. Он содержит описание канала (метаданные) и собственно содержание
Краткая спецификация RSS 2.0 • Обязательные подэлементы элемента <channel>: • <Title> -имя канала. Например, <Title>BBC News</Title>. • <Link> - ссылка на сайт, к которому относится канал. Например, <Link>http://www.goupstate.com/</Link> • <Description> - описание канала. Например, <Description>The lastest world news from BBC.com</Description>
Краткая спецификация RSS 2.0 • Необязательные подэлементы элемента <channel>: • Необязательными элементами могут быть теги, указывающие на язык, копирайты, e-mail адреса ответственных за работу канала, логотип и т.д. • Например, <category>NewsPaper</category> • Или <webmaster>betty@herald.com (Betty Guernsey)</webmaster>
Краткая спецификация RSS 2.0 • Основными (необязательными) подэлементами <channel> являются элементы <item> • Элементы <item> несут смысловую нагрузку • Как правило, RSS-канал содержит не более 20 элементов <item>
Краткая спецификация RSS 2.0 • Основные подэлементы элемента <item>: • <title> • <link> • <description> • Все подэлементы item-а необязательные, однако каждыйэлемент <item> должен содержать хотя бы один подэлемент <title> или <description>. • Каждый элемент <item> может быть анонсом некоторого документа (указаны, например, название, ссылка на документ и вступление) • Каждый <item> может быть полноценной статьей, тогда весь текст размещается в <description>. • Yandex требует, чтобы каждый <item> дружественного СМИ содержал полный текст новости.
История RSS • В 1997 году компанией Netscape была предложена первая версия RSS 0.90 • Следующая версия RSS 0.91 была более простой • Netscape прекращает разработку RSS, отойдя от бизнеса порталов. Далее разработкой занимаются две компании – UserLand создает версии 0.92, 0.93, 0.94 и 2.0, RSS-DEV Working Group создает RSS 1.0 и 1.1 • Самыми популярными являются версии 0.91, 1.0, 2.0
История RSS • Любой файл RSS 0.91 или 0.92 будет также файлом RSS 2.0, но не наоборот • RSS 1.0 является продолжением RSS 0.90, более сложный, чем RSS 2.0 • Официально с выходом RSS 2.0 были отменены форматы 0.91-0.94, однако некоторые из них до сих пор используются
История RSS • Как замена формату RSS был разработан формат Atom, также основанный на XML и предназначенный для выполнения тех же задач • Конкуренции не получилось – как правило, поддержка RSS идет вместе с поддержкой Atom • В настоящее время главным сторонником RSS является Microsoft, сторонником Atom - Google