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

Классификация текста может использоваться для обнаружения спама, распознавания языка, анализа тональности, и список очень длинный. @ Opla.ai, мы занимаемся классификацией текста, например, для выполнения распознавания намерений в нашем конструкторе чат-ботов. Фактически, имея несколько категорий намерений, классификация намерений позволяет назначить правильное намерение высказыванию пользователя.

В глобальном масштабе классификация текста больше не является загадочной задачей, особенно с использованием самых простых алгоритмов. Вы можете легко найти в Интернете отличные примеры того, как это сделать. Однако в большинстве этих статей / руководств объясняется, как научиться классификации, ИМЕЮЩИЕ обучающие данные. Обычно мы можем найти стандартные обучающие данные для классификации, что отлично подходит для начала с классификацией текста и для сравнения моделей. Хотя многие из нас заинтересованы в этой задаче, потому что у них есть особая потребность в своей компании / проекте. И тут мы начинаем задумываться о проблеме с данными, поскольку текстовые классификаторы бесполезны без достаточного количества обучающих данных. Их качество тоже имеет значение.

Иногда у нас вообще нет данных. Значит, нам нужно его создать или собрать. Но в других случаях у нас есть данные, но их недостаточно для достижения высокой точности классификации. Эта проблема возникает, в частности, при работе с языками, отличными от английского, или также с необычными классификационными метками. В этой статье мы попытаемся частично ответить на вопрос как обучить классификационную модель на небольших данных? Ответ на этот вопрос связан с областью исследований Малый ИИ, которая пытается применить модели машинного обучения к небольшим наборам данных. Вы можете найти более подробную информацию о Small AI в нашей статье о будущих направлениях AI.

Увеличение объема данных, quésaco?

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

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

Подходы

Перестановка слов и предложений

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

Замена слова

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

«Не паркуйте свой автомобиль в этом месте»

«Не оставляйте свой мотоцикл в этом месте»

Для замены слов есть несколько способов найти заместители. Наиболее подходящий способ - заменить слова их синонимами, а выражения - их пересказами. Приведенный ниже фрагмент кода позволяет это сделать. Я использовал список перефразировок из PPDB. Вы можете найти весь код вместе с использованными данными здесь.

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

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

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

Манипуляции с синтаксическим деревом

Эта опция позволяет генерировать синтаксические пересказы исходного предложения. Многие синтаксические преобразования могут быть применены для создания перефразирования, таких как переход от активного голоса к пассивному, разбиение предложения, содержащего придаточное предложение и т. Д. Ниже представлены три примера синтаксического перефразирования. Они взяты из статьи (Dras, 1997) об использовании синхронных тегов для перефразирования.

(1) а. Продавец сделал попытку утомить Стивена.

(1) б. Продавец попытался утомить Стивена.

(2) а. Конструктор, поднесший конкурсанта к детектору лжи, вызвал одобрение публики.

(2) б. Конструктор проверил конкурсантку на детекторе лжи. Он получил аплодисменты публики.

(3) а. Улыбка нарушила его самообладание.

(3) б. Его самообладание нарушила улыбка.

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

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

Расширение запроса

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

Заключение

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

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



ЧАУДХАРИ, К.Р. Обработка естественного языка. Инженерный колледж MBM, Джодхпур, Индия, конспект лекций, 2012 г.

ДРАС, Марк. Представление перефразирования с помощью синхронных тегов. В: Материалы восьмой конференции Европейского отделения Ассоциации компьютерной лингвистики. Ассоциация компьютерной лингвистики, 1997. стр. 516–518.

КОБАЯСИ, Сосукэ. Контекстное расширение: увеличение данных с помощью слов с парадигматическими отношениями. Препринт arXiv arXiv: 1805.06201, 2018.

СИМАРД, Патрис Й., СТЕЙНКРАУС, Дэйв и ПЛАТТ, Джон К. Лучшие практики сверточных нейронных сетей, применяемые для визуального анализа документов. В: null. IEEE, 2003. стр. 958.