ИИ 101

Как работает классификация текста?

mm

Классификация текста – это процесс анализа последовательностей текста и присвоения им метки, помещая их в группу на основе их содержания. Классификация текста лежит в основе几乎 любой задачи ИИ или машинного обучения, связанной с обработкой естественного языка (NLP). С помощью классификации текста компьютерная программа может выполнять широкий спектр различных задач, таких как распознавание спама, анализ настроений и функции чат-ботов. Как именно работает классификация текста? Какие существуют разные методы классификации текста? Мы рассмотрим ответы на эти вопросы ниже.

Определение классификации текста

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

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

Как работает классификация текста?

Photo: Quinn Dombrowski via Flickr, CC BY SA 2.0 , (https://www.flickr.com/photos/quinnanya/4714794045)

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

Методы классификации текста на основе правил

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

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

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

Системы машинного обучения

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

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

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

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

Метод мешка слов

Метод мешка слов – один из наиболее часто используемых подходов для кодирования и представления текстовых данных. Термин “мешок слов” происходит от того, что вы по сути берете все слова в документах и помещаете их все в один “мешок” без учета порядка слов или грамматики, обращая внимание только на частоту слов в мешке. Это приводит к длинному массиву или вектору, содержащему единственное представление всех слов в входных документах. Итак, если существует 10000 уникальных слов всего во входных документах, векторы функций будут иметь длину 10000 слов. Это то, как рассчитывается размер мешка слов/вектора функций.

Photo: gk_ via Machinelearning.co, (https://machinelearnings.co/text-classification-using-neural-networks-f5cd7b8765c6)

После определения размера вектора функций каждый документ в списке всех документов получает свой собственный вектор, заполненный числами, указывающими, сколько раз слово в вопросе появляется в текущем документе. Это означает, что если слово “еда” появляется восемь раз в одном текстовом документе, то соответствующий вектор функций/массив функций будет иметь восемь в соответствующей позиции.

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

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

Частота термина – обратная частота документа (TF-IDF)

Другой способ представить документ на основе слов в нем – частота термина – обратная частота документа (TF-IDF). Подход TF-IDF также создает вектор, представляющий документ на основе слов в нем, но в отличие от метода мешка слов эти слова взвешиваются не только по частоте. TF-IDF учитывает важность слов в документах, пытаясь количественно оценить, насколько релевантно это слово теме документа. Иными словами, TF-IDF анализирует релевантность вместо частоты, а счетчики слов в векторе функций заменяются на балл TF-IDF, рассчитываемый с учетом всего набора данных.

Подход TF-IDF работает путем расчета частоты термина, количества раз, когда уникальные термины появляются в определенном документе. Однако TF-IDF также заботится о том, чтобы ограничить влияние очень распространенных слов, таких как “те”, “или” и “и”, поскольку эти “стоп-слова” очень распространены, но несут очень мало информации о содержании документа. Эти слова необходимо дисконтировать, что и делает часть “обратной частоты документа” TF-IDF. Это делается потому, что чем больше документов содержит определенное слово, тем менее полезно это слово для различения его от других документов в списке всех документов. Формула, используемая TF-IDF для расчета важности слова, предназначена для сохранения слов, которые наиболее часты и наиболее семантически богаты.

Векторы функций, созданные подходом TF-IDF, содержат нормализованные значения, сумма которых равна одному, присваивая каждому слову взвешенное значение, рассчитанное по формуле TF-IDF.

Встраивание слов

Встраивание слов – это методы представления текста, обеспечивающие, что слова с похожими значениями имеют похожие числовые представления.

Встраивание слов работают путем “векторизации” слов, то есть они представляют слова в виде векторов с действительными значениями в векторном пространстве. Векторы существуют в сетке или матрице и имеют направление и длину (или величину). При представлении слов в виде векторов слова преобразуются в векторы, состоящие из действительных значений. Каждое слово сопоставляется с одним вектором, а слова, имеющие похожие значения, имеют похожие направление и величину. Этот тип кодирования позволяет алгоритму машинного обучения учиться сложным отношениям между словами.

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

В результате встраивания слов лучше подходят для захвата контекста слов в предложении.

Существуют различные алгоритмы и подходы, используемые для создания встраиваний слов. Некоторые из наиболее распространенных и надежных методов встраивания слов включают: слои встраивания, word2vec и GloVe.

Слои встраивания

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

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

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

Word2Vec

Word2Vec – это еще один распространенный метод встраивания слов. Word2Vec использует статистические методы для преобразования слов в встраивания и оптимизирован для использования с моделями, основанными на нейронных сетях. Word2Vec был разработан исследователями Google и является одним из наиболее часто используемых методов встраивания, поскольку он надежно дает полезные и богатые встраивания. Представления Word2Vec полезны для выявления семантических и синтаксических общностей в языке. Это означает, что представления Word2Vec захватывают отношения между похожими понятиями, способные различать, что общность между “Королем” и “Королевой” – это королевская семья, и что “Король” подразумевает “мужчина”, а “Королева” подразумевает “женщина”.

GloVe

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

Блогер и программист с специализацией в Machine Learning и Deep Learning темах. Daniel надеется помочь другим использовать силу ИИ для социального блага.