В этой статье я расскажу об исследовании, проведенном мной и моими коллегами Амбаришем Мохарилом, Чирагом Кедиа и Никулом Сонаване на тему «Использование CNN для прогнозирования оценки эффективности лекарств от ЗППП», а также расскажу о некоторых трудностях, с которыми мы столкнулись, и о том, как мы преодолели это.

Безопасность и эффективность лекарств всегда были важным аспектом для фармацевтических компаний. Даже после того, как они были одобрены органами по регулированию лекарственных средств, такими как FDA, некоторые лекарства оказывают различное воздействие на разных людей. Фармацевтические компании и органы по контролю за лекарственными средствами регулярно собирают отзывы пациентов об использовании и побочных эффектах лекарств. Эти обратные связи могут быть использованы для определения эффективности лекарства. Основное внимание здесь будет уделяться пониманию и определению эффективности препарата по шкале от 1 до 10 на основе этих отзывов, чтобы будущие пациенты знали о его плюсах и минусах перед его использованием.

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

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

Шаги, которые мы выполнили: -

  1. Удаление стоп-слов. Первым шагом является предварительная обработка входных данных. Данные, присутствующие в наборе данных, были удалены создателями с разных веб-сайтов и содержали теги HTML, которые необходимо было удалить. Кроме того, в качестве важного шага в НЛП мы удалили все знаки препинания, предлоги, артикли и т. д.
  2. Stemming — второй шаг в предварительной обработке данных заключался в том, чтобы выполнить stemming или лемматизацию отзывов пациентов. Слова часто присутствуют в предложениях в разных временах и формах с несколькими суффиксами и приставками, это называется словоизменением. На этом этапе мы преобразуем каждое слово в его корневую форму, например, «Playing» или «Played» будут преобразованы в «Play», удалив их суффиксы. Это называется формированием данных.
  3. Лемматизация. Лемматизация больше связана с морфологией и семантическим смыслом утверждения. Лемматизация также направлена ​​​​на сокращение слова до корневой формы или «леммы». Лемматизация понимает морфологический смысл слов, а затем приводит к корневой форме.
  4. Токенизация. Токенизация — это процесс измельчения или сокращения предложения на отдельные части или токены. Токенизация считается базовым шагом для стемминга и лемматизации. Токенизация важна для определения границ слов
  5. Вложения слов. Чтобы проанализировать семантику утверждения, нам нужен метод для представления слов с похожим значением в близком состоянии. Такие представления могут быть сделаны с помощью встраивания слов. Встраивание слов — это метод, при котором слова в тексте определяются как векторы с действительными значениями в предопределенном векторном пространстве. Эти слова часто имеют измерения сотен и тысяч. Мы использовали модель word2vec для встраивания слов. word2vec использует концепцию косинусного сходства, чтобы сопоставить слова ближе друг к другу в заданном векторном пространстве.
  6. Сверточные нейронные сети. Наша модель CNN вдохновлена ​​моделью Юн Ким. Мы использовали CNN, чтобы понять структуру предложения, данного в качестве входных данных, и предоставить оценку на основе обучения различным функциям, извлеченным из входных данных. Мы передаем наши обученные токены из модели word2vec в CNN, чтобы извлечь из них различные функции. Это очень новый подход, который решил большую часть нашей проблемы. Мы взяли слова и встроили их в соответствии с предварительно обученными векторами из модели Google News. Эти токены, замененные соответствующими векторными значениями, передавались в CNN в качестве входных данных. После того, как эти карты объектов были получены из слоя свертки, была выполнена операция объединения. Это была операция максимального объединения для извлечения всех максимальных функций из карт функций, что уменьшило потери и обеспечило извлечение всех необходимых и важных функций. Идея состоит в том, чтобы захватить функцию с максимальным значением для каждой карты функций. Этот метод объединения, а именно. Максимальное объединение занимается и решает проблему переменной длины предложения, извлекая максимальные функции в матрицу фиксированного размера. Как только этот процесс завершен, матрица объединения выравнивается в матрицу векторов единичной размерности и подается в качестве входных данных для полносвязного слоя.
  7. Результат. На заключительном этапе мы заменили отзывы пациентов в наборе данных соответствующим «numeric_review_score», полученным на выходе CNN. Теперь наш набор данных был полностью числовым, а отзывы пациентов оценивались по 10-балльной шкале.

Вывод. Окончательная точность нашей модели CNN для ранжирования отзывов от 1 до 10 составляет 97,39 % с 28 948 выборками в обучающем наборе данных и 3 217 в проверке. Точность окончательной модели (после преобразования отзывов на естественном языке в линейную шкалу с использованием CNN при прогнозировании базовой оценки препарата с использованием регрессора случайного леса) составила 96,26%.