Ejemplo n.º 1
0
function limpiar_docs($dir)
{
    $dird = $dir . ".txt";
    exec("pdftotext {$dir} {$dird}");
    $contenido = "";
    $contenido = file_get_contents($dird);
    //leer el archivo .txt
    $contenido = strtolower($contenido);
    //a minusculas
    $p = array('/À/', '/Â/', '/Ã/', '/Ä/', '/Å/', '/È/', '/Ê/', '/Ë/', '/Ì/', '/Î/', '/Ï/', '/Ò/', '/Ô/', '/Õ/', '/Ö/', '/Ø/', '/Ù/', '/Û/', '/Ü/', '/Á/', '/É/', '/Í/', '/Ó/', '/Ú/', '/á/', '/é/', '/í/', '/ó/', '/ú/', '/à/', '/è/', '/ì/', '/ò/', '/ù/', '/â/', '/ê/', '/î/', '/ô/', '/û/', '/ä/', '/ë/', '/ï/', '/ö/', '/ü/', '/ã/', '/å/', '/õ/', '/ø/', '/ç/', '/ÿ/', '/Ñ/', '//', '/1/', '/2/', '/3/', '/4/', '/5/', '/6/', '/7/', '/8/', '/9/', '/0/');
    $r = array('a', 'a', 'a', 'a', 'a', 'e', 'e', 'e', 'i', 'i', 'i', 'o', 'o', 'o', 'o', 'o', 'u', 'u', 'u', 'a', 'e', 'i', 'o', 'u', 'a', 'e', 'i', 'o', 'u', 'a', 'e', 'i', 'o', 'u', 'a', 'e', 'i', 'o', 'u', 'a', 'e', 'i', 'o', 'u', 'a', 'a', 'o', 'o', 'c', 'y', 'ñ', '', '', '', '', '', '', '', '', '', '', '');
    $contenido = preg_replace($p, $r, $contenido);
    //reemplazar vocales con acentos, entre otros.
    $contenido = ereg_replace("[^A-Za-z0-9 '\n'ñ]", "", $contenido);
    //quitar caracteres especiales.
    $stopwords_file = "stopwords.txt";
    //a esta funcion se le pasa la variable con el contenido limpio y el archivo que contiene las stopwords.
    $contenido = stop_words($contenido, $stopwords_file);
    //funcion que elimina todas las stopwords
    $contenido = str_replace("\n", " ", $contenido);
    $contenido = str_replace("\r", " ", $contenido);
    $contenido = str_replace("\\b", " ", $contenido);
    $contenido = str_replace("\t", " ", $contenido);
    $contenido = quitar_espacios_dobles($contenido);
    //Se reemplaza el archivo que tenia el texto sin limpiar, con el texto limpio.
    $fp = fopen($dird, 'w');
    fwrite($fp, $contenido, strlen($contenido));
    fclose($fp);
}
 $stopwords_file = "stopwords.txt";
 $lista = explode(",", $_POST['txtConsulta']);
 $nkey = count($lista);
 for ($i = 0; $i < $nkey; $i++) {
     $lista[$i] = strtolower($lista[$i]);
 }
 $p = array('/À/', '/Â/', '/Ã/', '/Ä/', '/Å/', '/È/', '/Ê/', '/Ë/', '/Ì/', '/Î/', '/Ï/', '/Ò/', '/Ô/', '/Õ/', '/Ö/', '/Ø/', '/Ù/', '/Û/', '/Ü/', '/Á/', '/É/', '/Í/', '/Ó/', '/Ú/', '/á/', '/é/', '/í/', '/ó/', '/ú/', '/à/', '/è/', '/ì/', '/ò/', '/ù/', '/â/', '/ê/', '/î/', '/ô/', '/û/', '/ä/', '/ë/', '/ï/', '/ö/', '/ü/', '/ã/', '/å/', '/õ/', '/ø/', '/ç/', '/ÿ/', '/Ñ/', '//', '/1/', '/2/', '/3/', '/4/', '/5/', '/6/', '/7/', '/8/', '/9/', '/0/');
 $r = array('a', 'a', 'a', 'a', 'a', 'e', 'e', 'e', 'i', 'i', 'i', 'o', 'o', 'o', 'o', 'o', 'u', 'u', 'u', 'a', 'e', 'i', 'o', 'u', 'a', 'e', 'i', 'o', 'u', 'a', 'e', 'i', 'o', 'u', 'a', 'e', 'i', 'o', 'u', 'a', 'e', 'i', 'o', 'u', 'a', 'a', 'o', 'o', 'c', 'y', 'ñ', '', '', '', '', '', '', '', '', '', '', '');
 for ($i = 0; $i < $nkey; $i++) {
     $lista[$i] = preg_replace($p, $r, $lista[$i]);
     $lista[$i] = ereg_replace("[^A-Za-z0-9 '\n'ñ]", "", $lista[$i]);
     $lista[$i] = str_replace("\n", " ", $lista[$i]);
     $lista[$i] = str_replace("\r", " ", $lista[$i]);
     $lista[$i] = str_replace("\\b", " ", $lista[$i]);
     $lista[$i] = str_replace("\t", " ", $lista[$i]);
     $lista[$i] = stop_words($lista[$i], $stopwords_file);
     $lista[$i] = quitar_espacios_dobles($lista[$i]);
 }
 //Quitar los espacios que quedan cuando en la consulta un palabra clave es un stopword.
 for ($i = 0; $i < $nkey; $i++) {
     if ($lista[$i] == "") {
         unset($lista[$i]);
     }
 }
 $lista = array_values($lista);
 /*
 			//Mostar resultado de la lista
 			echo "Lista de palabras claves<br>";
 			for($i=0; $i<count($lista); $i++)
 				echo "Palabra[".$i."]= ".$lista[$i]."<br>";