img

Сборы и кластеризация текста с учетом контекста

В данной статье будет проведена кластеризация заранее подготовленного корпуса текстов. Он получен в результате работы программы-краулера, собиравшего новостные статьи с сайта arstechnica.com, присваивая каждому собранному тексту тему, к которой он был приписан на сайте. В ходе работы будет проведена кластеризация собранных текстов и визуализированы ключевые слова и максимально близкие к ним по смыслу на основании алгоритма word2vec. Наработки, освещенные в данной работе, могут быть использованы в беспрерывном анализе сайтов по поступающим адресам с целью автоматизации поиска данных по каким-либо критериям.


Теория

  • Лемматизация – это процесс преобразования слова в его базовую форму, которая учитывает контекст (в отличие от стемминга (stemming), который находит основу слова, не учитывая контекст).
  • Wordnet – это большая лексическая база данных английского языка для установления структурированных семантических отношений между словами. Библиотека предлагает возможности лемматизации.
  • Word2vec — это инструмент для расчета векторных представлений слов, который реализует основные архитектуры — Continuous Bag of Words (CBOW) и Skip-gram. Суть в том, что на вход подается текст, а на выходе мы получаем набор векторов слов. Используется для нахождения связей между контекстами.
  • CBOW и Skip-gram — нейросетевые архитектуры, которые описывают, как именно нейросеть «учится» на данных и «запоминает» представления слов. Принципы у обоих архитектур разные. Принцип работы CBOW — предсказывание слова при данном контексте, а skip-gram наоборот — предсказывается контекст при данном слове.
Сравнение CBOW и Skip-gram

Практическая часть

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

Краткие сведения о корпусе

Убираем из текстов знаки препинания и слова, которые слишком часто применяются и часто не несут смысловой нагрузки (так называемые стоп-слова), а именно предлоги, артикли, частицы, часть местоимений и некоторые формы вспомогательных глаголов:

Текст без стоп-слов

После необходимо разбить корпус на две выборки: обучающую и тестовую. С помощью обучающей выборки предполагается обучить метод векторизации и кластеризатор, а с помощью тестовой – проверить результаты их работы. С помощью параметра test_size можно задать соотношение размеров выборок.

Разбитие на выборки

Затем можно приступить к векторизации текстов выборок. Количество признаков установлено на 500 и после этого сделано усреднение длин векторов.

Векторизация

Обучив векторизатор, можно посмотреть наиболее близкие по контексту слова. Эта функция будет использована далее для визуализации Wordcloud.

Применение векторизатора

Для визуализации результатов кластеризации нужно выделить 2 главных признака и вывести координаты точек, исходя из значений двух выделенных параметров.

Координаты точек

Наконец, можно приступить к визуализации облака слов. Оно строится на основании веса каждого слова в корпусе. А так как в качестве корпуса подается топ-100 слов, семантически близких к слову car, то данное облако полностью состоит из слов, близких к car по мнению word2vec.

Облако слов

Заключение

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

Также повышению качества будет способствовать увеличение размеров корпуса и ручная доработка корпуса стоп-слов и пунктуации, хотя стоит отметить, что они и в стандартном виде работают достаточно эффективно для столь небольшой обучающей выборки (5952 текста о 5 разных, иногда пересекающихся, темах).

Ссылка
скопирована
Получите бесплатные уроки на наших курсах
Все курсы
Еще по теме:
img
В этом руководстве вы узнаете, как установить и настроить Fail2ban на своем сервере.
img
В этой статье обсудим гипервизоры — важные компоненты процесса виртуализации серверов, как они работают и какие бывают типы.
img
В этой статье мы рассмотрим, как работают различные системные вызовы, разберемся в их функциях, а также постараемся сделать работу вашей системы более безопасной и предсказуемой.
img
Статья объясняет, что такое SWAP-память, как она работает, ее преимущества и недостатки, а также как управлять объемом SWAP-пространства на разных ОС.
img
Абсолютные и относительные пути помогают компьютеру находить файлы и каталоги. Узнайте, как использовать их в Windows и Linux, а также создавать удобные пути в HTML.