Pull to refresh

Кластеризация и классификация больших Текстовых данных с помощью машинного обучения на Java. Статья #1 — Теория

Reading time 19 min
Views 15K
image

Данная статья будет состоять из 3 частей (Теория/Методы и алгоритмы для решение задач/Разработка и реализация на Java) для описания полной картины. Первая статья будет включать только теорию, чтобы подготовить умы читателей.

Цель статьи:

  • Частичная или полная автоматизация задачи кластеризации и классификации больших данных, а именно текстовых данных.
  • Применение алгоритмов машинного обучение “без учителя” (кластеризация) и “с учителем” (классификация).
  • Анализ текущих решений задач.

Задачки, которые будут рассматриваться в целом:

  1. Разработка и применение алгоритмов и методов обработки естественного языка.
  2. Разработка и применение методов кластеризации для определения кластерных групп входных документов.
  3. Применение методов классификации для определения предмета каждых кластерных групп.
  4. Разработка веб-интерфейса на основе Java Vaadin

Гипотезы, которые я вывел из задачки и при обучении теории:

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

Забегая вперед, кому интересен сам алгоритм, вот обзор.

Алгоритм программного обеспечение для машинного обучения состоит из 3 основных частей:

  1. Обработка естественного языка.
    1. токенизация;
    2. лемматизация;
    3. стоп-листинг;
    4. частота слов;

  2. Методы кластеризации.
    TF-IDF ;
    SVD;
    нахождение кластерных групп;
  3. Методы классификации – Aylien API.

Итак, начнем теорию.

1. Концепция машинного обучение


Машинное обучение ‒ это научное исследование алгоритмов и статистических моделей, которые компьютерные системы используют для эффективного выполнения конкретной задачи без использования явных инструкций, опираясь на шаблоны и выводы. В более простых словах можно сказать что машинное обучение – это наука о том, как заставить компьютера учиться на основе их опыта без фактического традиционного программирование, то есть без какого-либо вмешательства человеческой помощи. Данная наука стремится ответить на вопрос “как мы, то есть люди, можем построить компьютерные системы, которые автоматически улучшаются с опытом. И каковы фундаментальные законы, которые управляют всеми процессами обучения?”. Так же можно отметить что цель данной науки ‒ стремится к тому, чтобы сделать машиной “умной”. Так как на Земле самые умные существа – это люди, то можно смело сказать, что на данном этапе цель науки машинного обучение — это сделать машину с таким интеллектом, который будет максимально приближен к человеческому.


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


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


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

Но что именно означает машинное обучение для вычислительной машины (компьютера)? Митчелл Том в своих работах дал более формальное определение алгоритмам, используемых в машинном обучении: “ Говорят, что компьютерная программа обучается на основе опыта E по отношению к некоторому классу задач T и меры качества P, если качество решения задач из T, измеренное на основе P, улучшается с приобретением опыта E”. Для примера можно привести шахматы, где E это количество сыгранных партий в шахматах, T это задача играть в шахматы и победить партию, P вероятность того, что компьютер выиграет следующую партию. Машинное обучение будет увеличивать количество сыгранных партий – E, для того чтобы вероятность победы была ближе к абсолютной, то есть близка к 100 процентов. То есть машинное обучение должно “обучаться” на основе собственного опыта для решения задачи и цели и для увеличения точности выходных данных.


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

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



2. Определение больших данных в машинном обучении


Большие данные ‒ это любой источник данных, который имеет хотя бы одну из четырех общих характеристик:

  1. Объем ‒ количество генерируемых и хранимых данных. Размер данных определяет ценность и потенциальное знание, а также может ли он считаться большими данными или нет.
  2. Многообразие ‒ тип и характер данных. Большие данные могут быть из текста, изображения, аудио, видео.
  3. Скорость – в этом контексте, скорость, с которой данные генерируются и обрабатываются для удовлетворения требовании и задач. Большие данные часто доступны в режиме реального времени. По сравнению с малыми данными, большие данные создаются непрерывно. Есть два вида скорости, связанные с большими данными ‒ это частота генерации и частота обработки, записи и публикации.
  4. Достоверность ‒ это расширенное определение для больших данных, которое относится к качеству и значению данных. Качество данных может сильно варьироваться, влияя на конечный результат анализа или обработки.


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


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


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


Большие данные представляют собой общую область проблем и методов, используемых для доменов приложений, которые собирают и поддерживают огромные объемы необработанных данных для анализа данных по конкретным доменам. Развитию науки о больших данных в значительной степени способствовали современные информационные технологии, а также увеличение вычислительных ресурсов и ресурсов хранения данных. Технологических компаний, таких как Google, Yahoo, и Microsoft, и Amazon хранят данные, которые измеряются в пропорции экзабайт или больше. Более того, в социальных сетях, таких как Facebook, YouTube и Twitter, миллиарды пользователей постоянно генерируют очень большое количество данных. Различные организации инвестировали в разработку продуктов с использованием аналитики Больших Данных для решения их мониторинга, экспериментов, анализа данных, моделирования и других потребностей в знаниях и бизнесе, что делает его центральной темой в исследованиях науки о данных.


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


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


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


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



3. Виды машинного обучения


Машинное обучение, как науку, можно классифицировать на 3 основные категории в зависимости от характера обучения:

  1. обучение с учителем;
  2. обучение без учителя;
  3. обучение с подкреплением.

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



3.1. Обучение с учителем


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


Для того, чтобы решить проблему с целью применения обучения с учителем, необходимо выполнить следующие шаги:

  1. Определите тип обучающих примеров. Прежде всего, нужно решить какие данные должны использоваться в качестве обучающего набора.
  2. Сбор данных. Набор данных должен быть репрезентативным для реального использования функции. Таким образом, собирается набор входных объектов и соответствующие выходные данные.
  3. Определение входного представление объекта изучаемой функции. Точность изучаемой функции сильно зависит от того, как представлен входной объект. Как правило, входной объект преобразуется в вектор объектов, который содержит ряд объектов, описывающих объект. Количество функций не должно быть слишком большим, из-за «проклятия размерности», но должен содержать достаточно информации, чтобы точно предсказать результат.
  4. Сформулировать структуру изучаемой функции и соответствующий алгоритм обучения.
  5. Завершение проектирование и архитектуры. Применение алгоритма обучения на собранном обучающем наборе. Некоторые контролируемые алгоритмы обучения требуют от пользователя определения определенных параметров управления. Эти параметры могут быть скорректированы путем оптимизации производительности подмножества (называемого набором проверки) обучающего набора или путем перекрестной проверки.
  6. Оценка точности изученной функции. После настройки параметров и обучения, производительность функции должна измеряться на тестовом наборе, отдельном от обучающего набора данных.

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

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

Наиболее широко используемые и популярные алгоритмы обучения c учителем:

  • метод опорных векторов;
  • линейная регрессия;
  • логистическая регрессия;
  • наивный байесовский классификатор;
  • обучение дерева решений;
  • метод k-ближайших соседей;
  • искусственная нейронная сеть;
  • изучение сходства.

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

Обучающий набор данных состоит из n упорядоченных пар (x_1,y_1),(x_2,y_2),...,(x_n,y_n), где каждый x_i ‒ измерение или набор измерений одной точки данных, а y_i ‒ ответ для этой точки данных. Например, x_i может быть группой из пяти измерений для пациента в больнице, включая рост, вес, температуру, уровень сахара в крови и кровяное давление. Соответствующий y_i может быть классификацией пациента как «здоровый” или „больной“.

Тестовые данные в контролируемом обучении ‒ это еще один набор измерений m без ответа: (xn+1, xn+2,..., xn+m) * (x_(n+1),x_(n+2),...,x_(n+m) ). Как описано выше, цель состоит в том, чтобы сделать обоснованные предположения ответа для тестовых данных(например, “здоровый” или “ больной ”), делая выводы из построенной шаблонной модели, который был создан при обработке обучаемых данных.



3.3. Обучение с подкреплением


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


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


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


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


Машинное обучение так же можно классифицировать на основе требуемых результатов:

  1. классификация;
  2. кластеризация;
  3. регрессия.

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

  • линейная регрессия;
  • нелинейная регрессия;
  • векторная регрессия;
  • логистическая регрессия.

Кластеризация ‒ довольно простой метод для понимания. Объекты с аналогичными параметрами группируются вместе (в кластере). Все объекты в кластере более похожи друг на друга, чем на объекты других кластеров. Кластеризация ‒ это тип обучение без учителя, поскольку алгоритм сам определяет общие характеристики элементов в данных. Алгоритм интерпретирует параметры, составляющие каждый элемент, а затем группирует их соответствующим образом.

Категории кластеризации:

  • метод k-средних;
  • основанная на плотности пространственная кластеризация для приложений с шумами – DBSCAN;
  • алгоритм кластеризации OPTICS;
  • метод главных компонент.

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

  • EM-алгоритм;
  • метод моментов;
  • слепое разделение сигнала;
  • метод главных компонент;
  • анализ независимых компонент;
  • неотрицательное матричное разложение;
  • сингулярное разложение.

Классификация ‒ это процесс прогнозирования класса заданных точек данных. Классы иногда называются метками или категориями. Классификационное прогнозирующее моделирование представляет собой задачу аппроксимации функции отображения (f) от входных переменных (X) к дискретным выходным переменным (y). Классификация относится к категории обучение с учителем. Виды классификационных схем:

  • тезаурус;
  • таксономия;
  • модель данных;
  • транспортная сеть;
  • онтология.

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

  • метод опорных векторов;
  • логистическая регрессия;
  • наивный байесовский классификатор;
  • метод k-ближайших соседей;
  • искусственная нейронная сеть;
  • дерево принятия решений.

4. Машинное обучение для анализа текстовых данных


Анализе текстовых данных в машинном обучении используется методы регрессии, классификации и кластеризации. Данные методы были описаны в этой работе ранее. Но стоит отметить что есть главная отличие в анализе текстовых данных, так как сама обработка текста является очень сложной задачей в машинном обучении. Главная отличие – это интеллектуальный анализ текстовых данных. Так как текстовый документ для человека ‒ это набор слов, который несет смысл, для машины – это просто битовые данные. И задача интеллектуального анализа текстовых данных состоит в том, чтобы машина смогла понимать смысл текстового документа. Перед тем как использовать алгоритмы машинного обучение, нужно также применить методы обработки текстовых данных.


Обработка естественного языка (NLP) ‒ интеллектуальный анализ данных и методы машинного обучения используются вместе для автоматической классификации и обнаружения шаблонов из электронных документов. Основная цель анализа текста ‒ дать пользователям возможность извлекать информацию из текстовых ресурсов и заниматься такими операциями, как извлечение, классификация (машинное обучение) и суммирование. Анализ текста состоит из нескольких задач, таких как правильная аннотация к документам, соответствующее представление документа, уменьшение размерности для обработки алгоритмических вопросов и соответствующая функция классификатора для получения хорошего обобщения и избежание чрезмерной подгонки. Извлечение, интеграция и классификация электронных документов из различных источников и обнаружение знаний из этих документов имеют важное значение для исследовательских сообществ.


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


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


Извлечение признаков является первым этапом предварительной обработки, который используется для представления текстовых документов в формате слов. Таким образом, алгоритмы удаление стоп-слов, стеммитизация, токенизация и другие ‒ это задачи предварительной обработки. Данные алгоритмы относится к методу обработки естественного языка (NLP). NLP ‒ может быть определена как автоматическая (орсеми-автоматическая) обработка человеческого языка. Термин NLP используется гораздо более узко, часто исключая поиск информации, а иногда даже исключая машинный перевод. В настоящее время NLP, по сути, является междисциплинарным: оно тесно связано с лингвистикой и машинным обучением. Он также имеет связи с исследованиями в когнитивной науке, психологии, философии и математике (особенно логике). В машинном обучении NLP используется как раз для того, чтобы машина могла понимать тексты написанное на естественном языке. Есть несколько алгоритмов NLP, который может использоваться вместе, по отдельности или последовательно. В этой работе будет рассматриваться основные алгоритмы, которые используется именно в машинном обучении:


  • Токенизация ‒ лексический (семантический) анализ текста, который находит минимальную единицу в тексте. Минимальная единица – это токен. В лексическом анализе токеном может быть одно слово, предложение или абзац. В этой работе мы будем использовать токен как одно слово .
  • Частота термина в документе ‒ в семантическом анализе часто используют алгоритм счетчика слов, чтобы найти частоту каждого слова в данном тексте. Зачем эта техника нужна? Для того чтобы найти ключевые слова или уникальные термины, классифицировать или кластеризировать большой массив (корпус) документов, найти сходство корпуса и т. д. Распределение частот слов является фундаментальным фенотипом языка. Статистики и лингвисты изучали распределение частот слов, поскольку статистика использования слов дает ценное представление о языке, его конструкции и эволюции. Эти распределения давно изучаются за пределами статистики и лингвистики.
  • Стеммитизация – это преобразование морфологических форм слов в его корень, при помощи удаление окончание морфологических преобразований. Корень не обязательно должен быть существующим словом в словаре, но все его варианты должны соответствовать этой форме после завершения алгоритма. Есть два момента, которые следует учитывать при использовании стеммера:
    • Морфологические формы слова, как предполагается, имеют одно и то же базовое значение и, следовательно, должны быть сопоставлены с одним и тем же корнем.
    • Слова, которые не имеют одного и того же значения должны храниться отдельно


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


  • Стоп-листинг ‒ применяется для удаления стоп-слов и отдельных символов, которые появляются в текстовом документе, и, вероятно, частота стоп-слов может быть больше, чем другие ключевые слова в этом тексте. Вот почему этот шаг необходимо использовать для получения более четкого результата в машинном обучении.
  • Лемматизация – алгоритм аналогичный к стеммизации. Различие в том, что лемматизация принимает во внимание морфологический анализ слов. Для этого необходимо иметь подробные словари, которые алгоритм может просмотреть, чтобы связать форму с ее леммой (инфинитив слово).

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


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

  • Частота термина–обратная частота документа (TF-IDF) обычно используется для взвешивания каждого слова в текстовом документе в соответствии с его уникальностью. Вес слова (токена) часто используется для поиска информации и семантического анализа текста. Этот вес является статистической мерой, используемой для оценки того, насколько важно слово для документа в коллекции или корпусе Другими словами, подход TF-IDF отражает релевантность слов, текстовых документов и конкретных категорий.
  • Word2Vec ‒ это инструмент (набор алгоритмов) для вычисления векторных представлений слов, реализующий две основные архитектуры — непрерывный пакет слов (CBOW) и Скип-грамм. В качестве входных данных передается текстовый документ или слово, а выходные данные будут представлены как векторные переменные (координаторы в векторном пространстве).

Послесловие


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

Оставляйте комментарий, если ждете продолжении.
Tags:
Hubs:
+3
Comments 3
Comments Comments 3

Articles