Особенности текста в машинном обучении

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

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

Запрещенные слова относятся к таким словам, как a, the, и, this, , и многие другие такие слова перечислены в списке запрещенных слов. Эти слова не добавляют контекста предложению.

Мешок слов

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

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

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

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

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

  • Удаление запрещенных слов. Удалите такие слова, как a, the, и, it, is и т. д.. Это уменьшит размер пространства функций.
  • Фильтр на основе частоты. Наряду с игнорируемыми словами мы можем использовать частотный подсчет слов и удалять слова, которые встречаются часто, но придают меньшее значение контексту предложения.
  • Построение - это задача НЛП, которая пытается разделить каждое слово до его основной лингвистической формы основы слова. Например, такие слова, как пловец, плавание, плавание, будут сопоставлены с одним словом плавать. Иногда это может больше навредить, чем помочь. Например, слова новое, новости - разные слова, но оба связаны со словом новое. Стемминг требует вычислительных затрат, и его преимущества зависят от приложения.
  • Разделение на части и теги частей речи - это техники НЛП, используемые для поиска значимых слов в предложении и использования их в качестве вектора признаков. Он находит словосочетания существительных и другие подобные детали для извлечения ключевых слов из предложения.

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

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

В отличие от набора слов, tf-idf создает нормализованное количество слов, где каждое количество слов делится на количество документов, в которых встречается это слово.

bow (w, d) = # раз слово w появляется в документе d.

tf-idf (w, d) = bow (w, d) x N / (# документов, в которых встречается слово w)

N - это общее количество документов. Дробь (N / (# документов, в которых встречается слово w)) известна как обратная частота документов.

Идея TF-IDF

Если слово встречается во всех документах, то его обратная частота в документе равна 1. Точно так же, если слово встречается в нескольких документах, то его обратная частота документа намного выше, чем 1. В качестве альтернативы мы можем использовать логарифмическое преобразование частоты обратного документа. Почему? Давайте посмотрим. Предположим, у нас есть 10000 документов, и в каждом из этих документов есть слово the . Оценка IDF становится 1. Теперь рассмотрим такое слово, как рынок , и оно встречается в 100 документах, тогда его оценка IDF становится 10000/100 = 100.

Теперь, сделав логарифмическое преобразование оценки IDF, мы получаем 0 для слова и 2 для слова рынок . Таким образом, преобразование журнала имеет тенденцию обнулять все слова, которые встречаются во всех документах. Фактически это означает, что слово удалено из пространства функций.

Таким образом, Tf-Idf делает редкие слова более заметными и эффективно игнорирует общие слова. Он тесно связан с частотным фильтром, но гораздо более элегантен с математической точки зрения, чем установка пороговых значений жесткого среза.

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

Ссылка

Разработка функций для машинного обучения

Первоначально опубликовано на https://mayurji.github.io.