<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Новый подход к определению отношения авторов коротких текстов к обсуждаемым темам на примере оценки инфляционных ожиданий</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Москва mark.andreev@gmail.com</string-name>
          <email>mark.andreev@gmail.com</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Mark Andreev Lomonosov Moscow State University</institution>
          ,
          <addr-line>Moscow</addr-line>
        </aff>
      </contrib-group>
      <fpage>10</fpage>
      <lpage>14</lpage>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>Под короткими текстами будем понимать
комментарии пользователей в социальных сетях и на
страницах официальных ресурсах СМИ. Короткие
Труды XIX Международной конференции
«Аналитика и управление данными в областях с
интенсивным использованием данных» (DAMDID/
RCDL’2017), Москва, Россия, 10–13 октября 2017
года
выделения тем предлагается использовать два
подхода: поиск темы по ключевым словам и с
использованием тематического моделирования.</p>
      <p>Выделение темы по ключевым словам требует
формирования регулярного выражения. Такой
подход ограничен списком тем, которые описал
исследователь. Его результатом является список
комментариев, относящихся к заданной теме. Для
дальнейшего исследования полученных комментариев
предлагается использовать тематическое
моделирование.</p>
      <p>
        Тематическое моделирование позволяет
выделить из текстов заданное заранее количество тем.
Уменьшая количество тем, исследователь будет
получать более глобальные темы, увеличивая их
количество, будет получать подтемы больших тем [
        <xref ref-type="bibr" rid="ref2">4</xref>
        ].
      </p>
      <p>Под отношением к теме будем понимать как
факт упоминания данной темы пользователем, так и
эмоциональную окраску сообщений, в которых
упоминается тема.</p>
      <p>
        Оценка тональности комментариев возможна как
по средствам заранее сформированных словарей,
содержащих информацию о тональности каждой
словоформы [
        <xref ref-type="bibr" rid="ref5">7</xref>
        ], так и с помощью методов
машинного обучения, требующих размеченных текстов на
предмет их тональности [
        <xref ref-type="bibr" rid="ref4">6</xref>
        ]. В данной работе
рассматривается второй подход, не требующий
кропотливой работы лингвиста.
      </p>
      <p>Таким образом, предлагается фильтровать
исходную совокупность комментариев на отношение к
исследуемой теме, представленной в виде
регулярного выражения, а затем исследовать статистики
вычислимых свойств комментариев: количество
упоминаний темы в единицу времени, количество
эмоционально окрашенных комментариев в единицу
времени. Для исследования тем, являющихся частью
исследуемой, предлагается использовать
тематическое моделирование.</p>
      <p>Для иллюстрации работы предложенного
подхода рассмотрим задачу измерения инфляционных
ожиданий населения РФ на основе его активности
на официальных сайтах
финансово-ориентированных СМИ и их страницах в социальных сетях.</p>
      <p>В экономике инфляционными ожиданиями
называют предполагаемые уровни инфляции,
основываясь на которых производители и покупатели
строят свою будущую ценовую и
кредитно-финансовую политику [1]. Влияние на инфляционные
ожидания оказывает ЦБ РФ в рамках режима
инфляционного таргетирования. Инструментом
воздействия с сентября 2013 г. является ключевая
ставка. Кроме того, среди косвенных инструментов
воздействия на инфляционные ожидания ЦБ РФ
использует информационную политику, постоянно
объясняя населению свои действия и дальнейшие
планы. Традиционный метод оценивания
инфляционных ожиданий подразумевает проведение
опросов. Используя данный подход, агентство ООО
«ИНФОМ» оценивает инфляционные ожидания
населения РФ. Главные недостатки такого подхода
состоят в низкой частоте обновления индекса (раз в
месяц); ограниченности выборки, которая состоит
всего из 2000 домохозяйств; скорости публикации
индекса (результаты опросов ООО «ИНФОМ»
запаздывают примерно на две недели после
проведения опросов за счет необходимости обработки
полученных данных); отсутствие возможности
пересчета показателей при изменении методологии
опросов высоких издержках при построении.</p>
      <p>Подход, предлагаемый в данной статье, лишен
вышеупомянутых недостатков. Высокая частота
обновления индекса обеспечивается автоматизацией
сбора данных и последующим анализом на
высокопроизводительном вычислительном кластере.
Выборка ограничена только количеством
пользователей, комментирующих новости в отобранных
источниках. Сохранение потока сообщений в
специальное хранилище позволяет обновить индекс при
изменении методологии, без повторного сбора
данных.</p>
      <p>Чувствительность индекса к изменениям
инфляционных ожиданий населения отчетливо видна на
графике его изменения – по ситуации в конце 2014 –
начале 2015 годов. Этот период характеризуется
всплеском волнения населения. Экономическое
обоснование полученного индикатора детально
рассмотрено в [1].
2 Подход к построению системы
2.1 Концептуальное описание</p>
      <p>Весь процесс построения индекса инфляционных
ожиданий населения можно разделить на два
логических этапа: сбора данных и анализа полученных
данных. Общим для двух этапов может быть
хранилище, в которое поступают данные из модуля сбора
данных, а затем обрабатываются модулем анализа
данных. Результат работы модуля анализа данных
сохраняется в хранилище отчетов.</p>
      <p>Основываясь на данной концепции, рассмотрим
два варианта организации такой системы. В первом
случае система будет сохранять собранные данные в
базу данных, во втором – отправлять данные в оч
ередь, из которой модуль анализа данных будет
забирать сообщения.</p>
      <p>Для реализации концептуального прототипа был
выбран первый вариант, подразумевающий
последовательную работу модулей: вначале собираются
все данные, потом анализируются. Данный подход
имеет более простую реализацию, чем второй, а
также позволяет оперировать сразу со всей
выборкой данных.</p>
      <p>Второй подход, основанный на очереди
сообщений, подразумевает батчевую обработку данных на
лету. Такой подход более производителен: большая
скорость обработки данных и отсутствие требования
хранения всех данных в оперативной памяти.
Рисунок 1 Концептуальная схема системы
обработки данных</p>
      <p>Первый метод будем называть офлайновым,
второй – онлайновым, исходя из скорости обработки
поступающих данных.
2.2 Система с офлайн обработкой данных
Рассмотрим подробнее первый способ
организации приложения. Модуль сбора данных состоит из
«краулера», собирающего содержимое
интернетресурсов и очереди задач, в которую «краулер»
помещает ссылки на станицы, которые он планирует
посетить в дальнейшем. Загруженные страницы
программа сбора сохраняет в формате json в NoSQL
СУБД MongoDB. Использование данной базы
продиктовано необходимостью хранить структуры
данных, содержащие вложенные поля и имеющие
непостоянную структуру.</p>
      <p>Особенностью данного модуля является
поддержка режима распределенного сбора данных за
счет наличия внешней очереди задач, реализованной
с помощью сервера очередей RabbitMQ.</p>
      <p>Для реализации «краулера» использовался язык
Java, с помощью которого было построено
приложение, использующее многопоточные возможности
языка для ускорения сбора данных. Отказ от выбора
готового решения был обусловлен необходимостью
собирать данные из неоднородных источников, что
требует персонального подхода к извлечению
данных.
Рисунок 2 Схема реализации системы с офлайн
обработкой данных</p>
      <p>Модуль анализа данных был написан на языке
Python с использованием библиотек анализа данных
Pandas, Matplotlib, Scikit-learn. Исходный код
исследований хранился в формате блокнотов Jupyter. Для
изоляции окружения использовался Docker, такой
подход позволил добиться воспроизводимости
результатов, несмотря на возможные обновления
рабочей системы, влияющие на реализацию
алгоритмов машинного обучения.</p>
      <p>
        Для вторичного анализа данных, полученный от
основного модуля обработки данных, использовался
язык R, исходные коды которого так же хранились в
2.3 Система с онлайн обработкой данных
Рассмотренная ранее система наиболее
оптимальна для построения исследовательского
прототипа, призванного проверить базовую гипотезу.
Однако для использования системы в условиях
высокой нагрузки – большого потока данных от
множества «краулеров» – данная система плохо пригодна.
По этой причине предлагается рассмотреть
потоковую обработку данных, подразумевающую отправку
данных в очередь, а не напрямую в базу данных. Из
очереди сообщений должны формироваться «батчи»
данных, которые следует отправлять в систему
распределенной обработки данных, например, Apache
Spark [
        <xref ref-type="bibr" rid="ref1">3</xref>
        ]. Одновременно с этим стоит сохранять
данные в специальные долгосрочные хранилища,
имеющие пониженную цену на хранение данных по
сравнению со стандартными облачными
хранилищами. Примером долгосрочного хранилища
является Amazon Glacier, Azure LRS. Архивирование
данных позволяет воспроизвести вычисления,
полученные ранее.
Рисунок 3 Схема реализации системы с онлайн
обработкой данных
3 Построение индекса инфляционных
ожиданий
      </p>
      <p>Для построения индекса инфляционных
ожиданий использовались не все комментарии, а лишь
относящиеся к теме «инфляция». Для фильтрации
целевых комментариев использовались регулярные
выражения, составленные экспертом-экономистом.
В анализе оценивалось как абсолютное число
целевых комментариев в единицу времени, так и их в
ычисляемые свойства: эмоциональный окрас,
тематика. Тональность комментария можно рассматривать
как отношение пользователя к проблеме,
рассматриваемой в статье, к которой был оставлен
комментарий. Абсолютное число эмоционально окрашенных
и нейтральных комментариев в единицу времени
оказалось коррелированным с индексом,
предоставляемым ООО «ИНФОМ».
3.1 Оценка тональности комментариев</p>
      <p>Для оценки тональности комментариев
использовались методы машинного обучения, в частности
логистическая регрессия, метод опорных векторов.
Для обучения классификаторов использовалась
размеченная выборка, состоящая из русскоязычных
сообщений твиттера [2]. Классификатор решал
задачу бинарной классификации разделения
комментариев на классы «негативный» и «позитивный». На
основе вероятности отношения к классу
«негативный», предоставляемой обученным
классификатором, принималось решение об отнесении
комментариев к трем классам «позитивный», «нейтральный»,
«негативный». Дискретизация проводилась на
основе принадлежности к полуинтервалам и отрезку: [0,
0.25) [0.25, 0.75] (0.75, 1].
Рисунок 4 Дискретизация вероятности отнесения к
классу «негативный комментарий»</p>
      <p>Ниже представлены результаты оценки качества
классификации различных моделей и методов
предобработки данных, вычисленные на основе
выборки сообщений из русскоязычного твиттера [2] с
помощью метода перекрестной проверки с разбиением
на 10 частей.
Таблица 1 Оценка качества моделей
Алгоритм
Лог
регрессия
Метод
опорных
векторов
Предобработка Верность,%
Мешок слов 76.7</p>
      <p>TF-IDF 76.0
Мешок слов 75.0</p>
      <p>TF-IDF 76.3
Полученная модель, вычисляющая количество
эмоционально окрашенных комментариев, была
противопоставлена результатам индикатора на
основе опросов (традиционных подход).
Рисунок 5 Классический индикатор и индикатор на
основе методов машинного обучения</p>
      <p>Из Рис. 4 видно, что полученный индикатор
опережает индикатор, полученный традиционным
путем.
3.2 Тематическое моделирование комментариев
Для анализа содержания комментариев было
предложено использовать вероятностное
тематическое моделирование. Такой подход позволил нам
рассмотреть темы и их долю в различные периоды
времени, избежав чтения всех комментариев
экспертом. Вместо этого предстоит лишь рассмотреть
небольшое число тем. Каждая тема представлена
ключевыми словами, характеризующими ее. Для
использования математических моделей
тематического моделирования требуется предварительно
обработать текст: нормализовать слова и удалить стоп
слова и спец. символы. Для решения данной задачи
использовалась библиотека NLTK и pymorphy2.</p>
      <p>
        В качестве инструмента для вероятностного
тематического моделирования был использован
BigARTM [
        <xref ref-type="bibr" rid="ref2">4</xref>
        ], который реализует модуль ARTM
(Аддитивная регуляризация тематических моделей)
в качестве математической модели взаимодействия
документов, терминов и тем.
      </p>
      <p>
        Классические модели тематического
моделирования малоинтерпретируемы на коротких текстах.
По этой причине использовалось нестандартное
представление документов – WNTM [
        <xref ref-type="bibr" rid="ref3">5</xref>
        ], которое
рассматривает взаимную встречаемость слов: для
каждого слова рассматривается его локальный
контекст.
      </p>
      <p>Количество тем для построения модели,
настраивается пользователем самостоятельно. При этом
увеличение числа тем ведет к слиянию менее
популярных тем в одну.</p>
      <p>На данный момент авторами не выработана
окончательная методика визуализации тем с
привязкой ко времени. Концептуальное видение решение
данной проблемы изображено на Рис. 6. График
отражает общий интерес к теме, выражающийся в
абсолютном количестве сообщений, содержащих
паттерн темы (удовлетворяют регулярному
выражению). На оси абсцисс отложены даты, на оси
ординат – абсолютное количество сообщений.
Окружность, расположенная в один из моментов времени,
демонстрирует момент времени, в окрестности
которого производится детализация подтем
посредством тематического моделирования. Список тем,
характеризующийся ключевыми словами,
изображен в рамке под графиком.
Рисунок 6 Концепция визуализации тематической
модели
Авторы также планируют разработать подход
для визуализации тем с учетом географии
пользователей, оставляющих комментарии.
4 Заключение</p>
      <p>Разработан подход для получения
высокочастотной оценки инфляционных ожиданий населения РФ,
который был реализован в виде прототипа системы
анализа комментариев. Полученные практические
результаты теоретически обоснованы и
опубликованы в тематическом журнале [1].</p>
      <p>Для решения данной задачи был самостоятельно
реализован модуль сбора данных, имеющий
специализированные компоненты извлечения данных для
конкретных источников данных. Особенностью
этого модуля является возможность организации
распределенного сбора информации.
Исследовательский код, расположенный в модуле анализа данных,
использовал готовые библиотеки анализа данных.
Авторы видят возможность реализации собственной
тематической модели на базе BigARTM, которая бы
учитывала дополнительные факторы, например,
географию пользователей.</p>
      <p>Представленный подход к построению
индикатора позволяет расширять список источников
комментариев, а также внести изменения в модуль
анализа данных уже в процессе эксплуатации системы,
уточняя значение индекса посредствам повторного
вычисления с использованием новых данных.</p>
      <p>Область применения данного подхода может
выходить за рамки оценки инфляционных ожиданий и
использоваться для отслеживания интереса
пользователей к различным темам. Примером таких тем
может быть отношение пользователей к
коммерческим организациям или публичным лицам.
Отслеживание интереса позволит оперативно
информировать PR агентства об имидже клиента.</p>
      <p>Подход к построению системы, представленный
в статье, позволяет адаптировать систему для
работы с большими данными. Увеличение охвата
пользователей приведет к более точной оценке
отношения пользователей к теме.</p>
      <p>Авторами не решена проблема визуализации
тематической модели для комментариев с учетом
времени их публикации. Планируется модифицировать
метод фильтрации комментариев, который бы
учитывал место проживание пользователя. Отдельной
подзадачей является идентификация ботов среди
комментаторов для исключения их из рассмотрения,
либо выделения в отдельную группу для
информирования исследователя об их наличии.
Литература</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [3]
          <string-name>
            <surname>Клеменков</surname>
            ,
            <given-names>П.</given-names>
          </string-name>
          <article-title>Пайплайн машинного обучения на Apache Spark</article-title>
          . Конференция HighLoad++ (
          <year>2016</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [4]
          <string-name>
            <surname>Vorontsov</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          <article-title>BigARTM: Open Source Library for Regularized Multimodal Topic Modeling of Large Collections</article-title>
          .
          <source>Int. Conf. on Analysis of Images, Social Networks and Texts</source>
          , pp.
          <fpage>370</fpage>
          -
          <lpage>381</lpage>
          . Springer International Publishing (
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [5]
          <string-name>
            <surname>Zuo</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Jichang</surname>
            <given-names>Z.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ke</surname>
            <given-names>X</given-names>
          </string-name>
          .
          <article-title>Word Network Topic Model: a Simple But General Solution for Short and Imbalanced Texts</article-title>
          .
          <source>arXiv preprint arXiv:1412.5404</source>
          (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [6]
          <string-name>
            <surname>Pang</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lee</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Vaithyanathan</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Thumbs up?: Sentiment Classification using Machine Learning Techniques</article-title>
          .
          <source>Proc. of the ACL-02 Сonf. on Empirical Methods in Natural Language Processing</source>
          ,
          <volume>10</volume>
          , pp.
          <fpage>79</fpage>
          -
          <lpage>86</lpage>
          . Association for Computational Linguistics (
          <year>2002</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [7]
          <string-name>
            <surname>Rao</surname>
          </string-name>
          ,. Y.:
          <article-title>Building Emotional Dictionary for Sentiment Analysis of Online News</article-title>
          .
          <source>World Wide, (4)</source>
          , pp.
          <volume>723</volume>
          (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [8]
          <string-name>
            <surname>Chang</surname>
            ,
            <given-names>J</given-names>
          </string-name>
          . Reading tea leaves:
          <source>How Humans Interpret Topic Models. Advances in Neural Information Processing Systems</source>
          , pp.
          <fpage>288</fpage>
          -
          <lpage>296</lpage>
          (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>