Stand 0 Denunciar post Postado Outubro 6, 2010 O quero fazer é algo igual ao Trend topic no twitter, para quem não sabe o que é, o twitter faz uma busca no banco de dados e retorna as 10 palavras mais faladas naquele periodo de tempo: exemplo: tabela: id | usuario | comentario 1 | funalo | fui a escola 2 | beltrano | odeio ir a escola 3 | siclano | sou o novo professeor dessa escola neste exemplo a busca retornaria a palavra "escola". Na logica pensei em separar cada palavra pelo espaço, gravar em uma tabela separada, fazer um consulta distinta, e contar cada resultado. mas acho que não sulucionaria. e não consigo fazer nem isso! por que ainda tem um porem, queria colocar outros criterios de filro como data e etcs , para ver as palavras mais utilizadas em um determinado peridodo de tempo, algo assim. alem disso, separar por espaço não daria certo, pq queria que fosse possivel gravar palavras compostas, exemplo: id | usuario | comentario 1 | funalo | gosto do Professor Silva 2 | beltrano | encontrei na rua o Professor Silva 3 | siclano | Professor Silva me deu zero neste exemplo a busca retornaria as palavras "Professor Silva". Fiz diversos testes, buscas no forum e na net, não encontrei nenhuma luz, qualquer dica sera bem vinda! obrigado Compartilhar este post Link para o post Compartilhar em outros sites
Prog 183 Denunciar post Postado Outubro 6, 2010 Isto pode ser feito de 2 maneiras: - uma seria livre, toda e qualquer palavra seria contabilizada; - baseada em dicionários ou em algoritmos; Em ambos os casos você precisa armazenar estas informações em alguma estrutura de dados. Para otimizar o processo você vai precisar fazer esta extração no momento da postagem, não por meio de um select. Outra estratégia seria criar um código para executar este processo de extração e armazenar estes dados estatísticos na estrutura de dados. Este é um bom cenário para o uso de NoSQL, principalmente se os dados forem voláteis. Alguém pode aparecer com outra idéia, vamos esperar... Compartilhar este post Link para o post Compartilhar em outros sites
Stand 0 Denunciar post Postado Outubro 6, 2010 Obrigado pela resposta, mas pode me dar um exemplo do que disse? o que estou pensando em fazer é o seguinte, quando alguem postar algum conteudo: ex: $postado = "ontem eu fui a feira"; vou recortar a string pelo espaço e jogar nuam tabela sql as palavras soltas exluindo pronomes e outras coisas que não servem para nada ( tipo: " eu, o , a, nos, é, e etcs) exemplo: no exemplo mostrado "ontem eu fui a feira" ficaria "ontem" "fui" "feira". Depois contava as mais registradas: SELECT COUNT( * ) AS `Registros` , `palavras` FROM `mais_falados` GROUP BY `palavras` ORDER BY `palavras` Retornando Registros palavras 35 ontem 76 fui 109 feira 76 outras 109 exemplo 109 palavras E para deixar sempre atualizado, não ficar enchendo muito o banco com coisa antiga. cada inserção nova excluia a mais antiga, limitando um maximo, exemplo, quando completasse 100.000 inserções, a mais antiga era excluida para adição da nova, e dai em diante toda que entrasse excluia a mais antiga. ok, ate ai com um poquinho de dor de cabeça eu faria numa boa, o lance é! como agrupar palavras compostas e não deixar simplesmente, separando as palavras por espaço. exemplo: postava " eu conheço lindolfo pires" resultado "conheço" "lindolfo pires", deu pra enteder? no que disse acima, retornara sempre palavras soltas, separadas por espaço, como gravar tambem palavras compostas? como indentificar quando a TAG é composta por duas palavras? esse é o X da questão, É o mesmo principio da NUVEM DE TAG, OU TAGCLOUD, algumas nuvens gravam as palavras compostas,só que não achei nenhum exemplo na net. só que na nuvem de tags, tem um css para dar mais destaques as tags mais faladas ou menos faladas, eu nao quero esse lance de porcentagem e modificação por css. RESUMO: QUERO APENAS GRAVAS SENTENÇAS EM UM BANCO, QUE FORAM POSTADAS EM UM CAMPO QUALQUER (ex: comentários), ISSO INCLUI GRAVAR PALAVRAS SOLTAS OU COMPOSTAS POR DUAS OU MAIS PALAVRAS, DEPOIS CONSULTAR NO SQL E RETORNAR AS SENTENÇAS MAIS OCORRIDAS ( IGUALZINHO AO TREDING TOPIC DO TWITTER, OU IGUAL A NUVEM DE TAG SO QUE SEM CSS PRA DESTAQUE) obrigado Compartilhar este post Link para o post Compartilhar em outros sites
VascoDaGama 2 Denunciar post Postado Outubro 7, 2010 "trend words" é bastante complexo dependendo da quantidade de relacionamentos.. não confunda "trend" por "hit" trend -> significa tendência, que para esse caso específico, não quer dizer necessariamente, hit. o caso do twitter é feito uma análise de relevância sobre os temas mais discutidos e não sobre as palavras mais postadas. claro que as mais postadas tb são avalidas mas em critérios secundários. Compartilhar este post Link para o post Compartilhar em outros sites
Stand 0 Denunciar post Postado Outubro 7, 2010 Obrigado pela resposta quer dizer que o TT do twiter é moderado então? não é automatizado? Tudo bem, que não fique igualzinho o do twitter Então como eu faria algo desse tipo? tipo nuvem de tag, semelhante, so que sem css. Alguma dica, codigo ou sugestão? Compartilhar este post Link para o post Compartilhar em outros sites