Giter VIP home page Giter VIP logo

semanticgrouping's Introduction

Моделирование семантически однородных групп для лингвистических исследований

Данная работа посвящена инструменту генерации и предсказания семантических групп на материале Толкового словаря русского языка С. И. Ожегова. В основе инструмента заложен алгоритм векторизации, который преобразует корпус толкового словаря в векторное пространство tf-idf и алгоритм кластеризации, который отвечает за генерацию семантически однородных групп и предсказание принадлежности некоторого слово к одной из этих групп. Данный инструмент может быть применим ко множеству задач компьютерной лингвистики, начиная от извлечения языковых единиц и классификации по их семантике до семантической разметки некоторого корпуса текстов.

Computational linguistics, semantic grouping, word-sense induction, word class tagging.

Введение

В компьютерной лингвистике существует множество задач, когда при обработке естественного языка необходимо сделать определенный вывод, опираясь на семантику. В таких задачах исследователи могут фокусироваться на разных аспектах. В некоторых задачах используется семантическая разметка корпуса, которая может быть осуществлена вручную при помощи согласованных действий разметчиков (Рахилина, 2006). В других задачах полагаются на автоматическую разметку, которая обычно базируется на семантических сетях, например, таких как WordNet или FrameNet. Для некоторых задач, имеющих дело с уже размеченными по семантике текстами, существенно разрешение лексико-семантической омонимии (Gale, 1993), чтобы достигнуть единичного сопоставления фрагмента текста и его значения.

Эта работа представляет материал для лингвистических исследований другого рода, имеющих целью не семантическую разметку некоторого текста, а апеллирование к семантическим группам. Некоторые из разрабатываемых лингвистических программ зачастую требуют точечную проверку на семантику определенного фрагмента. К примеру, при компьютерно-лингвистическом исследовании вводных конструкций, для извлечения и классификации вводных конструкций может быть релевантно знать значение глагола или существительного. Например, «к счастью» и «к сожалению» различны по своей семантике, поэтому должны попадать в разные классы вводных конструкций. Основанием для отнесения их в разные классы является значение существительного справа от предлога. Чтобы решить данную проблему классификации вводных потребовался бы ресурс, который умеет соотносить существительное с определенным семантическим классом. В этой работе представлено описание модуля, который способен генерировать списки семантических групп и относить заданный фрагмент текста с определенной группой, объединённой по семантике, чтобы решать задачи такого рода.

Идеология моделирования

Самыми популярными и показывающими хорошие результаты методами выявления семантически сходных слов являются методы дистрибутивной семантики. Прежде всего, стоит отметить word2vec и две его реализаций RusVectores (A.Kutuzov, 2017) и AdaGram (Bartunov et al., 2015). Методы дистрибутивной семантики опираются на дистрибуцию слова в массиве текстов, что дает возможность строить векторные представления слова и вычислять семантическую близость между языковыми единицами.

Однако методы дистрибутивной семантики будут плохо справляться с генерацией семантических групп для задачи про вводные конструкции, описанной выше. Проблема заключается в том, что значения слова в контексте – это не то же самое, что значение слова в принципе. К примеру, прилагательные «хороший» и «плохой» имеют очень похожую дистрибуцию, поэтому для таких систем как word2vec, эти два слова будут попадать в одну семантическую группу. Однако правильней было бы разграничивать положительные и отрицательные прилагательные.

Тем не менее, мы не ограничены в выборе корпуса текстов для обучения моделей дистрибутивной семантики. Это могут быть любые текстовые массивы, не только тексты из языковых корпусов или интернета. Поскольку нас интересует непосредственно значение слова со всеми его оттенками, то следует обратиться к ресурсам, где такое значение эксплицитно описано. Такими ресурсами являются современные толковые словари.

Существует несколько основных толковых словарей для русского языка. Прежде всего, это Толковый словарь живого великорусского языка, составленный В. И. Далем. Этот словарь предоставляет огромный материал для разрешения семантики слова, однако словарь выполнен в дореволюционной орфографии, к тому же, очень сложен для эталонного парсинга. Словарь современного русского литературного языка (БАС) также обладает большим количеством словарных статей, что очень ценно, поскольку больше языковых единиц смогут быть отнесены к определенной семантической группе. Кроме того, в словаре представлены лексика разных жанров и множество значений слов. Однако словарь не представлен в электронном виде в доступном варианте. Малый академический словарь (МАС), созданный на основе БАС, представляет собой его урезанный вариант. По назначению МАС сопоставим с Толковым словарем русского языка Д. Н. Ушакова, однако несколько меньше по размеру. Достоинством Толкового словаря Д. Н. Ушакова являются его большой объем и наличие интерфейса, что позволяет программно работать со словарем. Теми же достоинствами обладает Словарь русского языка С. И. Ожегова, поскольку он строился на основе Толкового словаря Д. Н. Ушакова.

Таким образом, отсекая словари с явными недостатками, остается два словаря Толковый словарь русского языка Д. Н. Ушакова и Словарь русского языка С. И. Ожегова. Чтобы выбрать словарь, который будет использоваться в качестве текстового корпуса, необходимо выяснить, насколько они системны, чтобы таким образом ограничить неудачное отнесение классов. Посмотрим на слова «счастье» и «сожаление» в двух словарях.

Слова Словарь Д. Н. Ушакова Словарь С. И. Ожегова
Счастье Состояние довольства, благополучия, радости от полноты жизни, от удовлетворения жизнью. Чувство и состояние полного, высшего удовлетворения
Сожаление о ком-чем. Чувство печали, скорби, раскаяния, вызываемое сознанием какой-н. утраты или непоправимости чего-н. Бесплодные сожаления о минувшем, жгучие упреки совести язвили его, как иглы. о ком-чем. Чувство печали, огорчения, вызванное утратой, сознанием невозможности изменить или осуществить что-н.

Таким образом, стоит остановиться на Словаре русского языка С. И. Ожегова, как на более позднем и более системном варианте. Проверка на несистемность для двух слов не может дать достоверных результатов о системности/несистемности словаря, однако мы ожидаем корреляцию между временем издания и исправлением несистемностей.

Обучив модель на корпусе выбранного словаря, где каждая новая словарная статья представлена как отдельный документ, получилось бы выявить слова близкие по их дефинициям. Однако в виду архитектуры таких систем как word2vec вычисление вектора для слова происходит на основании каждого вхождения слова в корпус текстов, то есть построение вектора основывается не только на дефиниции слова. К тому же, обучение на сравнительно небольшом корпусе (около 90 тысяч документов небольших словарных статей) не может дать хороших результатов. Соответственно, нужно придумать другой подход для решения поставленной задачи, который также бы использовал корпус на основе толкового словаря для русского языка.

Алгоритм генерации и предсказания семантической класса

Подход, описанный в этой работе, использует векторизацию tf-idf для получения векторного пространства. Это решение лучше, чем использование word2vec тем, что вектора высчитываются не для слова относительно его встречаемости в корпусе, а в вектор конвертируется сама словарная статья, то есть конкретное слово. Например, дано слово «кошка». Чтобы получить приемлемые результаты по word2vec, необходимо объединить словарный вход «кошка» и толкование в словаре. Однако слово «кошка» может встречаться в нескольких документах и в разных контекстах, что смоделирует нам вектор по слову «кошка» не на основании толкования, а на основании его дистрибуции в обучающем корпусе. С векторизацией tf-idf такой проблемы нет, потому что при tf-idf делается упор на встречаемость слова в одном документе и в разных документах. Таким образом, tf-idf вектор для словарной статьи будет представлен ненулевыми элементами, входящими в толкование для словарного входа, и нулевыми элементами для всех остальных слов словаря.

Чтобы получить векторное пространство для словаря, необходимо перевести каждое толкование из словаря в вектор tf-idf. Удовлетворяющая векторизация получается, если предварительно сделать нормализацию текста, в которую входят следующие пункты:

  1. Объединение заглавной единицы словарной статьи и ее толкования (для того, чтобы кросс-референция тоже учитывалась);
  2. Лемматизация;
  3. Токенизация;
  4. Удаление пунктуации и символов не русского алфавита;
  5. Удаление стоп-слов (в которые добавляются также все части речи отличные от глагола, существительного, прилагательного и наречия);
  6. Удаление низкочастотных слов (слова с частотность меньше трех);

Получив векторное пространство для толкового словаря, можно предсказать близость двух слов по значению, измеряя расстояние между их векторами. Можно использовать обычное косинусное расстояние между векторами, чтобы смоделировать семантические группы. Однако при вычислении косинусного расстояния остается очень много ручной работы, связанной с анализом получившихся групп, установлением порога и т.д. Для того, чтобы минимизировать затраченные человеческие ресурсы, используется алгоритм кластеризации, а именно K-means. Человеческие ресурсы используются только для того, чтобы определить параметры кластеризации, главным из которых является количество кластеров. В нашей модели используется улучшенная реализация алгоритма K-means – K-means++, которая подбирает значения начальных центроидов кластеров, а генерирует их рандомно, и количество кластеров равное 1 500. Таким образом, наша модель кластеризует полученные вектора толкового словаря по 1 500 семантическим группам.

В модели также реализована возможность не только генерировать различные семантические группы, но и предсказывать семантический кластер для слова по его вектору. Для этого на вход модели нужно подать слово, которое есть в Толковом словаре русского языка С. И. Ожегова. Данная функция как раз является релевантной для множества задач компьютерной лингвистики, что можно продемонстрировать на примере про извлечение и классификацию вводных конструкций. Когда необходимо классифицировать вводную конструкцию как указывающую на положительную и отрицательную эмоцию, то, используя алгоритм, описанный в этой работе, можно получить желаемый результат. При работе над этой задачей можно пользоваться следующей стратегией, которая может быть применима и к другим задачам подобного рода:

  1. Определить ключевые слова в классификации. В примере это слова «счастье» и «сожаление», поскольку классификация бинарная.
  2. Скомпилировать модель и предсказать в ней кластеры наших ключевых слов. Название кластеров будет выдаваться в числовом формате от 0 до 1 499, точно сопоставляя ключевое слово и кластер.
  3. Последовательно подавать модели слова, которые необходимо классифицировать. В примере про вводные конструкции это будет существительное, являющееся частью вводной конструкции.
  4. Модель выдаст кластер для каждого кандидата на классификацию. Совпадение с кластером одного из ключевых слов указывает на возможность точного отнесения вводной конструкции к определенному классу.

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

Семантическая группа «говорить» (глаголы речи) Семантическая группа «сожаление» (отрицательная эмоция) Семантическая группа «счастье» (положительная эмоция)
академизм горе благополучие
акцент горесть благословенный
басить грустинка веселый
бессловесный грусть весельчак
бредить жалость гребок
бредить кручина гулянка
брехать мрачный золотой
брюзжать охать идиллия
буркать печалиться комик
витийствовать печаль лукавство
врать печаль мажор
врать печальный осчастливливать
глаголать прискорбие праздничный
гнусавить скорбь радость
говорить сожаление развеселяться
говорить сокрушение резвый
говориться сокрушать ростра
городить уныние солнечный
грубить юдоль субретка
гуторить счастливец
дерзить счастливый

Заключение

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

Библиография

  1. S. Bartunov, D. Kondrashkin, A. Osokin, and D. Vetrov. (2015) Breaking sticks and ambiguities with adaptive skip-gram.
  2. Kutuzov, E. Kuzmenko. (2017) WebVectors: A Toolkit for Building Web Interfaces for Vector Semantic Models. In: Ignatov D. et al. (eds) Analysis of Images, Social Networks and Texts. AIST 2016. Communications in Computer and Information Science, vol 661. Springer, Cham
  3. W. Gale, K. Church, D. Yarowsky.(1993) A method for disambiguating word senses in a large corpus. // Computers and the Humanitzes. — Vol. 26. — Pp. 415–439.
  4. Винокур Г. О., проф. Ларин Б. А., Ожегов С. И., Томашевский Б. В., проф. Ушаков Д. Н. Толковый словарь русского языка: В 4 т. / Под ред. Д. Н. Ушакова. — М.: Государственный институт «Советская энциклопедия»
  5. Даль В. Толковый словарь живого великорусского языка: Т. 1-4. — М.: Русс. яз., 1989—1991.
  6. Ожегов С. И. Словарь русского языка. Филологический факультет СПбГУ.
  7. Рахилина Е.В., Кобрицов Б. П., Кустова Г. И., Ляшевская О. Н., Шеманаева О. Ю. (2006) Многозначность как прикладная проблема: лексико-семантическая разметка в корпусе русского языка. // Компьютерная лингвистика и интеллектуальные технологии: Труды Международного семинара Диалог‘2006 / Под ред. А.С.Нариньяни – М.: Наука – Т.2 - С.445-450
  8. Словарь русского языка: В 4-х т. / Евгеньева А. П. (ред.). — М., 1957—1961.
  9. Словарь современного русского литературного языка: В 17 т. / Под ред. В. И. Чернышёва. — М., Л.: Изд-во АН СССР, 1948—1965.

semanticgrouping's People

Contributors

maobedkova avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.