2013-07-03 2 views
4

На прошлой неделе я разработал простой читатель новостей с jQuery, разбор JSONP и вставку сгенерированного списка в поток веб-страницы. Сегодня утром меня задали этот вопрос: «Есть ли какой-то интеллектуальный алгоритм, который способен« понять », если новость плохая, хорошая или нейтральная?» Мой ответ ... «Ну ... у меня нет идеи». ... Вот почему я задаю этот вопрос: есть ли способ реализовать такую ​​вещь? Единственное, что я могу сказать, это проверить, содержит ли название такие слова, как «убитый, бомба, убийца, наводнение, землетрясение, цунами, ...» и т. Д. ... Любая другая идея? Знаете ли вы, что аналогичные решения уже реализованы? Спасибо за вашу помощь!Варианты реализации, чтобы определить, являются ли новости хорошими новостями или плохими новостями

+8

Это называется [Анализ настроений] (http://en.wikipedia.org/wiki/Sentiment_analysis). В этой теме должно быть много научных публикаций. – Sirko

+7

«Убийца погиб, жертва выжила» – athabaska

+1

Взгляните сюда: [http://www.uclassify.com/browse/uClassify/Sentiment](http://www.uclassify.com/browse/uClassify/Sentiment). –

ответ

1

Вам нужен алгоритм классификации. Существует много разных вариантов, например. см. here. Известный и простой для реализации, начинающийся с Naive Bayes.

В книге «Наивный Байес» вы смотрите на частоту слов, появляющихся в новостях, которые вы уже признали плохими, а также на частотах тех слов, которые появляются в новостях, которые вы уже оценили как хорошие. Это дает вам оценку условных вероятностей P (слово | good) и P (слово | bad), то есть вероятность увидеть слово, данное хорошие новости, и вероятность увидеть слово с плохими новостями.

Когда вы видите новую новость, вы определяете, какие слова есть и нет в новостном элементе, и используйте теорему Байеса, чтобы дать вам P (хорошие слова) и P (плохие слова), по существу, путем умножения вместе вероятности, которые вы вычисляли выше слов, появляющихся или не появляющихся в вашей новостной статье, вместе с тем, как часто вы ожидаете хорошие или плохие новости. Если P (хорошие слова)> P (плохие слова), то это хорошие новости. (Я помещал некоторые математические данные в question. Я написал какое-то время назад, если вам интересно, но есть гораздо лучшие источники в Интернете и в книгах.)

Naive Bayes - это хорошо известная техника, а также используется для фильтрации спама. Это также интересно, из-за того, что не касается. В частности, он не учитывает порядок или контекст или слова. Так что «На этой неделе не было никаких ураганов», может быть хорошей новостью, несмотря на то, что она содержит работу «Ураган». Я бы предположил, что такие соображения, вероятно, более важны при анализе новостных статей, чем твиты, например. В любом случае это интересная область, и уже проделана большая работа.

+0

Спасибо TooTone, это действительно интересно и полезно, прежде всего, как вы говорите в конце, когда судите новости, которые, вероятно, содержат такие слова, как «ураган», «цунами» или подобное. Я тщательно читаю, спасибо! –

1

алгоритмы серии для обработки это называются supervised learning, которые относятся к machine learning.

+0

Спасибо! Я посмотрю на это! –

+1

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

2

Здесь это делается для twitter, это называется анализом чувств.

http://www.csc.ncsu.edu/faculty/healey/tweet_viz/tweet_app/

http://www.csc.ncsu.edu/faculty/healey/tweet_viz/

+0

Спасибо! Я посмотрю на это! –

+0

Прохладный, надеюсь, что я ответил на ваш вопрос, так как он был довольно широким (что я понимаю почему) –

+0

Я не уверен, что анализ настроений - это то, о чем просит OP, SA - отличная классификация эмоций, неявных в тексте. Однако обычно новости пишутся в нейтральном настроении. – Pedrom

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