From 450245f254c41b0a0fc20c32b6900aa666ec622f Mon Sep 17 00:00:00 2001 From: humano Date: Fri, 17 Nov 2017 14:39:51 -0500 Subject: [PATCH] prueba de concepto de estadisticas en notas --- milfs/funciones/funciones.php | 263 +++++++++++++++++++++++++++++++++- 1 file changed, 258 insertions(+), 5 deletions(-) diff --git a/milfs/funciones/funciones.php b/milfs/funciones/funciones.php index 78cd6ed..95524b0 100644 --- a/milfs/funciones/funciones.php +++ b/milfs/funciones/funciones.php @@ -1,12 +1,246 @@ array('de','la','que','el','en','y','a','los','del','se','las','por','un','para','con','no','una','su','al','es','lo', + 'como','más','pero','sus','le','ya','o','fue','este','ha','sí','porque','esta','son','entre','está','cuando','muy','sin','sobre', + 'ser','tiene','también','me','hasta','hay','donde','han','quien','están','estado','desde','todo','nos','durante','estados','todos', + 'uno','les','ni','contra','otros','fueron','ese','eso','había','ante','ellos','e','esto','mí','antes','algunos','qué','unos','yo' + ,'otro','otras','otra','él','tanto','esa','estos','mucho','quienes','nada','muchos','cual','sea','poco','ella','estar','haber', + 'estas','estaba','estamos','algunas','algo','nosotros','mi','mis','tú','te','ti','tu','tus','ellas','nosotras','vosotros','vosotras', + 'os','mío','mía','míos','mías','tuyo','tuya','tuyos','tuyas','suyo','suya','suyos','suyas','nuestro','nuestra','nuestros','nuestras', + 'vuestro','vuestra','vuestros','vuestras','esos','esas','estoy','estás','está','estamos','estáis','están','esté','estés','estemos', + 'estéis','estén','estaré','estarás','estará','estaremos','estaréis','estarán','estaría','estarías','estaríamos','estaríais', + 'estarían','estaba','estabas','estábamos','estabais','estaban','estuve','estuviste','estuvo','estuvimos','estuvisteis','estuvieron', + 'estuviera','estuvieras','estuviéramos','estuvierais','estuvieran','estuviese','estuvieses','estuviésemos','estuvieseis','estuviesen', + 'estando','estado','estada','estados','estadas','estad','he','has','ha','hemos','habéis','han','haya','hayas','hayamos','hayáis', + 'hayan','habré','habrás','habrá','habremos','habréis','habrán','habría','habrías','habríamos','habríais','habrían','había','habías', + 'habíamos','habíais','habían','hube','hubiste','hubo','hubimos','hubisteis','hubieron','hubiera','hubieras','hubiéramos','hubierais', + 'hubieran','hubiese','hubieses','hubiésemos','hubieseis','hubiesen','habiendo','habido','habida','habidos','habidas','soy','eres', + 'es','somos','sois','son','sea','seas','seamos','seáis','sean','seré','serás','será','seremos','seréis','serán','sería','serías', + 'seríamos','seríais','serían','era','eras','éramos','erais','eran','fui','fuiste','fue','fuimos','fuisteis','fueron','fuera','fueras', + 'fuéramos','fuerais','fueran','fuese','fueses','fuésemos','fueseis','fuesen','siendo','sido','tengo','tienes','tiene','tenemos', + 'tenéis','tienen','tenga','tengas','tengamos','tengáis','tengan','tendré','tendrás','tendrá','tendremos','tendréis','tendrán', + 'tendría','tendrías','tendríamos','tendríais','tendrían','tenía','tenías','teníamos','teníais','tenían','tuve','tuviste','tuvo', + 'tuvimos','tuvisteis','tuvieron','tuviera','tuvieras','tuviéramos','tuvierais','tuvieran','tuviese','tuvieses','tuviésemos', + 'tuvieseis','tuviesen','teniendo','tenido','tenida','tenidos','tenidas','tened', + 'ante', 'bajo', 'con', 'contra', 'desde', 'durante', 'entre', + 'hacia', 'hasta', 'mediante', 'para', 'por', 'pro', 'según', + 'sin', 'sobre', 'tras', 'vía', 'también','parecen','toca','numero','número','video','vídeo','fotos','asi','así','miles' + ,'cientos','imágenes','imagenes','años','sentido','ultimos','últimos','mano','dicen','casi','servicio','vice','pero','Pero','trata','decir' + ), + 'a'=>array('el','él','los', 'las', 'una', 'unos', 'unas', 'este', 'estos', 'ese', + 'esos', 'aquel', 'aquellos', 'esta', 'estas', 'esa', 'esas', + 'aquella', 'aquellas', 'usted', 'nosotros', 'vosotros', + 'ustedes', 'nos', 'les', 'nuestro', 'nuestra', 'vuestro', + 'vuestra', 'mis', 'tus', 'sus', 'nuestros', 'nuestras', + 'vuestros', 'vuestras', 'de', 'la', 'su', 'La', 'No', 'rcn', 'RCN', 'El', 'una', 'Una' + ), + 'o'=>array('esto', 'que', 'del', 'es', 'en', 'ha', 'al', 'lo', 'un','si','sí','no','se','art','luego','solo','más','como','cómo','dijo', + 'buena','buen','algunos','algunas','el','donde','fueron','más','varios','personas','uno','dos','tres','cuatro','cinco','seis','siete','ocho','nueve','diez' + ,'causa','cien','mil','millon','millones','pesos','quien','que','fecha','tiene','vez','hay','horas','fue','com','var','uri','mas','quot','minuto','the','event', + 'param','pero','and','split','ciento','san','son','aacute','colombia','pais','un','Un','youtube','estaba','ayer','hoy','anoche', + 'adelante','ahora','allá','anoche','antaño','anteanoche','antenoche','antes','aquí','aún','ayer','constantemente','cuando','despacio', + 'después','durante','enantes','encima','endenantes','enseguida','hasta','hogaño','horita','hoy','luego','mañana','mientras','mucho', + 'nunca','primero','pronto','recientemente','recién','siempre','tarde','temprano','todavía','ya','parte','procedieron','están','Ver'), + ); + +$texto = $text; +$text = html_entity_decode($text); + +//$text = limpiar_cadena("$text"); + +///$text = str_replace(array('\r\n', '\n', '
', '
'),'', $text); +$text = str_replace(array('?','¿','¡','!',' ','"'," ",">","El"), ' ', $text); +//$text = str_replace(array('(',')',':','.','?','!','-','*','-','"','¿','¡',':',';','“','”','‘','’','“',"'","+","/>"), ' ', $text);//reemplazar el carácterno es válido +//$regex_nombres_compuestos = array('(\s[A-Z][\w-áéíóú]*(\s+[A-Z][\w-áéíóú]+)+)'); +$no_validos = array('(',')',':','.','?','!','-','*','-','"','¿','¡',':',';','“','”','‘','’','“',"'","+","/>",">"); +//$regex_nombres_compuestos = '(.[A-Z][\w-áéíóú]*(\s+[A-Z][\w-áéíóú]+)+)'; +//$regex_nombres_compuestos = '(.[A-ZÁÉÍÓÚ][\w-áéíóúñ]*(\s+[A-ZÁÉÍÓÚ][\w-áéíóúñ]+)+)'; +//$regex_nombres_compuestos = '(.[A-ZÁÉÍÓÚ][\w-áéíóúñ]*(\s((de)(( la))?)?\s?[A-ZÁÉÍÓÚ][\w-áéíóúñ]+)+)'; +$regex_nombres_compuestos = '(.[A-ZÁÉÍÓÚ]+[\wáéíóúñ]*(\s((de)(( la ))?)?\s?[A-ZÁÉÍÓÚ]+[\wáéíóúñ]+)+)'; +//$regex_nombres_compuestos = '(.[A-ZÁÉÍÓÚ][\w-áéíóúñ]*(.((de)(( la)?))?.?[A-ZÁÉÍÓÚ][\w-áéíóúñ]+)+)'; +///$text = preg_replace($mayuscula_inicial,"$0_compuesto_$1_$2", $text); + +preg_match_all("$regex_nombres_compuestos", $text, $array_nombres_compuestos); +//$array_nombres_compuestos[0] = str_replace($no_validos, '',$array_nombres_compuestos[0]);//reemplazar el carácterno es válido + +$array_nombres_compuestos_unicos[0]=array_unique($array_nombres_compuestos[0]); + + foreach($array_nombres_compuestos[0] as $clave => $v){ + $tags = str_replace(array(' '), '_', $v); + $compuestos .="$v
"; + //$array_compuestos[] = str_replace(array('(',')',':','.','?','!','-','*','-','"','¿','¡',':',';','“','”','‘','’','“',"'","+","/>"), ' ', strip_tags($tags));; + $array_compuestos[] = strip_tags($tags); + } +$text = strip_tags($text); +$text = str_replace(array('?','¿','¡','!',' ','\r\n', '\n','�'), ' ', $text); +$text = str_replace(array('(',')',':','.','?','!','-','*','-','"','¿','¡',':',';','“','”','‘','’','“',"'","+","/>"), ' ', $text);//reemplazar el carácterno es válido + +$text = str_replace(array(' ','.'), ',', $text);//sustituir por comas +$array=explode(",",$text);//Crear un array con las palabras +$array = array_merge($array_compuestos,$array); +//// debug +$array = array_diff($array, $extras['p'], $extras['a'], $extras['o']); + + +foreach ($array as $clave => $value) { +$title=""; +$tag_adicional=""; + $value=trim($value);//bye spaces +if ( strlen($value)>3) {//no smaller than X and not in banned + //$value = stemm_es::stemm($value); + //I can count how many time we ad and update the record in an array + if (@array_key_exists($value,$wordCounter)){//if the key exists we ad 1 more + $wordCounter[$value]=$wordCounter[$value]+1; + + } + else $wordCounter[$value]=1;//creating the key + + } + + } + + unset($arrText); + //$lema=stemm_es::stemm($wordCounter); + uasort($wordCounter,"cmp");//short from bigger to smaller + + + $keywords=""; + $count = 0; +foreach ($wordCounter as $key => $value){ + + if($value >1){ + if($count < $cantidad){ + //$keywords[] =$key; + $keywords[] ="$key"; + }else{break;} $count++; +} + } + +$tags=$keywords; + $resultado = $title; +if($tags !=''){ + + +$nube =""; +foreach($tags as $c=>$valor){ +//foreach($wordCounter as $c=>$valor){ + //$valor = $tags[0]; + + //$valor ="$valor "; + $p = stripos($resultado, $valor); + if($p !==false ){ + $s1 = substr($resultado, 0, $p); + $s2 = substr($resultado, $p, strlen($valor)); + $s3 = substr($resultado, ($p + strlen($valor))); + $resultado = $s1."#$s2".$s3; + //$r= $s1; + }else{ + $c = str_replace(array('_'), ' ', $valor); + $camel[] = str_replace(array(' '), '', $c); + $palabras[]=explode(" ",$c);//Crear un array con las palabras + foreach($palabras as $valor){ + $listado_palabras[] = $valor; + + } + $ht = str_replace(array(' '), '', $c); + $limpios[] = $c; + + $cant = $wordCounter[$c]; + $size = ($cant/4); + $tag_adicional .= "$c " ; + + $nube .= "$c " ; + } + } + } + $resultado = " $compuestos $tag_adicional "; + if($tipo=="tags") { + return $tag_adicional; + }elseif($tipo=="personajes") { + //return $compuestos; + return $array_nombres_compuestos[0]; + }elseif($tipo=="nube") { + //return $compuestos; + return $nube; + }elseif($tipo=="limpio") { + //return $compuestos; + return $limpios; + }elseif($tipo=="camel") { + //return $compuestos; + return $listado_palabras[0]; + }else { + return $resultado; +} +///return $array; +///debug + +} + +function array_tabla($contenido,$campo){ + //return $contenido[0]; + foreach ($contenido as $id_campo => $valor) { + $linea .= "
$id_campo $valor esto
"; + + } + + + + +return $linea ; +} + +function formulario_corpus($id_form,$id_campo,$group,$tipo){ + + +$consulta = "SELECT count(control) as cantidad , id_campo ,contenido , campo_nombre FROM `form_datos`, `form_campos` WHERE `form_datos`.id_campo = `form_campos`.id AND `id_campo` = '$id_campo' AND `form_id` = '$id_form' GROUP BY $group order by cantidad"; +$link=Conectarse(); +mysqli_set_charset($link, "utf8"); + $sql=mysqli_query($link,$consulta); + + if (mysqli_num_rows($sql)!='0'){ +$array = array(); + while( $row = mysqli_fetch_array( $sql ) ) { + $etiquetas .="".html_entity_decode($row['contenido'])." "; + $array[] = html_entity_decode($row['contenido']); + $colores .= "'#".substr(md5(rand()), 0, 6)."',"; + } + + $etiqueta = "".substr (preg_replace("[\n|\r|\n\r|\t]",'', $etiquetas), 0, -1).""; + + }else { $grafica= $consulta; + } + $etiqueta = limpiar_cadena($etiqueta); + $etiqueta= cadena_array("$etiqueta","nube","50"); + + ///$etiqueta = array_tabla($etiqueta,"tags"); + + //$etiqueta = json_encode($etiqueta); + return $etiqueta; + +} + function formulario_autores($form,$id_usuario) { $link=Conectarse(); mysqli_set_charset($link, "utf8"); -$consulta ="SELECT COUNT(id_usuario) AS cantidad,id_usuario FROM `form_datos` WHERE `form_id` = '$form' GROUP BY `id_usuario` ORDER BY cantidad DESC "; +//$consulta ="SELECT COUNT(control) AS cantidad,id_usuario FROM `form_datos` WHERE `form_id` = '$form' GROUP BY `id_usuario` ORDER BY cantidad DESC "; +$consulta ="SELECT *,count(distinct control) as cantidad FROM form_datos WHERE form_id = '$form' GROUP BY id_usuario order by cantidad DESC "; /* if($autor=="") { @@ -34,10 +268,10 @@ $consulta ="SELECT COUNT(id_usuario) AS cantidad,id_usuario FROM `form_datos` WH $autor .= "
  • $Autor $row[cantidad]
  • "; }else { $otros .= "
  • Otro $row[cantidad]
  • ";} } - $resultado = "$cantidad "; + $resultado = "$cantidad "; }else {$resultado =0;} -return $resultado ; +return $resultado ; } @@ -64,24 +298,35 @@ return $resultado; } function notas_estadisticas($form,$div,$tipo) { -$cantidad_notas= formulario_contar_registros("$form","","",""); +$cantidad_notas= formulario_contar("$form"); $cantidad_autores= formulario_autores("$form",""); $total_gusta= contar_interacciones("","Gusta","","$form"); $total_compromisos= contar_interacciones("","Comprometo","","$form"); $total_comentarios= contar_interacciones("","Comentar","","$form"); +$id_campo = campo_titulo($form) ; +$corpus = formulario_corpus("$form","$id_campo","contenido","barras"); + $contenido ="
    +
    +
    +
      +
    • Palabras mas usadas
    • +
    • $corpus
    • +
        +
    +
    "; @@ -1118,6 +1363,8 @@ $resultado=" return $resultado; } + + function json_tabla($contenido,$campo,$control){ @@ -16854,6 +17101,12 @@ $respuesta->addAssign("$div","innerHTML","$resultado"); } $xajax->registerFunction("XXX"); +function cmp($a, $b) {//Ordenar los numeros descendientemente + if ($a == $b) return 0; + return ($a < $b) ? 1 : -1; +} + + function holamundo() { $respuesta = new xajaxResponse('utf-8');