Извлечение горячих тем из Twitter

Я создаю веб-сайт для поиска и отображения самых горячих тем в Твиттере для моего финального проекта. Кто-нибудь знает, как извлечь темы из огромного количества твитов за последнюю неделю или за один день? Мне также интересно, как отобразить такие темы, как облако тегов, на http://tweet3d.com/ и показать тенденция каждой темы, например http://trendistic.indextank.com/.

Мне очень нужна ваша помощь, так как этот последний проект должен быть сдан в конце этого месяца. Мой партнер просит меня использовать Flash Builder, я тоже учусь им пользоваться. Спасибо, парни.


Дополнительная информация (20.11.2011): после поиска в Google я наткнулся на эту статью: сравнивая Twitter и традиционные медиа с использованием тематической модели, вы можете получить к ней доступ по этой ссылке: paper, но я не могу понять модель, так как у меня нет соответствующей информации.


person Lenny    schedule 20.11.2011    source источник
comment
+1... Хороший вопрос для новичка :)   -  person Akos    schedule 20.11.2011
comment
@Akos На самом деле это мой проект Введение в визуализацию, мое предложение, похоже, использует знания интеллектуального анализа данных, с которыми я не знаком. Можете ли вы дать мне несколько советов? Спасибо.   -  person Lenny    schedule 20.11.2011


Ответы (2)


Я не так хорошо знаком с Twitter API, но, возможно, это могло бы помочь: https://dev.twitter.com/docs/api/1/get/trends/current

person Akos    schedule 20.11.2011
comment
Спасибо за ответ. Я замечал этот API раньше, но когда я даю окончательную презентацию, другим может показаться очень простым использовать API Twitter для получения тем, а не поиск тем с помощью наших собственных методов. Это, возможно, наше последнее средство, если я не смогу придумать идею. - person Lenny; 20.11.2011

Я собрал хорошую скрипту JS, которая должна ответить на все ваши вопросы, когда дело доходит до работы с Twitter API. Веб-приложение захватывает популярные локали и позволяет вам переходить к популярным темам, а затем просматривать твиты внутри.

Я также включил стандартное поле для поиска в Твиттере, так что, как ни странно, это простой клиент Tweetdeck, который вы можете изучить. Кроме того, чтобы ускорить адаптацию новых библиотек Jquery, я использовал версию 1.91, в которой используется новый синтаксис события щелчка live.bind.

Наслаждаться

http://jsfiddle.net/jdrefahl/5M3Gn/

function searchTwitter(query) {
$.ajax({
    url: 'http://search.twitter.com/search.json?' + jQuery.param(query),
    dataType: 'jsonp',
    success: function (data) {
        var tweets = $('#tweets');
        tweets.html('');
        for (res in data['results']) {
            tweets.append('<div>' + data['results'][res]['from_user'] + ' wrote: <p>' + data['results'][res]['text'] + '</p></div><br />');
        }
    }
});
}

$(document).ready(function () {

function getTrendsByID(id) {
    $.ajax({
        url: 'http://api.twitter.com/1/trends/' + id + '.json',
        dataType: 'jsonp',
        success: function (data) {
            $.each(data[0].trends, function (i) {
            });
        }
    });
};

function getLocales() {
    $.ajax({
        url: 'https://api.twitter.com/1/trends/available.json',
        dataType: 'jsonp',
        success: function (data) {
            var locales = $('ul#locales');
            locales.html('');
            $.each(data, function (i) {
                localeID[i] = data[i].woeid;
                $('ul#locales').append('<li>' + data[i].name + '</li>');
            });
        }
    });

};

function getTrends(id) {
    $.ajax({
        url: 'https://api.twitter.com/1/trends/' + id + '.json',
        dataType: 'jsonp',
        success: function (data) {
            var trends = $('ul#currentTrends');
            trends.html('');
            $.each(data[0].trends, function (i) {
                $('ul#currentTrends').append('<li>' + data[0].trends[i].name + '</li>');
            });
        }
    });
};

// Event Handlers
$(document).on("click", "#locales li", function () {
    var $this = $(this);
    var localesHdr = $('#currentTrendsCont h3');
    var tweets = $('#tweets');
    var trendsHdr = $('#tweetsCont h3');
    trendsHdr.html('');
    tweets.html('');
    localesHdr.html('');
    $('#currentTrendsCont h3').html($this.text());
    getTrends(localeID[$this.index()]);
});

$(document).on("click", "#currentTrends li", function () {
    var $this = $(this);
    var trendsHdr = $('#tweetsCont h3');
    trendsHdr.html('');
    $('#tweetsCont h3').html($this.text());
    var params = {
        q: $this.text(),
        rpp: 10
    };
    searchTwitter(params);
});

$('#submit').click(function () {
    var trendsHdr = $('#tweetsCont h3');
    var trends = $('#currentTrends');
    var local = $('#currentTrendsCont h3');
    local.html('');
    trendsHdr.html('');
    trends.html('');
    $('#tweetsCont h3').html('search query: '+$('#query').val());
    var params = {
        q: $('#query').val(),
        rpp: 10
    };
    searchTwitter(params);
});

// Globals
var localeID = new Array();

// Init!
getLocales();

});
person John Drefahl    schedule 06.03.2013