Анализ настроений с помощью NLTK python для предложений с использованием примеров данных или веб-сервиса? - PullRequest
17 голосов
/ 14 мая 2010

Я приступаю к проекту НЛП для анализа настроений.

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

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

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

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

Вот какие у меня проблемы:

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

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

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

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

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

Ответы [ 2 ]

12 голосов
/ 14 мая 2010

Данные обзора фильма уже отмечены людьми как положительные или отрицательные (человек, который сделал обзор, дал фильму оценку, которая используется для определения полярности). Эти золотые стандарты позволяют вам обучать классификатор, который вы затем сможете использовать для других обзоров фильмов. Вы можете обучить классификатор в NLTK с этими данными, но применение результатов к избирательным твитам может быть менее точным, чем случайное предположение о положительном или отрицательном. Или же вы можете пометить несколько тысяч твитов как позитивные или негативные и использовать это в качестве учебного набора.

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

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

1 голос
/ 28 мая 2010

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

...