АВтоматическая кластеризация текстов в новостном корпусе с назначением ключевых слов – меток кластеров Общие положения Приступая к третьей главе нашей работы, скажем несколько слов о самом эксперименте.
Имеется корпус новостных документов, требуется кластеризовать его, построить тематический словарь и выставить метки кластерам документов.
При кластеризации корпуса текстов на небольшие группы, крупные темы, охватывающие сразу несколько групп, согласно стандартным метрикам будут иметь вес меньший, чем темы, соответствующие только одной группе. Это не отвечает интуитивному представлению ключевого слова: хотелось бы, чтобы глобальная тема война в Сирии имела больший вес, чем какая-нибудь локальная тема, задавая, тем самым, контекст для остальных ключевых слов. С другой стороны, попытка изменить это может привести к тому, что увеличится вес у слишком общих, частотных слова, охватывающих всю коллекцию.
Чтобы отделить зерна от плевел, мы разработали специальный двухступенчатый алгоритм, применимый в той или иной мере именно к новостным информационным сайтам.
Основное предположение Было замечено, что многие новостные порталы публикуют новости двух классов – серьезные и развлекательные. К первому типу относятся политические, финансовые новости. Ко второму – новости о звездах, «британские ученые доказали» и тому подобные материалы. Как оказалось, в тои или иной степени этой классификации отвечает большинство порталов.
Этой особенностью мы решили воспользоваться следующим образом: разбить методом кластеризации корпус на две части: серьезную и несерьезную и составить словарь ключевых слов, основываясь на следующем принципе: если слово характерно для одной группы и не характерно для другой, то оно скорее является тематическим и имеет больший вес. Такой метод позволил избавиться от нейтральных слов, при этом поднять вес крупным темам. Можно назвать эту идею центральной идеей всей работы.
Применение Может быть несколько вариантов применения данного метода. Прямое применение – организовать серию перекрестных ссылок, проставив метки каждому документу. Другой способ – составлять новостные карточки, объединяя новости с разных порталов и составлять краткое описание с помощью извлеченных ключевых слов подобно тому, как это делается порталом «Яндекс.Новости». Наконец, третий способ, как нам кажется, наиболее интересный и актуальный, – составление рекомендаций и ранжирование новых документов, исходя из предпочтений пользователя.
Данные В работе использовался корпус новостей портала Ruposters за май 2016 года, объемом 94 тысячи словоупотреблений и 428 документов. Каждый документ имеет пометку «news» или «life», означающую категорию новости.
Мы нарочно ограничили корпус документов – в задачах машинного обучения без учителя увеличение корпуса приводит лишь к улучшению работы алгоритма – это было проверено на корпусе новостей за 2015 год. Далеко не всегда имеется в распоряжении такой большой корпус. Поэтому мы рассмотрели пограничный случай: когда корпус мал, чтобы алгоритму было «слишком легко», но достаточно велик, чтобы оценка была статистически значимой.
Тексты были предобработаны с помощью модуля Pymorphy2, каждое слово было переведено в нормальную форму и получило метку части речи.
Моделирование произведено на языке Python с использованием дополнительных математических библиотек numpy, scipy, scikit-learn и некоторых технических модулей.
План эксперимента Таким образом, наш эксперимент состоит из четырех шагов:
Кластеризация новостного корпуса на два кластера, анализ кластеризации, подбор оптимальных параметров. Сравнение с эталонной классификацией.
Выделение ключевых слов, характерных для серьезного и несерьезного кластеров. Сравнение метрик, оптимизация алгоритма. Анализ списков.
Выделение конструкций, дополняющих список ключевых слов. Сравнение и анализ коллокационных метрик.
Кластеризация корпуса текстов на множество близких небольших групп. Анализ проставления меток кластеру.
|