从Twitter上提取热门话题



我正在为我的最终项目建立一个网站,查找和显示目前在Twitter上最热门的话题。有人知道如何从上周或一天内的大量tweet中提取主题吗?我还想知道如何在http://tweet3d.com/上显示像标签云一样的主题,并在http://trendistic.indextank.com/上显示每个主题的趋势。

我真的需要你的帮助,因为这个月底要交最后一个项目。我的伙伴让我使用Flash Builder,我也在学习使用它。谢谢。

附加信息(2011年11月20日):在谷歌上搜索后,我来到了这篇论文:使用主题模型比较Twitter和传统媒体,你可以通过这个链接访问它:论文,但我无法理解模型,因为我缺乏相关的背景。

我不太熟悉Twitter的API,但也许这可以帮助:https://dev.twitter.com/docs/api/1/get/trends/current

我整理了一个很好的JS工具,当涉及到处理Twitter API时,它应该可以回答你所有的问题。web应用程序捕获趋势区域,并允许您深入到趋势主题,然后查看其中的tweet。

我还包含了一个标准的Twitter搜索提交框,所以以一种奇怪的方式,这是一个供您检查的基本Tweetdeck客户端。另外,为了推动新的Jquery库的适配,我使用了1.91,它使用了新的工具。绑定点击事件语法。

享受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();
});

最新更新