Фото RetroSupply на Unsplash



Обзор

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

Проанализируйте постановку проблемы

Это основное требование, чтобы узнать все подробности о проблеме. Это,

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

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



Фото Джейсона Люна на Unsplash



Анализ данных

Первая важная часть для рассмотрения текстовых данных: требуется ли очистка текста? То есть нас интересует только соответствующий текст, а не числа, HTTP-ссылки, символы с диакритическими знаками и т. д.

Очистка текста



Фото Creative Exchange на Unsplash



Если тексты, с которыми мы имеем дело, представляют собой небольшие предложения, такие как твиты, и нам нужно предсказать настроение, то нет особого смысла удалять стоп-слова, потому что большинство стоп-слов, включенных в такие библиотеки, как NLTK, Gensim, spaCy и т. д., вместо этого полезно правильно предсказать правильное настроение, и их удаление может привести к снижению производительности модели. Поэтому рекомендуется соблюдать общие стоп-слова, содержащиеся в этих библиотеках, прежде чем удалять их.
Например. ниже приведен список стоп-слов, содержащихся в корпусе nltk:

Выделение ключевых слов

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

Сокращение словарного запаса

Если тексты слишком длинные, есть вероятность того, что слова будут использоваться более чем в одной форме, которая в контексте имеет одно и то же значение.
Например: список из 5 слов в приведенном ниже коде сокращен до 1 слова с корнем, что также помогло сохранить соответствующее значение слова. Таким образом, уменьшается размер словаря для модели.

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

Тип текста и цель

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



Фото Энгина Акюрта на Unsplash



Тип модели

В большинстве случаев модели размещаются на облачных серверах, и мы не собираемся использовать лишние вычислительные мощности и ресурсы.
Поэтому, если векторы слов не очень велики после всей предварительной обработки текста, мы можем попробовать обучение и прогнозы. с классификаторами sklearn, такими как логистическая регрессия, наивный байесовский анализ, случайный лес, SVM и т. д.
Если есть необходимость в лучшем понимании значения предложения, мы можем перейти к методам глубокого обучения, использующим последовательность текста для подачи контекст во вложения слов и использовать такие архитектуры, как RNN, LSTM, или современные модели, такие как BERT и т. д.

Вывод

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

Если у вас есть какие-либо мысли, идеи и предложения, поделитесь ими и дайте мне знать. Спасибо за чтение!