Извлечение горячих тем из Twitter
Я создаю веб-сайт для поиска и показа самых горячих тем в Твиттере для моего финального проекта. Кто-нибудь знает, как извлечь темы из огромного количества твитов за последнюю неделю или за один день? Мне также интересно, как отображать такие темы, как облако тегов, на http://tweet3d.com/ и отображать тенденции каждой темы, например http://trendistic.indextank.com/.
Я действительно нуждаюсь в вашей помощи, так как этот финальный проект в конце этого месяца. Мой партнер просит меня использовать Flash Builder, я тоже учусь этому. Спасибо, парни.
Дополнительная информация (20.11.2011): после того, как я выполню поиск в Google, я перехожу к этой статье:сравнивая Twitter и традиционные медиа с использованием тематической модели, вы можете получить к ней доступ по этой ссылке: статья, но я не могу понять модель, поскольку Мне не хватает соответствующего фона.
2 ответа
Я не очень знаком с API Twitter, но, возможно, это может помочь: https://dev.twitter.com/docs/api/1/get/trends/current
Я собрал хорошую скрипку JS, которая должна ответить на все ваши вопросы, когда дело доходит до работы с API Twitter. Веб-приложение захватывает трендовые локали и позволяет перейти к актуальным темам, а затем просмотреть твиты внутри.
Я также включил стандартное поле отправки поиска в Твиттере, так что странным образом, это простой клиент Tweetdeck для изучения. Также, чтобы продвинуть адаптацию новых библиотек Jquery, я использовал 1.91, который использует новый синтаксис события live.bind click.
наслаждаться
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();
});