Foros del Web » Programando para Internet » PHP »

Ayuda Urgente Textarea Ortografia

Estas en el tema de Ayuda Urgente Textarea Ortografia en el foro de PHP en Foros del Web. Hola, estoy armando un sistema de examenes y apesar de mis intentos no he logrado lo siguiente: Crear un texto, que el usuario deba escribirlo ...
  #1 (permalink)  
Antiguo 18/02/2008, 08:06
(Desactivado)
 
Fecha de Ingreso: enero-2008
Ubicación: Mendoza
Mensajes: 458
Antigüedad: 16 años, 3 meses
Puntos: 2
Exclamación Ayuda Urgente Textarea Ortografia

Hola, estoy armando un sistema de examenes y apesar de mis intentos no he logrado lo siguiente:

Crear un texto, que el usuario deba escribirlo en un textarea y que al enviarlo me diga que errores de ortogrfia cometio, cuantos y si escribio todo el texto completo...

Como puedo hacerlo.. probe con psaspell pero no pude instalarlo busque y no he encontrado en ningun lado algo asi...

Plis... una ayudita...
  #2 (permalink)  
Antiguo 18/02/2008, 08:46
 
Fecha de Ingreso: febrero-2008
Ubicación: Bahia Blanca
Mensajes: 173
Antigüedad: 16 años, 3 meses
Puntos: 7
Re: Ayuda Urgente Textarea Ortografia

Para la ortografìa te recomiendo: http://www.phpclasses.org/browse/package/2398.html
y para el chequeo de campos, o si completò todo el texto completo, etc, te paso esta lib en javascript que trabaja en tiempo real. http://www.livevalidation.com/

Otra forma, serìa reemplazar el textarea por un editor wysiwyg integrado (hay varios gratis, que con los pones en lugar del textarea) y traen ortografìa y otros jugetes :)

Última edición por shock_dude; 18/02/2008 a las 08:50 Razón: agrego info
  #3 (permalink)  
Antiguo 18/02/2008, 08:53
(Desactivado)
 
Fecha de Ingreso: enero-2008
Ubicación: Mendoza
Mensajes: 458
Antigüedad: 16 años, 3 meses
Puntos: 2
Exclamación Re: Ayuda Urgente Textarea Ortografia

Es que no me sirve presisamente esas librerias.. lo que necesito en realidad, es desde un mismo texto Que siempre va a ser el mismo, tomar los siguientes datos...

Que palabras escribio mal, cuales escribio juntas (o sea no aplico el espaciador), errores de puntuacion, que me tome esos datos, es par aun examen, no necesito que sea en tiempo real, si no que al enviarse me tome esos datos....

Como puedo hacer esto, sin la libreria de php spell, ahi algun modo....

lo del wysiwyg trate de hacerlo, pero no me sirve tampoco, por que lo hace en el momento y yo necesito los datos una vez enviado el texto...

Plis sugerencias... y ademas en castellano, no me llevo del todo bien con el ingles... plis...

Última edición por cmarrero; 18/02/2008 a las 09:23
  #4 (permalink)  
Antiguo 18/02/2008, 09:35
Avatar de eddwinpaz  
Fecha de Ingreso: noviembre-2007
Ubicación: Merida , Venezuela
Mensajes: 1.066
Antigüedad: 16 años, 6 meses
Puntos: 25
Re: Ayuda Urgente Textarea Ortografia

mira si haz visto Gmail el tiene un corrector de palabras. bueno ese servicio existe gratuitamente gracias A que Google libero la API. busca sobre Google Api spellchecker y cuando hagas tu script utilizas (es) de español. el API devuelve un Array() de la palabra que cree que esta incorrecta.
  #5 (permalink)  
Antiguo 18/02/2008, 09:44
(Desactivado)
 
Fecha de Ingreso: enero-2008
Ubicación: Mendoza
Mensajes: 458
Antigüedad: 16 años, 3 meses
Puntos: 2
Exclamación Re: Ayuda Urgente Textarea Ortografia

probe tambien con la api de google, pero como dije, soy medio novato en esto, digamos algo intermedio, y n ose como manejarlo...

Ahora partiendo de la base que siempre es el mismo texto, se puede hacer algun scritp que compare y se fije las palabras escritas o algo asi con las que estan bien y de acuerdo a eso me diga la cantidad de errores etc...

Ya que mi intencion es simplemente realizar una correxion de un mismo texto siempre... y es muy complicado para ami, usar una api o librerias que no se como instalarlas...

ayuda plis

EDITADO:

Una forma que se me ocurrio:

Si yo tengo un texto por ejemplo de 400 plabras.

Y hago por ejemplo un scritp que me cuente la cantidad de caracteres, que me cuente la cantidad de espacios que tiene ese texto, que se fije palabra por palabra como esta escrita con hacentos y puntacion todo...

y luego cuando el usuario escriba, que me tire un resultado comparativo del texto original del que escribio el usuario, de esa manera puedo mostrar que fue lo que escribio bien y que fue lo que escribio mal...

PUEDE SER ALGO ASI... AYUDITA....

Última edición por cmarrero; 18/02/2008 a las 09:49 Razón: Para no publicar otra respuesta... edito
  #6 (permalink)  
Antiguo 18/02/2008, 09:51
Avatar de eddwinpaz  
Fecha de Ingreso: noviembre-2007
Ubicación: Merida , Venezuela
Mensajes: 1.066
Antigüedad: 16 años, 6 meses
Puntos: 25
Re: Ayuda Urgente Textarea Ortografia

ayayai... bueno lo mas recomendable ya que no manejas lo ya dicho. Puedes bajarte el plugin de Firefox el cual trae el diccionario con el cual corrige las palabras que están mal escritas. yo lo uso.. y actualmente no poseo errores en mis textos. ves
  #7 (permalink)  
Antiguo 18/02/2008, 10:00
(Desactivado)
 
Fecha de Ingreso: enero-2008
Ubicación: Mendoza
Mensajes: 458
Antigüedad: 16 años, 3 meses
Puntos: 2
Exclamación Re: Ayuda Urgente Textarea Ortografia

A ver, parece que no me entienden....

Imaginemos lo siguiente... un formulario que posee un textarea y un boton enviar nada mas...

el usuario tendra una hoja en la mano con un texto... lo escribira en el textarea precionara sobre el boton enviar, y el resultado debe decir cuantos errores tubo, el texto que el usuario escribi siempre sera el mismo....

Eso es lo que necesito hacer y se me ocurria lo siguiente:

Si pongo el texto correcto en una variable $texto , le hago un explode("",$texto); y hago un array con el mismo....

Luego cuando el usuario envia lo que el escribio que haga lo mismo... un explode("",$textousuario); y un array y luego compararia los array y muestro los reultados...

como puedo hacer eso.... algun asugerencia....
  #8 (permalink)  
Antiguo 18/02/2008, 10:09
 
Fecha de Ingreso: febrero-2008
Mensajes: 43
Antigüedad: 16 años, 2 meses
Puntos: 1
Re: Ayuda Urgente Textarea Ortografia

Vale ya veo lo que quieres hacer. Es sencillo simplemente compara palabra por palabra del texto y por cada vez que no coincidan incrementas un contador y guardas en un array las 2 palabras que no coinciden.
  #9 (permalink)  
Antiguo 18/02/2008, 14:46
(Desactivado)
 
Fecha de Ingreso: enero-2008
Ubicación: Mendoza
Mensajes: 458
Antigüedad: 16 años, 3 meses
Puntos: 2
Exclamación Re: Ayuda Urgente Textarea Ortografia

bien, pero digamos lo siguiente, que pasa si el usuario escribe dos palabras juntas, todo el scritp quedaria mal, ya que es como si se me atrasaria las comparaciones y terminarian de estar todas mal...

Es todo untema... en todo caso, ahi alguien que me pueda hacer un pequeño ejemplo para darme idea de como lo podria hacer...

ya que tambien debo identificar que tipo de error fue, si fuen por acentuacion, por ortografia o por tipeo digamos...

ayuda pliss
  #10 (permalink)  
Antiguo 19/02/2008, 04:12
(Desactivado)
 
Fecha de Ingreso: enero-2008
Ubicación: Mendoza
Mensajes: 458
Antigüedad: 16 años, 3 meses
Puntos: 2
Exclamación Re: Ayuda Urgente Textarea Ortografia

Podrias darme un ejemplo pequeño de lo que me decis, asi me doy mas idea....

Cita:
Iniciado por Odinet Ver Mensaje
Vale ya veo lo que quieres hacer. Es sencillo simplemente compara palabra por palabra del texto y por cada vez que no coincidan incrementas un contador y guardas en un array las 2 palabras que no coinciden.
gracias
  #11 (permalink)  
Antiguo 19/02/2008, 05:33
(Desactivado)
 
Fecha de Ingreso: enero-2008
Ubicación: Mendoza
Mensajes: 458
Antigüedad: 16 años, 3 meses
Puntos: 2
Exclamación Re: Ayuda Urgente Textarea Ortografia

Sigo tratando de armar algo y mirando detenidamente php he descubierto algunas funciones que me facilitan el manejo del texto y por ahi me ayudan a armar un scritp...

por ejemlo:

str_replace
strlen
ereg_replace
substr
strtok

Y algunas mas... y me estoy matando para poder conseguir lo que necesito con algunas de estas funciones.... alguien que me de una manito plisssss
  #12 (permalink)  
Antiguo 19/02/2008, 07:25
(Desactivado)
 
Fecha de Ingreso: enero-2008
Ubicación: Mendoza
Mensajes: 458
Antigüedad: 16 años, 3 meses
Puntos: 2
Exclamación Re: Ayuda Urgente Textarea Ortografia

Estuve viendo como hacer lo que pregunto, y algo asi puede ser la respuesta, pero necesito alguna ayuda con el scritp....

Código PHP:
  <?

//Este es el texto que esta bien y siempre sera el mismo
$texto "Este es un texto que se comparara con las funciones de cadena, además contara la cantidad de caracteres y de palabras, y veremos que sucederá con las comparaciones de palabra por palabra.";

//este texto digamos que es el que escribe el usuario, pude ser asi o traido desd eun textarea.
$textomal "Estees un texto que se comparara con las funciones de cadena, ademas contara la cantidad de caracteres y de palabrs, y veremos que sucedera con las comparaciones de palabra por palabra.";

//cuenta los caracteres de el texto que esta bien
$caracteres_texto_bien strlen($texto); 
//cuenta los caracteres de el texto que escrbio el usuario
$caracteres_texto_mal strlen($textomal); 
//cuenta el numero de palabras del texto que esta bien separando por espacios
$numpalabras_texto count(explode(" "$texto ));
//cuenta el numero de palabras del texto que escrbio el usuario separando por espacios
$numpalabras_textomal count(explode(" "$textomal ));
//separo por espacios para crear un array de palabras del texto que esta bien
$explotar_texto explode(" "$texto );
//separo por espacios para crear un array de palabras del texto que cargo el usuario
$explotar_textomal explode(" "$textomal );
//hago un array de las palabras de la cadena de texto que esta bien
$array_texto = array("$explotar_texto");
//..............................
//hago un array de las palabras de la cadena de que cargo el usuario
$array_textomal = array("$explotar_textomal");
//..............................

//como hago para comprar el array de $array_texto y de array_texto_mal y que me identifique cuales son las diferencias

//mostrara la palabra mal escrita con otro color...
$palabra_mal_escrita "<font color=\"orange\"><b>$palabra</b></font>"

//filtro de palabras
?>
El tema es como hago para compara el array, y que me diga cuales son sus diferencias...
  #13 (permalink)  
Antiguo 19/02/2008, 09:17
(Desactivado)
 
Fecha de Ingreso: enero-2008
Ubicación: Mendoza
Mensajes: 458
Antigüedad: 16 años, 3 meses
Puntos: 2
Exclamación Re: Ayuda Urgente Textarea Ortografia

VOY AVANZANDO Y CONTINUO INTENTANDO ARMAR ALGO:


Lo que hago es comparar el texto que esta bien por el que escribio el usuario y me muestra las diferencias entre los dos, me muestra del texto que esta bien, lo que no esta en el texto que esta mal y veceversa...

Ayuda plis, como ahora para saber cual es la diferencia entre las palabras....

AYUDA, LEAN LO QUE NECESITO Y DENME UNA SOLUCION DE ACUERDO A LO QUE ESTOY TRATANDO DE HACER... PLISS URGENTE

Última edición por cmarrero; 20/02/2008 a las 04:08
  #14 (permalink)  
Antiguo 20/02/2008, 04:11
(Desactivado)
 
Fecha de Ingreso: enero-2008
Ubicación: Mendoza
Mensajes: 458
Antigüedad: 16 años, 3 meses
Puntos: 2
Exclamación Re: Ayuda Urgente Textarea Ortografia

Código PHP:

//Este es el texto que esta bien y siempre sera el mismo
$texto "Este es un texto que se comparara con las funciones de cadena, además contara la cantidad de caracteres y de palabras, y veremos que sucederá con las comparaciones de palabra por palabra.";

//este texto digamos que es el que escribe el usuario, pude ser asi o traido desd eun textarea.
$textomal "Estees un texto que se comparara con las funciones de cadena, ademas contara la cantidad de caracteres y de palabrs, y veremos que sucedera con las comparaciones de palabra por palabra.";

$array1=explode(" "$texto );
$array2=explode(" "$textomal );

echo 
"<br>\nElementos que sólo existen en array1<br>\n";
foreach (
$array1 as $value1) {
    
$encontrado=false;
    foreach (
$array2 as $value2) {
        if (
$value1 == $value2){
            
$encontrado=true;
            
$break;
        }
    }
    if (
$encontrado == false){
           echo 
"---> $value1<br>\n";
    }
}

echo 
"<br>\nElementos que sólo existen en array2<br>\n";
foreach (
$array2 as $values) {
         
$encontrado=false;
    foreach (
$array1 as $value1) {
        if (
$value1 == $values){
            
$encontrado=true;
            
$break;
        }
    }
    if (
$encontrado == false){
           echo 
"Palabra mal escritas <strong>$values</strong><br>\n";
      }    

Hasta aca he llegado no mas... alguien que me pueda decir como contar la cantidad de palabras que estan mal..... me las muestra pero no me dice cuantas.... ayuda con esto por favor...
  #15 (permalink)  
Antiguo 20/02/2008, 04:27
Avatar de popobcn
Moderador
 
Fecha de Ingreso: noviembre-2006
Ubicación: Cerdanyola del Vallès
Mensajes: 3.892
Antigüedad: 17 años, 5 meses
Puntos: 1142
Re: Ayuda Urgente Textarea Ortografia

Buenas

Para contar las palabras que tienes mal, tan solo necesitas añadir dos líneas más al código que ya tienes montado:

Código PHP:
<?
$totalerrores 
0;
foreach (
$array2 as $values) { 
         
$encontrado=false
    foreach (
$array1 as $value1) { 
        if (
$value1 == $values){ 
            
$encontrado=true
            
$break
        } 
    } 
    if (
$encontrado == false){ 
           echo 
"Palabra mal escritas <strong>$values</strong><br>\n"
           
$totalerrores++;
    }     
}  
echo 
"Total errores ortográficos encontrados: [B]$totalerrores[/B]";
?>
Saludos
  #16 (permalink)  
Antiguo 20/02/2008, 04:35
(Desactivado)
 
Fecha de Ingreso: enero-2008
Ubicación: Mendoza
Mensajes: 458
Antigüedad: 16 años, 3 meses
Puntos: 2
Exclamación Re: Ayuda Urgente Textarea Ortografia

Barbaro, me sirvio a la perfeccion....

Lo unico y creo que mas complicado es de alguna manera ver cuales son los errores digamos identificarlos...

si las palabras que estan mal es por que no le puso el acento, o falta el espacio o escrbio una mayuscula en ves de una minuscula... como puedo hacer para identificar el error, digamos ya se cuales son las palabras ahora, quiero identificar por que estan mal...



Pense en poner por ejemplo

$mayusculas = palabras que llevan mayusculas
$acentos = palabras que llevan acentos
$minusculas = palabras que deven ir en misuculas
$puntuacion = donde va la coma o punto etc.

Y despues comparar, puede ser esta una forma?

Se entiende...

Gracias por la ayuda
  #17 (permalink)  
Antiguo 20/02/2008, 05:09
(Desactivado)
 
Fecha de Ingreso: enero-2008
Ubicación: Mendoza
Mensajes: 458
Antigüedad: 16 años, 3 meses
Puntos: 2
Exclamación Re: Ayuda Urgente Textarea Ortografia

Bueno, intentando e intentando sigo probando cosas, pense lo siguiente a ver si alguien me puede ayudar a completarlo...

Como estoy tratando de crear un sistema de corrector ortografico atravez de un texto unico pense lo siguiente

Código PHP:
<?

//Este es el texto que esta bien y siempre sera el mismo
$texto "Este es un texto que se comparara con las funciones de cadena, además contara la cantidad de caracteres y de palabras, y veremos que sucederá con las comparaciones de palabra por palabra.";

//este texto digamos que es el que escribe el usuario, pude ser asi o traido desd eun textarea.
$textomal "Estees un texto que se comparara con las funciones de cadena, ademas contara la cantidad de caracteres y de palabrs, y veremos que sucedera con las comparaciones de palabra por palabra.";

$texto_sinespacios "Esteesuntextoquesecompararaconlasfuncionesdecadena,ademáscontaralacantidaddecaracteresydepalabras,yveremosquesucederáconlascomparacionesdepalabraporpalabra.";
$acentos = array("sucederá","además");
$mayusculas="Este";
$puntuacion=array("cadena,","palabras,","palabra.");
$tipeo="palabras,";

$array1=explode(" "$texto );
$array2=explode(" "$textomal );

$totalerrores 0
echo 
"<br>\nERRORES DEL USUARIO<br>\n";
foreach (
$array2 as $values) {
         
$encontrado=false;
    foreach (
$array1 as $value1) {
        if (
$value1 == $values){
            
$encontrado=true;
            
$break;
        }
    }
    if (
$encontrado == false){
    echo 
"Palabra mal escritas <strong>$values</strong><br>\n";
    
$totalerrores++; 

      }    
}
echo 
"<br /><br />Total errores ortográficos encontrados: $totalerrores"
?>
Obviamente las variables

$texto_sinespacios = "Esteesuntextoquesecompararaconlasfuncionesdecaden a,ademáscontaralacantidaddecaracteresydepalabras,y veremosquesucederáconlascomparacionesdepalabraporp alabra.";
$acentos = array("sucederá","además");
$mayusculas="Este";
$puntuacion=array("cadena,","palabras,","palabra." );
$tipeo="palabras,";

Son para luego comparar e identificar luego el error... por ejemplo pense si pongo el texto correcto sin espacios y cuanto los caracteres y lo comparo con el texto con espacios y cuento los caracteres para poder identificar donde ahi espacios o algo asi, de esa manera cuando el usuario escriba dos palabras sin espacios poder identificar donde es que no coloco el espacio y saber que es ese el error...

Las otras variables implemente compararian con las palabras encontradas, entonces podria saber si se trata de puntuacion, acento, mayusculas o minusculas, y en caso que no sea ninguna de esa es simple ortografia...

Como puedo hacer esto.... ALGUNA SUGUERENCIA O UN EJEMPLO QUE PUEDAN DARME...

GRACIASSSSSSSSS
  #18 (permalink)  
Antiguo 20/02/2008, 07:25
(Desactivado)
 
Fecha de Ingreso: enero-2008
Ubicación: Mendoza
Mensajes: 458
Antigüedad: 16 años, 3 meses
Puntos: 2
Exclamación Re: Ayuda Urgente Textarea Ortografia

SIGO ADELANTANDO SE ME OCURRIO HACER UN FOREACH PARA CADA CASO, PARA ENCONTRAR CUANDO ES UN ERROR DE PUNTACION, O DE ACENTO O DE LO QUE SEA...

POR EJEMPLO PARA ACENTOS
Código PHP:
$cantidad_acentos 0;
foreach (
$acentos as $values) {
         
$encontrado=false;
    foreach (
$array2 as $value1) {
        if (
$value1 == $values){
            
$encontrado=true;
            
$break;
        }
    }
    if (
$encontrado == false){
    
    echo 
"Problemas cona acentos <strong>$values</strong><br>\n";
    
$cantidad_acentos++; 
    
    }

O PARA PUNTUACION...

Código PHP:
$cantidad_puntuacion 0;
foreach (
$puntuacion as $values) {
         
$encontrado=false;
    foreach (
$array2 as $value1) {
        if (
$value1 == $values){
            
$encontrado=true;
            
$break;
        }
    }
    if (
$encontrado == false){
    
    echo 
"Problemas con puntuacion <strong>$values</strong><br>\n";
    
$cantidad_puntuacion++; 
    
    }

OBVIAMENTE TOMANDO DE COMPARARNDO DE LOS SIGUIENTES DATOS

Código PHP:
$acentos = array("sucederá","además");
$mayusculas="Este";
$puntuacion=array("cadena,","palabras,","palabra.");
$tipeo="palabras,"
LO QUE ME FALTA ES EN EL CASO QUE TENGA ERRORES CON LOS ESPACIOS, ES DECIR QUE EN VES DE ESCRIBIR "Este es" escriba "Estees"... como hago para identificar este error...

AYUDA POR FAVOR.. QUE TENGO LA CUENTA REGRESIVA PARA HOY MISMO
  #19 (permalink)  
Antiguo 20/02/2008, 19:21
(Desactivado)
 
Fecha de Ingreso: enero-2008
Ubicación: Mendoza
Mensajes: 458
Antigüedad: 16 años, 3 meses
Puntos: 2
Exclamación Re: Ayuda Urgente Textarea Ortografia

Por Favor Alguien Que Me De Una Mano Con Esto.... Estoy Re Perdido...

Gracias
  #20 (permalink)  
Antiguo 21/02/2008, 04:18
Avatar de popobcn
Moderador
 
Fecha de Ingreso: noviembre-2006
Ubicación: Cerdanyola del Vallès
Mensajes: 3.892
Antigüedad: 17 años, 5 meses
Puntos: 1142
Re: Ayuda Urgente Textarea Ortografia

Buenas cmarrero,

Puedes probar con lo siguiente:

Cita:
$acentos = array(" sucederá "," además ");
$mayusculas="Este";
$puntuacion=array(" cadena,"," palabras,"," palabra.");
$tipeo="palabras,";
No lo he probado, pero creo que de esta manerá, buscarás el texto indicado con el espacio adicional, evitando que pueda encontrar coincidencias del tipo "estees"

Saludos
  #21 (permalink)  
Antiguo 21/02/2008, 04:33
(Desactivado)
 
Fecha de Ingreso: enero-2008
Ubicación: Mendoza
Mensajes: 458
Antigüedad: 16 años, 3 meses
Puntos: 2
Exclamación Re: Ayuda Urgente Textarea Ortografia

Lo probe pero no funciono.....

Lo que creo que necesito para hacer funcionar este script es lo siguiente:

aluguna funcion para detectar palabras con acentos en una cadena de texto

Alguna funcion para detectar minusculas y mayusculas en lo mismo

Alguna fucnion para detectar los espacios....

Y de esta manera buscar las palabras que NO cohinciden en el texto bien y en el texto cargado por el usuario...

Alguien que me de plis un ejemplo de funciones que puedan hacer lo que pido...

Gracias por la ayuda a todos....
  #22 (permalink)  
Antiguo 21/02/2008, 07:49
Avatar de agressor  
Fecha de Ingreso: noviembre-2007
Ubicación: Knocking the Death Door..
Mensajes: 368
Antigüedad: 16 años, 5 meses
Puntos: 3
Re: Ayuda Urgente Textarea Ortografia

Bueno aqui te las dejo

http://www.php.net/manual/es/ref.strings.php

Salu2..!
__________________
Somos lo que nosotros queremos ni mas ni menos..
No hay dia mas perdido que aquel en que no hemos reido..
La vida es tal y como debe ser...
Nadie vivira por ti...
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 16:44.