Назад в библиотеку

Особенности применения подходов Bag-of-Words и Word2Vec и контекста предложения для автоматического определения тональности текста

Автор: Пилипенко А. С., Коломойцева И. А.
Источник: А.С. Пилипенко, И.А. Коломойцева. Особенности применения подходов Bag-of-Words и Word2Vec и контекста предложения для автоматического определения тональности текста // Программная инженерия: методы и технологии разработки информационно-вычислительных систем (ПИИВС – 2020) / Сборник материалов ПИИВС – 2020. – Донецк, ДонНТУ – 2020.


Аннотация

Пилипенко А.С., Коломойцева И.А. В статье рассмотрены особенности применения подходов Bag-of-Words и Word2Vec, а также достоинства и недостатки использования контекста предложения при реализации алгоритма определения тональности текста.

Введение

Анализ тональности текста – класс методов контент-анализа в компьютерной лингвистике, предназначенный для автоматизированного выявления в текстах эмоционально окрашенной лексики и эмоциональной оценки авторов (мнений) по отношению к объектам, речь о которых идёт в тексте [1].

Bag-of-words – это упрощенное представление, используемое при обработке естественного языка и поиске информации. В этой модели текст (например, предложение или документ) представлен как мешок (мультимножество) своих слов без учета грамматики и даже порядка слов, но с сохранением множественности (см. рис.1) [2] [3].

Рисунок 1 – Модель Bag-of-words
Рисунок 1 – Модель Bag-of-words

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

Word2vec – общее название для совокупности моделей на основе искусственных нейронных сетей, предназначенных для получения векторных представлений слов на естественном языке [4].

На самом деле Word2Vec – это два разных метода: непрерывный мешок слов (CBOW, непрерывный мешок слов, Continuous Bag of Words) и skip-gram. Цель метода CBOW – предсказать слово на основе близлежащих слов. Для skip-gramm обратная задача состоит в том, чтобы предсказать набор ближайших слов на основе одного слова (см. рис.2).

Оба метода используют искусственные нейронные сети в качестве алгоритмов классификации. Изначально каждое слово в словаре представляет собой случайный N-мерный вектор. Во время обучения алгоритм формирует оптимальный вектор для каждого слова, используя метод CBOW или skip-gram [5].

Рисунок 2 – Схема алгоритма на основе Word2Vec
Рисунок 2 – Схема алгоритма на основе Word2Vec

Как видно из алгоритма, Word2Vec использует нейронные сети для сортировки слов в классы (группы) по смыслу. Например, слово человечество и люди имеют одинаковую семантику и будут выступать в качестве одной семантической группы (класса) при сравнении со словами документов (текста), в отличии от Bag-of-words.

Алгоритм по определению тональности текста, представленный в [6] является достаточно простым, так как использует Bag-of-Words. Планируется, по возможности, его модифицировать, усложнить с помощью Word2Vec. Схема алгоритма, словесное описание которого приведено в [6], представлен на рисунке 3.

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

Рисунок 3 – Схема алгоритма, использующего подход Bag-of-Words
Рисунок 3 – Схема алгоритма, использующего подход Bag-of-Words

Оценка тональности текста с помощью контекста предложения

Возникает необходимость оценивать также контекст предложения. То есть предполагается, что также оценка текста зависит и от построения предложений в том числе. Рассмотрим основные и самые необходимые конструкции следования частей речи в предложении, которые могут влиять на определение тональности предложения и текста в целом (см. рис.4) [7].

На рисунке 4 отображено:

Рисунок 4 – Конструкции предложений с учётом частей речи
Рисунок 4 – Конструкции предложений с учётом частей речи

Как видно из рисунка 4 на алгоритм может повлиять конструкции предложения в отношении таких частей речи: существительное, глагол, наречие, прилагательное. Другие части речи либо практически не влияют в глобальном масштабе текста, либо их оценка тональности равна 0.

После определения конструкции предложения необходимо посчитать так называемую меру PMI (Pointwise Mutual Information, точечная взаимная информация). Нужно каждой паре слов дать оценку по формуле, отображенной на рисунке 5.

Рисунок 5 – Мера PMI
Рисунок 5 – Мера PMI

В формуле, представленной на рисунке 5, x и у являются словами. Если слова x и y встречаются вместе, а не отдельно, то у них похожая семантическая ориентация (иначе говоря, это означает, что эти слова являются синонимами). P(x, y) – вероятность встретить два слова в одном тексте. P(x) и P(y) – вероятность встретить эти слова вообще.

После было предложено мерить тональность слова/шаблона как PMI между словом (шаблоном) и словом отлично (прекрасно и другие позитивные слова), затем мерить PMI со словом плохой (и другие отрицательные), а после вычитать (отнять) одно из другого. Эта разница будет называться Semantic Orientation (SO).

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

Недостатками данного алгоритма можно считать то, что данное определение может выполняться достаточно долгое время (зависит от текста). Длительность расчётов растёт с каждым словом гораздо быстрее, чем без него. Более того, данный алгоритм также не даст точной оценки тональности текста.

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

Алгоритм можно модернизировать перебором всех конструкций, даже входящих друг в друга или большего их количества. К примеру из предложения Я люблю читать книгу можно получить: Я люблю, люблю читать, читать книгу, а также Я, люблю, …, читать книгу… После этого получить общую тональность, которая теоретически будет более точной, чем стандартный алгоритм, более того, он уже включит в себя либо Word2Vec или Bag-of-Words, однако следует также учесть то, что длительность выполнения алгоритма сильно возрастёт, а также его будет очень сложно отладить и отрегулировать.

Есть более простой вариант данного алгоритма для машинного обучения, использующий так называемые Биграммы. То есть каждые 2 слова будут отдельной конструкцией. Слова при построении биграмм могут пересекаться. К примеру, в предложении Алгоритм правильно пишет слова конструкциями в таком случае будут: Алгоритм правильно, правильно пишет, пишет слова. Это упростить задачу для машинного обучения, а также будет получен весьма качественный результат, так как оценка идёт по каждым двум словам. Также данный подход уменьшит время выполнения алгоритма, чем другие, раннее представленные в статье. Однако оценка будет не такой точной.

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

Стемминг – это процесс нахождения основы слова для заданного исходного слова. Основа слова не обязательно совпадает с морфологическим корнем слова [8].

Лемматизация – это алгоритмический процесс нахождения леммы слова в зависимости от его значения. Лемматизация обычно относится к морфологическому анализу слов, целью которого является удаление флективных окончаний. Это помогает в возвращении базовой или словарной формы слова, которое известно как лемма [9].

Также желательно перед тем как начал работать алгоритм решить проблему с ошибками и аббревиатурами. Аббревиатуры иногда следует оставлять, так как они могут влиять на эмоциональную составляющую текста и на оценку в целом. Дополнительно можно использовать словарь аббревиатур, но в этом случае возникают свои сложности, так как некоторые одинаковые аббревиатуры обозначают разные места, вещи и т.д. С ошибками, опечатками всё немного сложнее. Можно выводить пользователю ошибки и просить их исправить перед работой алгоритма, однако что тогда делать со специальными ошибками или авторскими словами, жаргонизмами и т.д. ? В таком случае предлагается сделать словарь таких слов, а для тех, которые туда не попадут выводить предупреждение до выполнения алгоритма и после в журнале ошибок.

Выводы

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

Список использованной литературы

  1. Bo Pang, Lillian Lee. Opinion Mining and Sentiment Analysis (англ.) // Foundations and Trends in Information Retrieval : журнал. – 2008. – No. 2. – P. 1 – 135.
  2. Sivic, Josef (April 2009). Efficient visual search of videos cast as text retrieval (PDF). IEEE TRANSACTIONS ON PATTERN ANALYSIS AND MACHINE INTELLIGENCE, VOL. 31, NO.
  3. Bag-of-words image [Электронный ресурс] // Bag-of-words. – Режим доступа: https://www.bridgesofrivermist.com/r-build-bag-of-words. – Загл. с экрана.
  4. Word2Vec [Электронный ресурс] // Word2Vec. – Режим доступа: https://code.google.com/archive/p/word2vec/. – Загл. с экрана.
  5. Sentiment Analysis using Python [Электронный ресурс] // Word2Vec. – Режим доступа: https://www.datasciencetoday.net/index.php/en-us/tutorials-top/162-sentiment-analysis-using-python-part-ii-doc2vec-vs-word2vec – Загл. с экрана.
  6. Пилипенко А.С., Коломойцева И. А. Определение тональности текста на основе модели Bag-of-words / А. С. Пилипенко, И. А. Коломойцева // Информатика, управляющие системы, математическое и компьютерное моделирование. – 2020. – No 1.– С. 77 – 81.
  7. Анализ тональности текста. Альтернативный подход [Электронный ресурс] // Определение тональности текста через контекст предложений. – Режим доступа: https://pikabu.ru/story/analiz_tonalnosti_teksta_alternativnyiy_podkhod_i_nemnogo_tekhnicheskikh_momentov_5438070 – Загл. с экрана.
  8. Стемминг [Электронный ресурс] // Стемминг. – Режим доступа: https://ru.wikipedia.org/wiki/%D0%A1%D1%82%D0%B5%D0%BC%D0%BC%D0%B8%D0%BD%D0%B3 – Загл. с экрана.
  9. Лемматизация [Электронный ресурс] // Лемматизация. – Режим доступа: https://ru.wikipedia.org/wiki/%D0%9B%D0%B5%D0%BC%D0%BC%D0%B0%D1%82%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F – Загл. с экрана.