2013-08-12 2 views
3

Я хочу попробовать создать приложение, которое оценивает сообщения пользователя facebook на основе контента (Sentiment Analysis). Я сначала попытался создать алгоритм, но я чувствовал, что это не так надежно. Создал словарный список слов и отсканировал сообщения против словаря и оценил, был ли он положительным или отрицательным. Однако, я чувствую, что это минимально. Я хотел бы оценить настроение или чувства/личностные черты человека на основе постов. Можно ли это сделать?Facebook Sentiment Analysis API

Надеюсь использовать некоторые онлайн-API, пожалуйста, помогите. Спасибо;)

+0

Просто зарегистрируйтесь на SimplyMeasured. – Alan

ответ

1

Алгоритм, который вы описываете, должен работать хорошо, но качество результата во многом зависит от используемого списка слов. Для Sentimental мы принимаем комментарии к сообщениям Facebook и оцениваем их на основе настроений. Используя список слов AFINN 111 для оценки комментариев по слову, этот подход (возможно, неожиданно) эффективен. Посредством нормализации и выведения слов во-первых, вы должны быть в состоянии сделать еще лучше.

3

Как заметил @Jared, использование подхода на основе словаря может работать достаточно хорошо в некоторых ситуациях, в зависимости от качества вашего учебного корпуса. Это на самом деле работает CLIPS pattern и TextBlob.

Вот пример использования TextBlob:

from text.blob import TextBlob 
b = TextBlob("StackOverflow is very useful") 
b.sentiment # returns (polarity, subjectivity) 
# (0.39, 0.0) 

По умолчанию TextBlob использует словарь на основе алгоритма паттерна. Однако вы можете легко заменить алгоритмы. Например, вы можете использовать классификатор Naive Bayes, обучаемый на корпусе просмотра фильмов.

from text.blob import TextBlob 
from text.sentiments import NaiveBayesAnalyzer 

b = TextBlob("Today is a good day", analyzer=NaiveBayesAnalyzer()) 
b.sentiment # returns (label, prob_pos, prob_neg) 
# ('pos', 0.7265237431528468, 0.2734762568471531) 
+0

Импорт теперь выглядит следующим образом: 'from textblob.sentiments import NaiveBayesAnalyzer'. Если кому-то это понадобится. –

1

Есть много интерфейсов анализа настроений, которые вы можете легко включить в ваше приложение, также многие из них имеют бесплатный провоз использования (как правило, 500 запросов в день). Я начал небольшой проект, который сравнивает, как каждый API (в настоящее время поддерживающий 10 различных API: AIApplied, Alchemy, Bitext, Chatterbox, Datumbox, Lymbix, Repustate, Semantria, Skyttle и Viralheat) классифицирует заданный набор текстов в положительные, отрицательные или нейтральные : https://github.com/skyttle/sentiment-evaluation

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

TextBlob - еще одна возможность, хотя она будет только классифицировать тексты в pos/neg/neu.

0

Если вы ищете механизм анализа настроений с открытым исходным кодом, основанный на классификаторе Naive Bayes на C#, загляните в https://github.com/amrishdeep/Dragon. Он работает лучше всего на большом корпусе слов, таких как сообщения в блогах или обзоры продуктов с несколькими параграфами. Тем не менее, я не уверен, будет ли он работать для сообщений в facebook, которые содержат несколько слов.

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