Foros del Web » Programando para Internet » PHP »

Contar palabras excepto las de un fichero

Estas en el tema de Contar palabras excepto las de un fichero en el foro de PHP en Foros del Web. Wenas, soy novatillo en esto. A ver si me podeis hechar una mano. Quiero contar las palabras de un texto que tengo en una variable, ...
  #1 (permalink)  
Antiguo 06/07/2003, 20:06
 
Fecha de Ingreso: julio-2003
Mensajes: 1
Antigüedad: 14 años, 5 meses
Puntos: 0
Contar palabras excepto las de un fichero

Wenas, soy novatillo en esto.

A ver si me podeis hechar una mano.

Quiero contar las palabras de un texto que tengo en una variable, pero que no me cuente las palabras del fichero words.txt.

Un ejemplo:

$texto=" Me gusta la música";

Que me cuente las palabras de $texto pero eliminando las palabras que hay en words.txt

El conteido de words.txt:

un
uno
el
la
me
te
se

Por lo que $texto tiene 2 palabras (ya que ME y LA están en la lista de stopwords).

Alguien sabe como hacerlo?

Un saludo y gracias por adelantado.
  #2 (permalink)  
Antiguo 07/07/2003, 07:36
 
Fecha de Ingreso: febrero-2002
Mensajes: 139
Antigüedad: 15 años, 9 meses
Puntos: 0
Puedes hacerlo así:

//Contamos palabras de $texto
$paltexto=explode(" ", $texto);
$paltexto=count($paltexto);


//Contamos las veces que aparece la en texto
$la=substr_count("$texto", la");

//Si aparece más de 0 veces restamos uno a la cantidad
//de palabras de texto
if ($la>0);
{
$paltexto=$paltexto-1;
}

Así con todas las palabras que quieras eliminar.

Con ficheros no tengo ni idea, sorry.

Un saludo.
  #3 (permalink)  
Antiguo 07/07/2003, 10:51
 
Fecha de Ingreso: febrero-2002
Mensajes: 139
Antigüedad: 15 años, 9 meses
Puntos: 0
Estoy mirando aver si consigo hacer un script. Si lo consigo (difícil pq tb soy novatillo) pero si lo consigo te lo cuelgo aqui

Un saludo.
  #4 (permalink)  
Antiguo 07/07/2003, 11:02
Avatar de Manoloweb  
Fecha de Ingreso: enero-2002
Ubicación: Monterrey
Mensajes: 2.454
Antigüedad: 15 años, 10 meses
Puntos: 5
Pues a mi se me ocurre algo así...
Código PHP:
//Extraemos las palabras a un array que contiene un valor para cada linea del archivo
$palabrasNO=file("words.txt");

// Ahora creamos la variable para comparación
$texto="Me gusta la música";

//Creamos un nuevo array, uno con cada palabra del texto...
$palabras=explode(" ",$texto);

//Ahora hacemos un loop para contar las palabras que NO estan en el archivo
$contador=0;
foreach (
$palabras as $p){
    if (!
in_array($p,$palabrasNO)){
        
$contador++;
    }
}

// Listo!! 
Espero que te funcione...
__________________
Manoloweb
  #5 (permalink)  
Antiguo 07/07/2003, 16:07
 
Fecha de Ingreso: febrero-2002
Mensajes: 139
Antigüedad: 15 años, 9 meses
Puntos: 0
Pues no funciona, lo he probado y añadido echo $contador. Y funciona con una sola palabra en words.txt

En cuanto hay:

la
el

El "el" no lo lee.

Miratelo weve.

un saludo.
  #6 (permalink)  
Antiguo 07/07/2003, 17:11
 
Fecha de Ingreso: febrero-2002
Mensajes: 139
Antigüedad: 15 años, 9 meses
Puntos: 0
Joder, me ha entrado en la cabeza que lo tengo que conseguir y no me funciona :(


Manloweb una mano?

puede ser por el salto de linea?
  #7 (permalink)  
Antiguo 07/07/2003, 17:14
Avatar de Manoloweb  
Fecha de Ingreso: enero-2002
Ubicación: Monterrey
Mensajes: 2.454
Antigüedad: 15 años, 10 meses
Puntos: 5
A ver... dejame hago pruebas en mi servidor local... no te desconectes, va?
__________________
Manoloweb
  #8 (permalink)  
Antiguo 07/07/2003, 17:25
 
Fecha de Ingreso: febrero-2002
Mensajes: 139
Antigüedad: 15 años, 9 meses
Puntos: 0
Ok, merci. Creo que es pq no respeta los saltos de linea, he probado usando el script que dice el FAQ pero nada.

Un saludo.
  #9 (permalink)  
Antiguo 07/07/2003, 17:31
Avatar de Manoloweb  
Fecha de Ingreso: enero-2002
Ubicación: Monterrey
Mensajes: 2.454
Antigüedad: 15 años, 10 meses
Puntos: 5
Je je je!!! ya se que ha pasado... creo que es la version de PHP, antes de la 4.2 no aceptaba que el argumento fuera array... esperame.
__________________
Manoloweb
  #10 (permalink)  
Antiguo 07/07/2003, 17:43
 
Fecha de Ingreso: febrero-2002
Mensajes: 139
Antigüedad: 15 años, 9 meses
Puntos: 0
Ok, muchas gracias manoloweb.
  #11 (permalink)  
Antiguo 07/07/2003, 17:47
Avatar de Manoloweb  
Fecha de Ingreso: enero-2002
Ubicación: Monterrey
Mensajes: 2.454
Antigüedad: 15 años, 10 meses
Puntos: 5
Ya encontre el problema (al menos en windows)... file() le esta dejando el caracter de retorno de carro y nueva linea al final...

Aqui te dejo el codigo que me sirvio...

Código PHP:
<?
//Extraemos las palabras a un array que contiene un valor para cada linea del archivo
$palabrasNO=file("words.txt");

// Ahora creamos la variable para comparación
$texto="Me gusta la música el";

//Creamos un nuevo array, uno con cada palabra del texto...
$palabras=explode(" ",$texto);

//Ahora hacemos un loop para contar las palabras que NO estan en el archivo
$contador=0;
foreach (
$palabras as $p){
    if (!
in_array($p."\r\n",$palabrasNO)){
        
$contador++;
    }
}
echo 
$contador."\n";
print_r ($palabras);
print_r ($palabrasNO);
// Listo!!
?>
__________________
Manoloweb
  #12 (permalink)  
Antiguo 07/07/2003, 18:01
 
Fecha de Ingreso: febrero-2002
Mensajes: 139
Antigüedad: 15 años, 9 meses
Puntos: 0
Muchas gracias Manoloweb.
  #13 (permalink)  
Antiguo 07/07/2003, 18:08
Avatar de Manoloweb  
Fecha de Ingreso: enero-2002
Ubicación: Monterrey
Mensajes: 2.454
Antigüedad: 15 años, 10 meses
Puntos: 5
JE JE...

Y de WEBE ni sus luces...
__________________
Manoloweb
  #14 (permalink)  
Antiguo 07/07/2003, 18:51
 
Fecha de Ingreso: febrero-2002
Mensajes: 139
Antigüedad: 15 años, 9 meses
Puntos: 0
Me ha interesado más la respuesta a mí que a él xDDD

Yo no necesitaba el script, pero tengo la manía de intentar hacer cualquier script que veo, por eso me interesé por este.

Un saludo manoloweb.
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




La zona horaria es GMT -6. Ahora son las 19:43.