2010-05-14 3 views
17

Я приступаю к проекту NLP для анализа настроений.Анализ настроений с использованием python NLTK для предложений с использованием данных примера или webservice?

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

Вот моя задача:

  1. Я начинаю с одной длинной части данных (позволяет сказать несколько сотен твитов на тему выборов в Великобритании от их WebService)
  2. Я хотел бы разорвать этот вверх в предложения (или информация не более 100 символов) (я думаю, я могу просто сделать это в python?)
  3. Затем выполнить поиск по всем предложениям для конкретных экземпляров в этом предложении, например «Дэвид Кэмерон»
  4. Тогда я хотел бы проверить для положительного/отрицательного настроения в каждом предложении, и сосчитать их соответственно

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

Вот проблемы я имеющие:

  1. Все наборы данных можно найти, например, данные просмотра фильма корпуса, которые поставляются с NLTK arent в формате webservice. Похоже, что уже была сделана некоторая обработка. Насколько я вижу, обработка (по Стэнфорду) проводилась с WEKA. Не возможно ли NLTK сделать все это самостоятельно? Здесь все наборы данных уже были организованы в положительные/отрицательные, например, набор полярности http://www.cs.cornell.edu/People/pabo/movie-review-data/ Как это делается? (для организации предложений по настроениям, это определенно WEKA? или что-то еще?)

  2. Я не уверен, что понимаю, почему WEKA и NLTK будут использоваться вместе. Похоже, они делают то же самое. Если im обрабатывать данные с WEKA сначала, чтобы найти чувства, зачем мне нужен NLTK? Можно ли объяснить, почему это может понадобиться?

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

Любая помощь очень ценится и спасет меня много волос!

Приветствия Ke

ответ

12

Фильм данные обзор уже отмечен людьми как положительным, так и отрицательным (человек, который сделал обзор дал фильму рейтинг, который используется для определения полярности). Эти ярлыки gold позволяют вам обучать классификатор, который затем можно использовать для других обзоров фильмов. Вы можете обучить классификатор в НЛТК этими данными, но применение результатов к твитам на выборах может быть менее точным, чем случайное угадывание положительного или отрицательного. Кроме того, вы можете пройти через несколько тысяч твитов и пометить их как положительные или отрицательные, и использовать это как свой набор для обучения.

Для описания использования Наивного Байеса для анализа настроений с NLTK: http://streamhacker.com/2010/05/10/text-classification-sentiment-analysis-naive-bayes-classifier/

Затем в этом коде, вместо того, чтобы использовать фильм корпус, использовать свои собственные данные для расчета количества слов (в методе word_feats).

+0

yep, я оказался на этом сайте после небольшого поиска, но я думаю, что я немного зациклен на том, как получить статистику для каждого обзора. Как я могу использовать nltk, чтобы дать мне список идентификаторов обзора с 1 или 0 для pos/neg? cheers ke –

+0

Возможно, полезно для будущих читателей: в корпусе просмотра фильмов есть категории «pos» и «neg». Чтобы получить список файловых файлов в категории «neg», просто используйте 'movie_reviews.fileids (« neg »)'. Вы также можете напрямую извлечь весь текст в отрицательной категории, сказав, например, 'movie_reviews.sents (categories = [" neg "])'. (Эти методы работают со всеми категоризированными корпусами nltk. Чтобы перечислить категории в корпусе, используйте 'corpus.categories()'.) – alexis

1

Почему вы не используете WSD. Используйте инструмент Disambiguation, чтобы найти чувства. и используйте вместо полярности полярность карты для чувств. В этом случае вы получите более точные результаты по сравнению с полярностью индекса слова.

+1

Звучит круто. У вас есть какие-либо документы или приложения, упоминающие об этом? – mixdev

Смежные вопросы