Encontrar palabras clave (keywords,tags) (Primer Intento)

Bueno llamemos le FIGHT ONE primer intento porque es muy cutre. Resulta que en el foro en el que vivo participo hubo una pregunta sobre como encontrar palabras clave. Esta claro que no es fácil porque hay que filtrar muchas palabras, quitar adjetivos y cosas así.

Pero para acercarme un poco (solo un 0.00000001%) intente hacer algo. Lo he hecho in english porque es mas fácil determinar que es un carácter alfanumérico y que no. (La ñ por ejemplo no es ¬¬).


Encontar keywords (palabras clave) con PHP

Básicamente se trata de un filtro que borra cualquier cosa (menos números y letras, comprueba que su longitud es de mas de X caracteres, busca en la lista negra (lista que cada uno creara por su cuenta xD, si no esta, busca la palabra para ver si se repite mas de X veces y si todo se cumple la pone en un array.

<?php
    function findkeyword($text,$false,$min,$repeat){
        $keyword = array();
        $text = strtolower($text); // Covertir a letras minusculas
        $words = explode(' ',$text); // Separar palabras

        foreach($words as $word){
             // Saltar cualquier palabra < de # chr.
            if(preg_match('[w{'.$min.',}]', $word)){
                //Eliminar cualquier # excepto alfanum
                $word = preg_replace('[W]','',$word);
                if(!in_array($word,$false)){
                    // Contar repeticiones
                    $findrepeat = substr_count($text, $word);
                    // añadir a lista clave.
                    if($findrepeat > $repeat) {$keyword[] = $word;}
                }
            }
        }
        return array_unique($keyword);
    }


    $repeat = 2; // minimas veces repedita para ser keyword.
    $min = 3; // minima longitud de la palabra
    $texto = ''; // texto para procesar
    $false = array('you','me','he','and'); // lista de palabras que no estan admitidas.
    
    print_r(findkeyword($texto,$false,$min,$repeat));
?>

Suponiendo que el texto es:

Silence! Stupid monkey. I kill you. You think you'r better than my chicken! NO! Stupid monkey. My chicken is better than you! I kill you! Stupid monkey... my chicken is the best!

Lo que nos devolvería esta pequeña función es:
Array ( [0] => stupid [1] => monkey [2] => chicken )

Próximamente FIGHT TWO el segundo intento xD

Saludos

Comentarios

Entradas populares de este blog