Цель проблемы:
Основная цель проекта - спрогнозировать настроения для ряда обзоров фильмов, полученных из базы данных фильмов в Интернете (IMDb). Этот набор данных содержит 50 000. Обзоры фильмов, которые были предварительно помечены ярлыками класса тональности как «положительный» или «отрицательный» на основе содержания обзора. Помимо этого, есть дополнительные обзоры фильмов, которые не помечены.
Набор данных можно получить на сайте http://ai.stanford.edu/~amaas/data/sentiment/, любезно предоставлено Стэнфордским университетом и Эндрю Л. Маасом, Раймондом Э. Дейли, Питером Т. Фамом, Дэном Хуангом, Эндрю Й. Нг и Кристофер Поттс. У них есть наборы данных в виде необработанного текста, а также уже обработанный пакет форматов слов.
Следовательно, наша задача будет заключаться в том, чтобы предсказать настроение 15 000 обзоров фильмов с ярлыками и использовать оставшиеся 35 000 обзоров для обучения наших контролируемых моделей.
Шаг 1. Предварительная обработка и нормализация текста
Один из ключевых шагов перед погружением в процесс проектирования и моделирования функций включает очистку, предварительную обработку и нормализацию текста для приведения текстовых компонентов, таких как фразы и слова, к некоторому стандартному формату. Это обеспечивает стандартизацию всего корпуса документа, что помогает создавать значимые функции и помогает уменьшить шум, который может быть внесен из-за множества факторов, таких как нерелевантные символы, специальные символы, теги XML и HTML и т. Д.
• Чистящий текст:
Наш текст часто содержит ненужное содержимое, такое как HTML-теги, которые не добавляют особой ценности при анализе настроений. Следовательно, нам нужно убедиться, что мы удалили их перед извлечением функций. Библиотека BeautifulSoup отлично справляется с предоставлением для этого необходимых функций.
• Удаление диакритических знаков:
В нашем наборе данных мы имеем дело с отзывами на английском языке, поэтому нам нужно убедиться, что символы любого другого формата, особенно символы с диакритическими знаками, преобразованы и стандартизированы в символы ASCII. Простым примером может быть преобразование é в e.
• Расширяющиеся схватки:
В английском языке сокращения - это, в основном, сокращенные версии слов или слогов. Эти сокращенные версии существующих слов или фраз создаются путем удаления определенных букв и звуков. Примеры: расширять не делать не делать и я хотел бы я бы. Сокращения создают проблему при нормализации текста, потому что нам приходится иметь дело со специальными символами, такими как апостроф, и мы также должны преобразовывать каждое сокращение в его развернутую исходную форму.
• Удаление специальных символов:
Другой важной задачей при очистке и нормализации текста является удаление специальных символов и символов, которые часто добавляют дополнительный шум в неструктурированный текст. Для этого можно использовать простые регулярные выражения. Вы можете сохранить числа или удалить их, если вы не хотите, чтобы они присутствовали в нормализованном корпусе.
• Удаление стоп-слов:
Слова, которые не имеют большого значения или не имеют никакого значения, особенно при построении значимых элементов из текста, также известны как стоп-слова. Такие слова, как a, an, the и т. Д., Считаются стоп-словами. Универсального списка запрещенных слов не существует, но мы используем стандартный список запрещенных слов на английском языке от nltk. При необходимости вы также можете добавить свои собственные игнорируемые слова для конкретного домена.
• Стемминг и лемматизация:
Основы слов обычно являются базовой формой возможных слов, которые могут быть созданы путем присоединения к основанию аффиксов, таких как префиксы и суффиксы, для создания новых слов. Это называется перегибом. Обратный процесс получения основной формы слова известен как основание. Простым примером являются слова WATCHES, WATCHING и WATCHED. У них есть корень слова WATCH как основная форма. Пакет nltk предлагает широкий выбор стеммеров, таких как PorterStemmer и LancasterStemmer. Лемматизация очень похожа на выделение корней, когда мы удаляем аффиксы слов, чтобы получить базовую форму слова. Однако основная форма в этом случае известна как корневое слово, но не как корневая основа. Разница в том, что корневое слово всегда является лексикографически правильным словом (присутствует в словаре), но коренное слово может быть другим. Мы будем использовать только лемматизацию в нашем конвейере нормализации, чтобы сохранить лексикографически правильные слова.
Код нормализации текста см. - https://github.com/Puspita-111/Suven-consultants-and-technology/blob/main/Text%20Normalization%20Demo.ipynb
Подход 1. Проведение анализа настроений с использованием моделей, основанных на неконтролируемой лексике:
В моделях неконтролируемого анализа настроений используются тщательно отобранные базы знаний, онтологии, лексиконы и базы данных, содержащие подробную информацию о субъективных словах, фразах, включая сантименты, настроение, полярность, объективность, субъективность и т. Д. В модели лексики обычно используется лексика, также известная как словарь или словарь слов, специально адаптированных для анализа тональности. Обычно эти лексики содержат список слов, связанных с положительными и отрицательными настроениями, полярностью (величиной отрицательной или положительной оценки), тегами частей речи (POS), классификаторами субъективности (сильными, слабыми, нейтральными), настроением, модальностью и т. Д. . Вы можете использовать эти лексиконы и вычислять тональность текстового документа путем сопоставления присутствия определенных слов из лексикона, смотреть на другие дополнительные факторы, такие как наличие параметров отрицания, окружающие слова, общий контекст и фразы, и агрегировать общие оценки полярности тональности, чтобы решить окончательная оценка настроения. Существует несколько популярных моделей лексики, используемых для анализа тональности. Некоторые из них упоминаются следующим образом.
. Словарь Бин Лю
. Лексикон субъективности MPQA
. Словарь шаблонов
. AFINN Lexicon
. SentiWordNet Lexicon
. VADER Lexicon
Мы будем использовать последние 3 модели лексики для анализа настроений. Ссылка- https://github.com/Puspita-111/Suven-consultants-and-technology/blob/main/Sentiment%20Analysis%20-%20Unsupervised%20Lexical.ipynb
Оценка модели AFINN:
Model Performance metrics: ------------------------------ Accuracy: 0.71 Precision: 0.73 Recall: 0.71 F1 Score: 0.71 Model Classification report: ------------------------------ precision recall f1-score support positive 0.67 0.85 0.75 7510 negative 0.79 0.57 0.67 7490 avg / total 0.73 0.71 0.71 15000 Prediction Confusion Matrix: ------------------------------ Predicted: positive negative Actual: positive 6376 1134 negative 3189 4301
Оценка модели SentiWordNet:
Model Performance metrics: ------------------------------ Accuracy: 0.69 Precision: 0.69 Recall: 0.69 F1 Score: 0.68 Model Classification report: ------------------------------ precision recall f1-score support positive 0.66 0.76 0.71 7510 negative 0.72 0.61 0.66 7490 avg / total 0.69 0.69 0.68 15000 Prediction Confusion Matrix: ------------------------------ Predicted: positive negative Actual: positive 5742 1768 negative 2932 4558
Оценка модели VADER:
Model Performance metrics: ------------------------------ Accuracy: 0.71 Precision: 0.72 Recall: 0.71 F1 Score: 0.71 Model Classification report: ------------------------------ precision recall f1-score support positive 0.67 0.83 0.74 7510 negative 0.78 0.59 0.67 7490 avg / total 0.72 0.71 0.71 15000 Prediction Confusion Matrix: ------------------------------ Predicted: positive negative Actual: positive 6235 1275 negative 3068 4422
Подход 2: классификация настроений с помощью контролируемого обучения:
Еще один способ построить модель для понимания текстового контента и прогнозирования настроения текстовых обзоров - использовать контролируемое машинное обучение. Чтобы быть более конкретным, мы будем использовать классификационные модели для решения этой проблемы.
Основные шаги для достижения этого перечислены ниже:
1. Подготовьте наборы данных для обучения и тестирования (необязательно набор данных для проверки)
2. Предварительная обработка и нормализация текстовых документов.
3. Разработка функций
4. Модельное обучение
5. Прогнозирование и оценка модели
Модель логистической регрессии по характеристикам BOW:
Model Performance metrics: ------------------------------ Accuracy: 0.91 Precision: 0.91 Recall: 0.91 F1 Score: 0.91 Model Classification report: ------------------------------ precision recall f1-score support positive 0.90 0.91 0.91 7510 negative 0.91 0.90 0.90 7490 avg / total 0.91 0.91 0.91 15000 Prediction Confusion Matrix: ------------------------------ Predicted: positive negative Actual: positive 6817 693 negative 731 6759
Модель логистической регрессии по функциям TF-IDF:
Model Performance metrics: ------------------------------ Accuracy: 0.9 Precision: 0.9 Recall: 0.9 F1 Score: 0.9 Model Classification report: ------------------------------ precision recall f1-score support positive 0.89 0.90 0.90 7510 negative 0.90 0.89 0.90 7490 avg / total 0.90 0.90 0.90 15000 Prediction Confusion Matrix: ------------------------------ Predicted: positive negative Actual: positive 6780 730 negative 828 6662
Модель SVM на BOW особенности:
Model Performance metrics: ------------------------------ Accuracy: 0.9 Precision: 0.9 Recall: 0.9 F1 Score: 0.9 Model Classification report: ------------------------------ precision recall f1-score support positive 0.90 0.89 0.90 7510 negative 0.90 0.91 0.90 7490 avg / total 0.90 0.90 0.90 15000 Prediction Confusion Matrix: ------------------------------ Predicted: positive negative Actual: positive 6721 789 negative 711 6779
Модель SVM по функциям TF-IDF:
Model Performance metrics: ------------------------------ Accuracy: 0.9 Precision: 0.9 Recall: 0.9 F1 Score: 0.9 Model Classification report: ------------------------------ precision recall f1-score support positive 0.89 0.91 0.90 7510 negative 0.91 0.88 0.90 7490 avg / total 0.90 0.90 0.90 15000 Prediction Confusion Matrix: ------------------------------ Predicted: positive negative Actual: positive 6839 671 negative 871 6619
Таким образом, мы можем понять, что модель логистической регрессии для функций BOW работает лучше, чем модель AFINN. Вот сравнение ниже:
AFINN LOGISTIC REGRESSION Accuracy: 0.71 Accuracy: 0.91 Precision: 0.73 Precision: 0.91 Recall: 0.71 VS Recall: 0.91 F1 Score: 0.71 F1 Score: 0.91
Будьте на связи…
Автор: Пушита Саха, энтузиаст машинного обучения и глубокого обучения, рассказчик историй данных.