Foros del Web » Programando para Internet » PHP »

Encontrar palabras clave dentro de un archivo de texto

Estas en el tema de Encontrar palabras clave dentro de un archivo de texto en el foro de PHP en Foros del Web. Hola, me interesa contar el número de veces que se repite una palabra dentro de un archivo de texto, actualmente ya cuento con esa parte. ...
  #1 (permalink)  
Antiguo 30/05/2014, 10:50
 
Fecha de Ingreso: mayo-2014
Mensajes: 4
Antigüedad: 9 años, 10 meses
Puntos: 0
Encontrar palabras clave dentro de un archivo de texto

Hola, me interesa contar el número de veces que se repite una palabra dentro de un archivo de texto, actualmente ya cuento con esa parte. Ahora lo que necesito es que solo se muestren las palabras mas importantes que yo necesito: "palabras clave" , las cuales las quiero capturar en otro archivo de texto. Por ejemplo, si en el primer archivo de texto a analizar se repiten más de 3 veces las palabras "programación" y "php" y dentro del archivo de texto llamado "palabras clave" se encuentra solo la palabra "programación" solo me muestre esa palabra y no "php".

Lo que tengo hasta el momento es esto:

<?php

$texto = file_get_contents('conocimiento.txt');

$texto = strtolower($texto);//todoaminúsculas



$Arreglo_palabras = explode (" ", $texto);

$words = array_count_values($Arreglo_palabras);


foreach ($words as $key_words => $value)
{
if ($value >1)

echo $key_words." - ".$value."<br/>";
}
?>

Nota: El archivo "palabras clave" podría llegar a contener mas de una palabra.

Alguien podría ayudarme??? :D Gracias.
  #2 (permalink)  
Antiguo 30/05/2014, 10:53
lolainas
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Encontrar palabras clave dentro de un archivo de texto

Pega los dos ficheros con palabras a ver como te vienen los datos.
  #3 (permalink)  
Antiguo 30/05/2014, 10:58
 
Fecha de Ingreso: mayo-2014
Mensajes: 4
Antigüedad: 9 años, 10 meses
Puntos: 0
Respuesta: Encontrar palabras clave dentro de un archivo de texto

El archivo llamado "conocimiento.txt" contiene lo siguiente:

El conocimiento suele entenderse como:

Hechos o información adquiridos por un ser vivo a través de la experiencia o la educación, la comprensión teórica o práctica de un asunto referente a la realidad.
Lo que se adquiere como contenido intelectual relativo a un campo determinado o a la totalidad del universo.
Conciencia o familiaridad adquirida por la experiencia de un hecho o situación.
Representa toda certidumbre cognitiva mensurable según la respuesta a: ¿Por qué?, ¿Cómo?, ¿Cuándo?, ¿Dónde?
No existe una única definición de "Conocimiento". Sin embargo existen muchas perspectivas desde las que se puede considerar el conocimiento, siendo la consideración de su función y fundamento, un problema histórico de la reflexión filosófica y de la ciencia. La rama de la filosofía que estudia el conocimiento es la epistemología o teoría del conocimiento. La teoría del conocimiento estudia las posibles formas de relación entre el sujeto y el objeto. Se trata por lo tanto del estudio de la función del entendimiento propia de la persona.


El archivo "palabras_clave.txt" contendría por ejemplo las palabras:

conocimiento
repositorio
  #4 (permalink)  
Antiguo 30/05/2014, 11:05
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: Encontrar palabras clave dentro de un archivo de texto

Código PHP:
Ver original
  1. <?php
  2.  
  3. $texto = <<<TEXT
  4. El conocimiento suele entenderse como:
  5.  
  6. Hechos o información adquiridos por un ser vivo a través de la experiencia o la educación, la comprensión teórica o práctica de un asunto referente a la realidad.
  7. Lo que se adquiere como contenido intelectual relativo a un campo determinado o a la totalidad del universo.
  8. Conciencia o familiaridad adquirida por la experiencia de un hecho o situación.
  9. Representa toda certidumbre cognitiva mensurable según la respuesta a: ¿Por qué?, ¿Cómo?, ¿Cuándo?, ¿Dónde?
  10. No existe una única definición de "Conocimiento". Sin embargo existen muchas perspectivas desde las que se puede considerar el conocimiento, siendo la consideración de su función y fundamento, un problema histórico de la reflexión filosófica y de la ciencia. La rama de la filosofía que estudia el conocimiento es la epistemología o teoría del conocimiento. La teoría del conocimiento estudia las posibles formas de relación entre el sujeto y el objeto. Se trata por lo tanto del estudio de la función del entendimiento propia de la persona.
  11. TEXT;
  12.  
  13. $texto = strtolower($texto);//todoaminúsculas
  14.  
  15.  
  16. // primero reemplaza acentos por no-acentuadas, o usa funciones seguras para utf-8
  17. $Arreglo_palabras = preg_split("/[\s,\"'\¿\:]+/",$texto);
  18.  
  19. $words = array_count_values($Arreglo_palabras);
  20.  
  21. foreach ($words as $key_words => $value)
  22. {
  23.     if ($value >1)
  24.         echo $key_words." - ".$value."<br/>";
  25. }

Consejo.. primero arregla el tema de la codificacion
__________________
Salu2!
  #5 (permalink)  
Antiguo 30/05/2014, 11:08
lolainas
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Encontrar palabras clave dentro de un archivo de texto

Para contar tienes str_word_count sin tener que reemplazar la fuente original cambiando acentos, Ñ's, etcétera, que en principio es muy mala idea, luego no sabrás si era minúscula o mayúscula por poner un ejemplo:

Código PHP:
Ver original
  1. $words = str_word_count(file_get_contents('conocimiento.txt'), 2, 'áéíóúÁÉÍÓÚñÑ');
  2. $keywords = array_map('trim', file('palabras_clave.txt'));
  3.  
  4. var_dump(array_intersect($words, $keywords));

Ahora habrá que ver que quieres hacer con el resultado...
  #6 (permalink)  
Antiguo 30/05/2014, 11:10
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: Encontrar palabras clave dentro de un archivo de texto

Tus problemas son:

- La codificacion de tus palabras y principalmente:
- Caracteres que delimitan palabras, que se resuelve con algo como:

Código PHP:
Ver original
  1. preg_split("/[\s,\"'\¿\:]+/",$texto);

o con str_word_count() pero por mas que queria no recordaba el nombre de la funcion hasta que @lolainas la colocó
__________________
Salu2!
  #7 (permalink)  
Antiguo 30/05/2014, 11:13
 
Fecha de Ingreso: mayo-2014
Mensajes: 4
Antigüedad: 9 años, 10 meses
Puntos: 0
Respuesta: Encontrar palabras clave dentro de un archivo de texto

Gracias amigo, soy nuevo en esto, en este momento mi principal problema es como encontrar en la cadena de texto sólo el conjunto de palabras que se encuentren en el archivo "palabras_clave.txt". Estuve tratando de meter el contenido del archivo palabras clave en un arreglo y haciendo uso de array_intersect() pero no tuve resultados.
  #8 (permalink)  
Antiguo 30/05/2014, 11:15
 
Fecha de Ingreso: mayo-2014
Mensajes: 4
Antigüedad: 9 años, 10 meses
Puntos: 0
Respuesta: Encontrar palabras clave dentro de un archivo de texto

Perfecto, gracias a ambos. Lo que quiero hacer después de eso es que si encuentra coincidencias me coloque esa información dentro de la base de datos (sólo si encuentra las coincidencias).

Etiquetas: php+arrays
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 14:02.