Анализ настроений для Twitter в Python


Answers

Удачи с этим.

Настроения чрезвычайно контекстуальны, а тонкая культура делает проблему хуже, потому что вам не дают контекста для большинства твитов. Весь смысл твиттера заключается в том, что вы можете использовать огромное количество общего контекста «реального мира» для пакетной связи в очень коротком сообщении.

Если они говорят, что видео плохое, значит, это плохо или плохо ?

Однажды преподаватель лингвистики читал лекции в своем классе. «По-английски, - сказала она, - двойной отрицательный результат положительный. На некоторых языках, например, на русском, двойной отрицательный результат все еще отрицательный. Однако нет языка, в котором двойной положительный результат может быть отрицательным».

Голос из задней части комнаты подпрыгнул: «Да ... верно».

Question

Я ищу реализацию с открытым исходным кодом, предпочтительно на python, Textual Sentiment Analysis ( http://en.wikipedia.org/wiki/Sentiment_analysis ). Кто-нибудь знаком с такой версией с открытым исходным кодом, которую я могу использовать?

Я пишу приложение, которое ищет твиттер для какого-то поискового запроса, скажем «youtube», и считает «счастливыми» твиты или «печальные» твиты. Я использую приложение Google appengine, поэтому оно находится на питоне. Я хотел бы иметь возможность классифицировать возвращенные результаты поиска из твиттера, и я хотел бы сделать это в python. До сих пор я не смог найти такой анализатор чувств, особенно не в python. Вы знакомы с такой версией с открытым исходным кодом, которую я могу использовать? Предпочтительно, это уже в python, но если нет, надеюсь, я смогу перевести его на python.

Заметьте, тексты, которые я анализирую, очень коротки, это твиты. Поэтому в идеале этот классификатор оптимизирован для таких коротких текстов.

BTW, twitter поддерживает операторов «:)» и «:(» в поиске, которые направлены на то, чтобы сделать именно это, но, к сожалению, классификация, предоставленная ими, не такая уж большая, поэтому я решил, что могу попробовать это сам ,

Благодаря!

Кстати, ранняя демо-версия here и код, который у меня есть до сих пор, here и я бы хотел открыть его любому заинтересованному разработчику.




Для тех, кто заинтересован в кодировании Twitter Sentiment Analyis с нуля, есть курс Coursera « Data Science » с кодом на языке Python на GitHub (как часть назначения 1 - link ). Сентименты являются частью AFINN-111 .

Например, вы можете найти рабочие решения. В дополнение к списку настроений AFINN-111 существует простая реализация создания динамического списка терминов на основе частоты терминов в твитах, имеющих оценку pos / neg (см. here ).




Думаю, вам будет трудно найти то, что вам нужно. Самое близкое, о чем я знаю, это LingPipe , который имеет некоторые функции анализа настроений и доступен под лицензией с открытым исходным кодом ограниченного типа, но написан на Java.

Кроме того, системы анализа чувств обычно разрабатываются путем обучения системы данным о просмотре продукта / фильма, которая существенно отличается от среднего твита. Они будут оптимизированы для текста с несколькими предложениями, все об одной и той же теме. Я подозреваю, что вам лучше придумать систему, основанную на правилах, возможно, основанную на лексиконе сентиментальных терминов, подобных тому, который предоставляет Университет Питтсбурга .

Ознакомьтесь с нами. Мы twitrratr себя чувствуем для реализации подобной идеи с действительно красивым интерфейсом (и twitrratr ).




Я построил список слов с надписью. Вы можете получить к нему доступ отсюда:

http://www2.compute.dtu.dk/pubdb/views/edoc_download.php/6010/zip/imm6010.zip

В моем блоге вы найдете короткую программу Python:

http://finnaarupnielsen.wordpress.com/2011/06/20/simplest-sentiment-analysis-in-python-with-af/

В этом сообщении показано, как использовать список слов с отдельными предложениями, а также с Twitter.

Подходы к спискам слов имеют свои ограничения. Вы найдете исследование ограничений моего списка слов в статье «Новый ANEW: оценка списка слов для анализа настроений в микроблогах». Эта статья доступна на моей домашней странице.

Обратите внимание, что в коде отсутствует код unicode(s, 'utf-8') (по причинам, связанным с педагогикой).




Возможно, TextBlob (на основе NLTK и шаблона) - это инструмент для анализа настроений для вас.




Несколько странная мысль: вы можете попробовать использовать API Twitter для загрузки большого набора твитов, а затем классифицировать подмножество этого набора с использованием смайликов: одна положительная группа для «:)», «:]», «: D» и т. Д. , а другая отрицательная группа с ":(" и т. д.

Как только у вас будет такая грубая классификация, вы можете искать дополнительные подсказки с анализом частоты или ngram или что-то в этом роде.

Это может показаться глупым, но серьезные исследования были сделаны на этом (поиск «анализа настроений» и смайлика). Стоит посмотреть.




Links