2012-06-11 1 views
5

Я пробовал наивный классификатор заливов, и он работает очень плохо. SVM работает немного лучше, но все еще ужасно. Большинство статей, которые я читал о SVM и наивных заливах с некоторыми вариациями (n-gram, POS и т. Д.), Но все они дают результаты, близкие к 50% (авторы статей говорят о 80% и высоких, но я не могу получить точные точные по реальным данным).Хороший алгоритм анализа настроений

Есть ли более мощные методы, кроме лексиксальных анализов? SVM и Байес полагают, что слова независимы. Этот подход называется «сумкой слов». Что, если мы предположим, что эти слова связаны?

Например: используйте алгоритм apriory, чтобы обнаружить, что если предложения содержат «плохой и ужасный», то вероятность 70% этого предложения отрицательна. Также мы можем использовать расстояние между словами и так далее.

Это хорошая идея или я изобретаю велосипед?

ответ

2

Вы вводите в заблуждение пару концепций. Ни Наивный Байес, ни СВМ не привязаны к подходу слов. Ни SVM, ни подход BOW не имеют предположения о независимости между терминами.

Вот некоторые вещи, которые вы можете попробовать:

  • включают знаки препинания в ваших сумках слов; особенно ! а также ? могут быть полезны для анализа настроений, в то время как многие экстракторы функций, предназначенные для классификации документов, выбрасывают их
  • То же самое для слов остановки: слова типа «I» и «мой» могут указывать на субъективный текст
  • построить двухэтапный классификатор ; сначала определите, выражено ли какое-либо мнение, то ли оно положительно или отрицательно
  • попробуйте квадратичное ядро ​​SVM вместо линейного для захвата взаимодействия между функциями.
+0

Что вы думаете об априорном алгоритме и ассоциации между словами? – Neir0

+0

@ Neir0: Я не сразу вижу, как вы хотите применить его. Я также никогда не видел попыток провести с ним анализ настроений. Я знаю, что некоторые люди используют его для построения приближений к квадратичному ядру (примерно то, что вы называете «ассоциациями слов»), но затем я сначала попробую SVM ванильного ядра. –

+0

Простой способ ввода жетонов с значком neg или pos. Например: «Я люблю свою маму». На выходе я получаю что-то вроде «если у нас есть любовь и мама в спайках, тогда 70%, что у нас есть значок». Конечно, мы можем изменить этот подход для достижения лучших результатов. – Neir0

4

Алгоритмы, такие как SVM, Naive Bayes и максимальные энтропийные, являются контролируемыми алгоритмами машинного обучения, а выход вашей программы зависит от набора тренировок, который вы предоставили. Для крупномасштабного анализа настроений я предпочитаю использовать метод неконтролируемого обучения, в котором можно определить чувства прилагательных путем кластеризации документов в однонаправленные части и маркировать кластеры положительные или отрицательные. Более подробную информацию можно найти в этой статье. http://icwsm.org/papers/3--Godbole-Srinivasaiah-Skiena.pdf

Надеется, что это поможет вам в вашей работе :)

0

Вы можете найти некоторые полезные материалы по Sentimnetal analysis using python. Данная презентация обобщает Sentiment анализ в 3 простых шага,

  • Этикетировочные данные
  • Preprocessing &
  • Модель обучения
0

Настроения анализ представляет собой область текущих исследований. И сейчас идет много исследований. Для обзора последних, наиболее успешных подходов я бы обычно советовал вам взглянуть на общие задачи SemEval. Обычно каждый год они проводят конкурс по анализу настроений в Twitter.Вы можете найти документ, описывающий задачу, и результаты для 2016 года здесь (возможно, немного техничны): http://alt.qcri.org/semeval2016/task4/data/uploads/semeval2016_task4_report.pdf

Начиная с этого момента вы можете ознакомиться в документах, описывающих отдельные системы (как указано там) ,