Pregunta

Mi estructura: en cada categoría hay textos. Estos textos son entradas propias. Entonces, tabla 'categoría' y tabla 'textos'. Hay alrededor de 90 textos en cada categoría, cada texto tiene aproximadamente 300 caracteres.

Lo que quiero hacer es crear metaetiquetas (palabras clave) para las categorías. Cómo & Gt; obtenga todos los 'textos' relevantes y clasifique todas las palabras y tome las 10 palabras principales. Estos 10 principales serán la metaetiqueta de palabras clave de la categoría.

Ahora ... el truco > cómo recuperar esas 10 palabras principales. Actualmente & Gt; Tengo que cada texto (es un texto completo) se dividirá en una matriz por palabra. Esta matriz (en php) será bastante larga. Después, tomo la frecuencia de cada palabra y la clasifico nuevamente en frecuencia. Voila las 10 palabras principales.

No he probado este procedimiento pero supongo que puede llevar un poco. Se almacenará en caché, por lo que solo tendrá que ejecutarse una vez por semana más o menos, pero aún así, no me gustaría tener un tiempo de espera.

¿Ustedes tienen algún consejo? Cualquier ayuda apreciada.

Gracias,

Maurice

¿Fue útil?

Solución

Ok, ahora que he dicho mi paz en el comentario anterior, iré a su algoritmo.

Hay varias maneras de hacer esto, me enfocaré en un enfoque basado en PHP y dejaré que otros SOers hagan otros.

Asumiré que ya ha consultado la base de datos y ha almacenado todas las palabras como una lista separada por espacios en la variable $ text

// 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 bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top