Pergunta

Meu estrutura: em cada categoria há textos. Estes textos são entradas próprias. Então, tabela 'categoria' e 'textos' tabela. Há cerca de 90 textos em cada categoria, cada texto é de cerca de 300 caracteres.

O que eu quero fazer é fazer meta tags (palavras-chave) para as categorias. Como> obter todos os 'textos' e classificar relevantes todas as palavras e tomar o top 10 palavras. Estes top 10 vai ser palavra-chave meta tag da categoria.

Agora .. o truque> como recuperar os top 10 palavras. Atualmente> Tenho que cada texto (é um texto completo) será dividida em uma matriz per-palavra. Esta matriz (em php) será bastante longo. Depois, tomo a frequência de cada palavra e classificá-lo novamente em frequência. Voila top 10 palavras.

Eu não testei este procedimento, mas eu acho que pode demorar um pouco. Ele será armazenado em cache para que ele só terá que executar uma vez por semana ou assim, mas ainda assim, eu não gostaria de ter um tempo limite.

Vocês têm alguma dica? Qualquer ajuda apreciado.

Obrigado,

Maurice

Foi útil?

Solução

Ok, agora que eu disse a minha paz no comentário acima, eu vou chegar ao seu algoritmo.

Existem várias maneiras de fazer isso, vou me concentrar em uma abordagem PHP-pesado e deixar que outras Soers fazer alguns outros.

Eu estou indo supor que você já tenha consultado o banco de dados e guardar todas as palavras como uma lista separada por espaço para a variável $ textos

// Sample data in $texts
$texts      = "orange orange apple apple apple banana";
$withCounts = array_count_values( explode( ' ', $texts ) );

asort( $withCounts );
$topTen = array_keys( array_reverse( array_slice( $withCounts, -10 ) ) );

print_r( $topTen );
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top