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

Крайне важно установить контекст и фоновую проблему на предприятии, которое мы пытаемся решить с помощью обработки естественного языка и машинного обучения на Python. После определения постановки фоновой проблемы следующим шагом будет определение набора данных и предварительная обработка данных для подготовки данных таким образом, чтобы компьютер мог их понять через язык Python. Разработка функций - еще один важный аспект проблемы науки о данных для обработки лингвистики текста. К предварительно обработанному набору данных можно применить любой классификатор машинного обучения, чтобы идентифицировать электронное письмо как спам или как спам. В этом сценарии я буду обрабатывать предварительно обработанный набор данных, содержащий 48 столбцов. Важно определить меру частоты слов, чтобы понять, сколько раз конкретное слово появилось в наборе данных, деленное на количество слов в документе, умноженное на 100. В этом предварительно обработанном наборе данных из UCI последний столбец был идентифицирован как наклейка; один = СПАМ и 0 = не СПАМ. Использование этого набора данных не требует большой обработки и предварительной обработки данных для измерения точности классификации с помощью классификаторов Naïve Bayes и AdaBoost.

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

Теорема Байеса обозначает событие A и событие B. Прогноз погоды, например, будет ли завтра буря или вероятность получить голову или хвост при перевороте. Вероятность P (A | B) - это вероятность гипотезы A для данных B. Здесь P (A | B) представляет собой апостериорную вероятность. P (B | A) представляет собой вероятность наблюдения B для события A. P (A) обозначает вероятность того, что A истинно. Это априорная вероятность A. P (B) обозначает вероятность события данных B.

Среда Python должна быть настроена в среде MacOS или Linux. В этой статье не будет пошагового руководства по установке Python на macOS или Linux. Для настройки сред Python и JupyterLab можно загрузить дистрибутивы PyCharm или Anaconda. Отдельные пакеты должны быть импортированы, если PyCharm был выбран в качестве среды Python с помощью команды Pip. Если среда Anaconda была настроена, она устанавливает все необходимые пакеты Python 3.6, так что не будет никаких проблем при доступе к классификатору Naïve Bayes из sci-kit learn. В большинстве случаев для обработки естественного языка выполняется массивная предварительная обработка. Если данные не имеют дисбаланса и подходят, любой классификатор машинного обучения может применяться для классификации проблемы спама в электронных письмах. В комплект Python sci-kit learn входит наивный байесовский классификатор для полиномиальных моделей. Полиномиальный наивный байесовский классификатор работает с высокой точностью для любых дискретных функций, таких как подсчет слов. Однако известно, что он также хорошо работает и для TF-IDF. Данные были перетасованы для доступа к различным фрагментам данных в программе Python, а последние 100 строк были рассмотрены для обучения и тестирования. Модель машинного обучения с классификатором Naïve Bayes показала точность 87%. Также может применяться любой другой классификатор. Классификатор AdaBoost показал точность 93%.

Результаты

Блокнот JupyterLab опубликован на Github на сайте GPSingularity.

использованная литература

Кокс, Т. (2018). Поваренная книга Raspberry Pi 3 для программистов на Python - третье издание (3-е изд.). Бирмингем, Англия: Packt Publishing.

Хардения, Н. (2016). Обработка естественного языка: Python и NLTK. Бирмингем, Англия: Packt Publishing.

Лю, Ю. Х. (2017). Машинное обучение Python на примере. Бирмингем, Англия: Packt Publishing.

Танаки, Дж. (2017). Обработка естественного языка Python. Бирмингем, Англия: Packt Publishing.