NER — это задача извлечения именованных объектов из текста статьи, с другой стороны, цель — связать эти именованные объекты с таксономией, такой как Википедия.
Одним из возможных способов создания кандидатов для тегов является извлечение всех Именованных сущностей или Аспектов в тексте, представленном, например, записями Википедии об именованных сущностях в статье. Использование такого инструмента, как викифиер.

Хотя этот метод может генерировать адекватных кандидатов для других подходов, таких как извлечение ключевых фраз.

Этот подход сталкивается с двумя проблемами:

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

Извлечение ключевой фразы

Целью извлечения ключевых фраз является выделение основных токенов в тексте. Есть несколько методов. Это можно сделать, и они обычно делятся на 2 основные категории:

1. Неконтролируемые методы

Это простые методы, которые в основном ранжируют слова в статье на основе нескольких показателей и извлекают слова с самым высоким рейтингом. Эти методы можно разделить на статистические и графические:

Графические методы

В этих методах система представляет документ в виде графика, а затем ранжирует фразы на основе их оценки центральности, которая обычно рассчитывается с использованием PageRank или его варианта. Основное различие между этими методами заключается в том, как они строят граф и как рассчитываются веса вершин. Алгоритмы в этой категории включают (TextRank, SingleRank, TopicRank, TopicalPageRank, PositionRank, MultipartiteRank)

Статистические методы

В этом типе кандидаты ранжируются с использованием статистики их появления, в основном с использованием TFIDF, некоторые из методов в этой категории:

  • TFIDF: это самый простой способ. По сути, мы вычисляем оценку TFIDF для каждой N-граммы в тексте, а затем выбираем те, которые имеют наивысшую оценку TFIDF.
  • KPMiner: основной недостаток использования TFIDF заключается в том, что он по своей сути имеет предвзятость к более коротким n-граммам, поскольку они будут иметь более высокие оценки. В KPMiner система изменяет процесс выбора кандидатов, чтобы уменьшить количество ошибочных кандидатов, а затем добавляет повышающий коэффициент для изменения весов TFIDF.
  • YAKE: представляет метод, который опирается на локальные статистические характеристики каждого термина, а затем генерирует баллы, объединяя последовательные N-слов в ключевые фразы.
  • EmbedRank. В этом простом методе используются следующие шаги:
  • Кандидаты — это фразы, состоящие из нуля или более прилагательных, за которыми следует одно или несколько существительных.
  • Затем эти кандидаты и весь документ представляются с использованием Doc2Vec или Sent2Vec.
  • После этого каждый из кандидатов ранжируется на основе их косинусного сходства с вектором документа.

2. Контролируемые методы

  • KEA — очень известный алгоритм извлечения ключевых фраз. В основном он извлекает кандидатов из документов с использованием TFIDF, а затем используется обученная модель для ограничения набора кандидатов.

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

Другие вещи, которые следует учитывать при создании автоматического тегировщика контента с использованием машинного обучения и НЛП

  • Основное различие между извлечением ключевых фраз заключается в том, использует ли метод закрытый или открытый словарь. В закрытом случае экстрактор выбирает кандидатов только из предварительно заданного набора ключевых фраз. Это часто улучшает качество сгенерированных слов, но также требует создания набора. Это может уменьшить количество извлекаемых ключевых слов и может ограничить их до размер близкого набора.
  • Большинство вышеупомянутых алгоритмов уже реализованы в пакетах типа pke.
  • В некоторых статьях предлагается несколько шагов постобработки для улучшения качества извлеченных фраз:
  • В [Bennani-Smires, Kamil, et al. «Простое извлечение ключевой фразы без присмотра с использованием встраивания предложений». препринт arXiv arXiv:1801.04470 (2018).] авторы предлагают использовать максимальную предельную релевантность (MMR) для улучшения семантического разнообразия выбранных ключевых фраз. Они провели ручной эксперимент с участием 200 человек и обнаружили, что, хотя сокращение семантического перекрытия фраз не приводит к увеличению F-показателя, люди предпочитают более разнообразный выбор.
  • Несколько облачных сервисов, включая AWS comprehend и Azur Cognitive, поддерживают извлечение ключевых фраз за отдельную плату. Однако их производительность на неанглийских языках не всегда хороша.

Данные

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

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

Плюсы и минусы

  • Эти методы, как правило, очень просты и имеют очень высокую производительность.
  • Большинство из этих алгоритмов, таких как YAKE, например, многоязычны и обычно требуют для работы только список стоп-слов.
  • Неконтролируемые методы могут легко обобщаться на любую область и не требуют обучающих данных, даже для большинства контролируемых методов требуется очень небольшой объем обучающих данных.
  • Будучи экстрактивными, эти алгоритмы могут генерировать фразы только из исходного текста. Это означает, что сгенерированные ключевые фразы не могут абстрагировать содержимое, а сгенерированные ключевые фразы могут не подходить для группировки документов.
  • Качество ключевых фраз зависит от домена и используемого алгоритма.

Генерация ключевых фраз

Основным недостатком использования методов извлечения является тот факт, что в большинстве наборов данных значительная часть ключевых фраз явно не включена в текст.

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

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

  • Эти методы обычно зависят от языка и предметной области: модель, обученная на новостной статье, будет жалко обобщать статьи в Википедии. Это увеличивает стоимость включения других языков.
  • Глубокие модели часто требуют больше вычислений как на этапах обучения, так и на этапах вывода.
  • Эти методы требуют большого количества обучающих данных для обобщения. Однако, как мы упоминали выше, для некоторых областей, таких как новостные статьи, такие данные просто удалить.

Текстовые теги с использованием машинного обучения и НЛП

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

При таком подходе есть 2 основные проблемы:

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

Первая задача непростая. Эта задача решается несколькими задачами, особенно серия задач LSHTC. Модели, часто используемые для таких задач, включают усиление большого количества генеративных моделей или использование больших нейронных моделей, подобных тем, которые разработаны для задачи обнаружения объектов в компьютерном зрении.

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

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

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

Специальные решения

В [ Сайед, Зарин, Тим Финин и Анупам Джоши. «Википедия как онтология для описания документов». Студенческая коллекция UMBC (2008 г.).] был предложен очень интересный метод. Авторы в основном проиндексировали английскую Википедию с помощью поисковой системы Lucene. Затем для каждой новой статьи для создания тегов они использовали следующие шаги:

  • Используйте новую статью (или набор ее предложений, таких как резюме или заголовки) в качестве запроса к поисковой системе.
  • Отсортируйте результаты на основе их косинусного сходства со статьей и выберите первые N статей Википедии, которые похожи на входные данные.
  • Извлеките теги из категорий приведенных в Википедии статей и оцените их на основе их совпадения.
  • отфильтруйте ненужные теги, особенно административные теги, такие как (родился в 1990 году, умер в 1990 году, …), затем верните первые N тегов

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

Настраиваемая классификация текста по тегам

Некоторые коммерческие API, такие как TextRazor, предоставляют одну очень полезную услугу — настраиваемую классификацию текста. По сути, пользователь может определять свои собственные классы аналогично определению своих интересов на таких сайтах, как quora. Далее модель может классифицировать новые статьи по заранее определенным классам.

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

Настраиваемую систему классификации можно реализовать, заставив пользователя определять свои собственные классы как набор тегов, например, из Википедии, например, мы можем определить класс футболистов, как следующий набор {Месси, Роналду, …}.

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

Если исходные категории исходят из предопределенной таксономии, как в случае Википедии или DMOZ, гораздо проще определить специальные классы или использовать предопределенные таксономии.

Вывод

  • Существует несколько подходов к реализации системы автоматической маркировки, их можно в целом разделить на методы, основанные на ключевых фразах, на основе классификации и специальные методы.
  • Для простых случаев использования неконтролируемые методы извлечения ключевых фраз обеспечивают простое многоязычное решение задачи тегирования, но их результаты могут быть неудовлетворительными для всех случаев, и они не могут генерировать абстрактные концепции, которые резюмируют весь смысл статьи.
  • Более продвинутые контролируемые подходы, такие как генерация ключевых фраз и контролируемая маркировка, обеспечивают лучшие и более абстрактные результаты за счет меньшего обобщения и увеличения объема вычислений. Они также требуют больше времени для реализации из-за времени, затрачиваемого на сбор данных и обучение моделей. Однако довольно просто автоматически создавать достаточно большие наборы данных для этой задачи.
  • Подход, представленный в [Syed, Zareen, Tim Finin, and Anupam Joshi. «Википедия как онтология для описания документов». Студенческая коллекция UMBC (2008 г.).] является довольно общим и простым, и для его реализации можно использовать API-интерфейсы.
  • По моему мнению, самый простой способ создать систему тегов – это объединить неглубокое извлечение ключевых фраз с тегами из WikiMedia для создания адекватных тегов. Если качество сгенерированных тегов неудовлетворительно для вашего приложения или если вы хотите поддерживать ограниченный набор тегов, вы можете рассмотреть более надежные варианты, такие как генерация ключевых фраз или контролируемое тегирование.
  • Одним из замечательных применений автотегера является возможность создания настраиваемой пользователем системы классификации текста. Такая система может быть более полезной, если теги исходят из уже установленной таксономии.