Давайте обсудим недостатки некоторых методов и способы их улучшения.

Люди используют множество техник предварительной обработки текста, но сколько из них действительно полезно? Я работаю с текстовыми данными почти 6 месяцев и чувствую, что есть много проблем, когда вы работаете над продуктом, который будет использоваться многими людьми.

Вот несколько техник, которые вы встретите повсюду:

  1. Удаление цифр, знаков препинания, смайликов и т. Д.
  2. Удаление стоп-слов
  3. Лемматизация или выделение корней слов

Что происходит, когда вы удаляете числа?

Числа играют важную роль в анализе настроений. Как? Предположим, вы предоставляете услугу анализа настроений для приложения Food Delivering App, которое принимает обратную связь через текст. Теперь, если во время предварительной обработки текста вы удалите все числа, то как вы собираетесь различать 2 отзыва, в которых говорится: «Я оцениваю еду на 5 из 5» и «Я оцениваю еду на 1 из 5». Это всего лишь один пример. Во многих случаях числа играют роль.

Что происходит, когда вы удаляете смайлы?

Emojis может помочь вам правильно оценить настроение человека, когда он пишет комментарий. Как? Если кто-то пишет отзыв «Еда была», а кто-то другой написал: «Еда была». С помощью эмодзи хорошо видно, что человек пытается сказать. Есть еще множество случаев.

Что происходит, когда вы удаляете стоп-слова?

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



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

Если вы используете такие методы, как TF-IDF, Count Vectorizer, BOW, тогда необходимо удалить стоп-слова (не все), иначе они создают много шума. Методы глубокого обучения, использующие предварительно обученное встраивание, в настоящее время являются лучшими методами для решения всех этих проблем. Преимущество методов глубокого обучения в том, что они не требуют какой-либо предварительной обработки. Если вас интересуют методы глубокого обучения, вы можете прочитать мою статью об этом



Что происходит, когда вы лемматизируете или стеблеете?

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

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

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

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

  1. Начнем с вопроса о запрещенных словах. Лучшее решение этой проблемы - не удалять каждое слово, которое может быть каким-то образом полезно. Однако лучше всего было бы использовать методы глубокого обучения с предварительно обученным встраиванием, например Glove, которые не требуют удаления стоп-слов.
  2. Давайте поговорим о второй проблеме - смайликах. Решение, которое, как мне кажется, будет работать, - это создать словарь Python и заменить все вхождения смайликов некоторыми словами. Примером этого может быть замена «😊» на «счастливый» или что-то еще. Хотя такой подход выглядит очень наивным, но на самом деле он все же лучше, чем удаление эмодзи.
  3. А как насчет чисел? Глубокое обучение - это решение.

Заключение

Действительно ли методы глубокого обучения хороши?

Да, они намного мощнее. Методы DL учитывают порядок слов при прогнозировании. Если вы смешиваете слова предложения и применяете TF-IDF, CountVectorizer или BOW, то вероятность получения того же результата слишком высока.

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

Если вам интересно узнать больше о том, как работает анализ тональности, вы можете прочитать его здесь - https://monkeylearn.com/sentiment-analysis/.