Анализ настроений с использованием NLTK

Если бы вы делали анализ настроений в тексте рецензий, используя NLTK в python, какие шаги вы должны выполнить на высоком уровне. В NLTK очень много терминов, таких как "stemming", части речи, чтобы назвать несколько, но я хотел бы знать высокоуровневый подход к обработке текста.

1 ответ

Чтобы выполнить анализ настроений в отношении текста отзывов, любого текста по этому вопросу, нам нужно сначала извлечь функции. Это зависит от пользователя, на каком уровне вам нужно извлечь функции. Хорошо известной моделью для достижения этой цели является Bag of Words.

Есть несколько шагов на высоком уровне обработки текста.

  1. Токенизация: это процесс сокращения или разбиения, статья на более мелкие формы, может быть, меньшие абзацы или предложения или слова или буквы.

    Пример: Ты выглядишь очень счастливым. → ["Ты", "смотри", "очень", "счастлив"]

  2. Стоп-слова. Слова, которые не содержат никакой информации в статье, называются стоп-словами. В основном это предлоги, статьи, союзы и т. Д.,

    Пример: Книга размещена на столе. Stop Words = ['is', 'on', 'the']

  3. Stemming: это процесс перевода слов в их корневые формы путем удаления префиксов и суффиксов.

    Пример: медленно → медленно

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

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

  1. Каким-то образом вам нужно сгенерировать некоторые помеченные образцы текста. Это может быть сделано вручную (например, электронная таблица с двумя столбцами, "LABEL" и "THE_TEXT". Образцы часто могут генерироваться автоматически, в зависимости от ваших данных. Обычно для каждой метки класса вам понадобится не менее сотен образцов).
  2. Вам нужно будет выбрать метод "Извлечение элементов" или "Разработка компонентов", который имеет смысл для ваших данных. Простой подход состоит в том, чтобы использовать "Мешок слов"... то есть просто кормить обучающий API необработанным текстом. Как правило, вы скоро увидите, что это на самом деле недостаточно хорошо, и вам придется повозиться с такими вещами, как обрезание, лемматизация и NGrams, чтобы захватить больше контекста и получить более качественные естественные группировки в ваших данных. Эта часть может стать действительно сложной, если вы работаете с многоязычными корпорациями.
  3. Тренируй модель. Я не знаком с NLTK, но обычно вы передаете образцы текста с метками, и извлечение функций является частью обучающей программы в целом. В конце этого шага у вас будет модель в форме файла, которую вы загружаете в экземпляр классификатора.
  4. Используйте классификатор (который использует вашу блестящую новую модель), чтобы классифицировать ваши данные. Ключевым моментом здесь является то, что вы должны использовать ТОЧНУЮ технику извлечения признаков, которую вы использовали для обучения модели на ваших данных во время классификации, или вы будете сравнивать яблоки с апельсинами.
  5. Классификатор, скорее всего, вернет распределение по вашим категориям (ярлыкам) с какими-то оценками. Затем вы используете эти данные, как хотите. Это может быть мощным и захватывающим.

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

Другие вопросы по тегам