Initial commit - FLUJOS codebase (production branch)

Includes: FLUJOS app (Node/Flask/Python), FLUJOS_DATOS scripts (scrapers, Keras, Django)
Excludes: MongoDB, scraped data, Wikipedia/WikiLeaks dumps, Python venv, node_modules
This commit is contained in:
CAPITANSITO 2026-03-31 14:10:02 +02:00
commit a40b946163
158 changed files with 196645 additions and 0 deletions

View file

@ -0,0 +1,43 @@
import os
def dividir_archivo_grande(input_file, output_dir, lineas_por_archivo=1000000):
try:
os.makedirs(output_dir, exist_ok=True)
with open(input_file, 'r') as f_in:
archivo_indice = 1
f_out = open(os.path.join(output_dir, f'parte_{archivo_indice}.txt'), 'w')
for i, linea in enumerate(f_in):
if i % lineas_por_archivo == 0 and i > 0:
f_out.close()
archivo_indice += 1
f_out = open(os.path.join(output_dir, f'parte_{archivo_indice}.txt'), 'w')
f_out.write(linea)
f_out.close()
print(f"Archivo '{input_file}' dividido en {archivo_indice} partes en '{output_dir}'")
except Exception as e:
print(f"Error al dividir el archivo '{input_file}': {e}")
def procesar_comparaciones():
# Directorio base
base_dir = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'FLUJOS_DATOS', 'COMPARACIONES')
# Definir los nombres de las comparaciones y sus carpetas correspondientes
comparaciones = {
'wikipedia_vs_noticias': 'wikipedia_vs_noticias.txt',
'wikipedia_vs_torrents': 'wikipedia_vs_torrents.txt',
'torrents_vs_noticias': 'torrents_vs_noticias.txt'
}
# Configurar las rutas de salida
for nombre_carpeta, nombre_archivo in comparaciones.items():
input_file = os.path.join(base_dir, nombre_archivo)
output_dir = os.path.join(base_dir, nombre_carpeta)
# Verificar si el archivo de entrada existe
if os.path.exists(input_file):
dividir_archivo_grande(input_file, output_dir, lineas_por_archivo=1000000)
else:
print(f"El archivo '{input_file}' no existe. No se puede dividir.")
if __name__ == "__main__":
procesar_comparaciones()

View file

@ -0,0 +1,254 @@
import os
import re
import logging
from logging.handlers import RotatingFileHandler
from collections import Counter
from datetime import datetime
from pymongo import MongoClient
from tqdm import tqdm
from multiprocessing import Pool, cpu_count
import psutil
import string
import nltk
from nltk.corpus import stopwords
# Descargar stopwords la primera vez
nltk.download('stopwords')
stop_words = set(stopwords.words('spanish'))
# Parámetros de configuración
SIMILARITY_THRESHOLD = 4.0
LOG_FILE = "pipeline_mongolo.log"
NUM_PROCESOS = 4 # Limitar a 4 procesos
# Configuración de logging con rotación de archivos
logger = logging.getLogger()
logger.setLevel(logging.INFO)
handler = RotatingFileHandler(LOG_FILE, maxBytes=10*1024*1024, backupCount=5) # 10 MB por archivo, 5 archivos de respaldo
formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')
handler.setFormatter(formatter)
logger.addHandler(handler)
# Función para iniciar un cliente MongoDB
def init_mongo_client():
"""Inicializa un nuevo cliente MongoDB para cada proceso."""
return MongoClient('localhost', 27017)
# Función para preprocesar el texto
def preprocesar_texto(texto):
# Eliminar signos de puntuación
texto = texto.translate(str.maketrans('', '', string.punctuation))
# Convertir a minúsculas
texto = texto.lower()
# Eliminar stop words
palabras = texto.split()
palabras = [word for word in palabras if word not in stop_words]
return ' '.join(palabras)
# Función para asignar tema y subtema basado en el contenido del texto
def asignar_tema_y_subtema(texto):
tematicas = {
'inteligencia y seguridad': ['inteligencia', 'ciberseguridad', 'espionaje', 'seguridad nacional', 'contraterrorismo'],
'cambio climático': ['cambio climático', 'desastres naturales', 'conservación', 'energía renovable', 'escasez de agua'],
'guerra global': ['conflictos internacionales', 'guerras civiles', 'terrorismo', 'armas', 'alianzas militares'],
'demografía y sociedad': ['sobrepoblación', 'enfermedades', 'migraciones', 'urbanización', 'despoblación rural'],
'economía y corporaciones': ['economía global', 'corporaciones multinacionales', 'comercio internacional', 'organismos financieros', 'desigualdad económica']
}
texto_lower = texto.lower()
for tema, palabras_clave in tematicas.items():
for palabra_clave in palabras_clave:
if palabra_clave in texto_lower:
return tema, palabra_clave
return 'otros', 'general'
# Función para extraer la fecha del nombre del archivo
def extraer_fecha_de_nombre(nombre_archivo):
try:
fecha_str = re.search(r'\d{4}-\d{2}-\d{2}', nombre_archivo).group(0)
return datetime.strptime(fecha_str, '%Y-%m-%d')
except:
return None
# Función para contar palabras en un archivo tokenizado
def contar_palabras(nombre_archivo):
try:
with open(nombre_archivo, 'r', encoding='utf-8') as f:
palabras = f.read().split()
return Counter(palabras)
except Exception as e:
logging.error(f"Error al contar palabras en {nombre_archivo}: {e}")
return Counter()
# Función para comparar dos archivos y calcular el porcentaje de similitud
def comparar_archivos(archivo1, archivo2):
try:
conteo1 = contar_palabras(archivo1)
conteo2 = contar_palabras(archivo2)
palabras_comunes = set(conteo1.keys()) & set(conteo2.keys())
num_palabras_comunes = sum(min(conteo1[p], conteo2[p]) for p in palabras_comunes)
num_palabras_totales = sum(conteo1.values()) + sum(conteo2.values())
if num_palabras_totales == 0:
return 0
porcentaje_similitud = (num_palabras_comunes / num_palabras_totales) * 100
return porcentaje_similitud
except Exception as e:
logging.error(f"Error al comparar archivos {archivo1} y {archivo2}: {e}", exc_info=True)
return 0 # Retornar 0 en caso de error
# Función paralelizada para manejar las comparaciones
def manejar_comparacion_multiproceso(pair):
archivo1, archivo2 = pair
try:
# Inicia MongoDB dentro del proceso
client = init_mongo_client()
db = client['FLUJOS_DATOS']
comparaciones_collection = db['comparaciones']
nombre_archivo1 = os.path.basename(archivo1)
nombre_archivo2 = os.path.basename(archivo2)
porcentaje = comparar_archivos(archivo1, archivo2)
comparacion = {
'noticia1': nombre_archivo1,
'noticia2': nombre_archivo2,
'porcentaje_similitud': porcentaje
}
comparaciones_collection.insert_one(comparacion)
logging.info(f"Guardada comparación entre {nombre_archivo1} y {nombre_archivo2} con {porcentaje:.2f}% de similitud.")
except Exception as e:
logging.error(f"Error al manejar comparación {archivo1} vs {archivo2}: {e}", exc_info=True)
finally:
client.close()
# Función para verificar si el documento ya fue procesado
def documento_ya_subido(nombre_archivo, collection):
return collection.find_one({"archivo": nombre_archivo}) is not None
# Función para subir documentos a MongoDB
def subir_documento_a_mongodb(nombre_archivo, tema, subtema, fecha, texto, collection):
documento = {
'archivo': nombre_archivo,
'tema': tema,
'subtema': subtema,
'fecha': fecha,
'texto': texto # Subimos el texto original
}
try:
collection.insert_one(documento)
logging.info(f"Subido documento: {nombre_archivo} con tema: {tema}, subtema: {subtema}.")
except Exception as e:
logging.error(f"Error al subir documento {nombre_archivo}: {e}")
# Función para procesar documentos y subirlos a MongoDB
def procesar_documentos(directorio, collection):
archivos = [os.path.join(directorio, f) for f in os.listdir(directorio)]
print(f"Procesando {len(archivos)} archivos en el directorio: {directorio}")
# Subir documentos a MongoDB
with tqdm(total=len(archivos), desc=f"Subiendo documentos a MongoDB ({collection.name})", ncols=100) as pbar:
for archivo in archivos:
nombre_archivo = os.path.basename(archivo)
if documento_ya_subido(nombre_archivo, collection):
logging.info(f"Saltando {nombre_archivo}, ya está subido.")
pbar.update(1)
continue
fecha = extraer_fecha_de_nombre(nombre_archivo)
try:
with open(archivo, 'r', encoding='utf-8') as f:
texto_original = f.read()
texto_preprocesado = preprocesar_texto(texto_original)
tema, subtema = asignar_tema_y_subtema(texto_preprocesado)
subir_documento_a_mongodb(nombre_archivo, tema, subtema, fecha, texto_original, collection)
except Exception as e:
logging.error(f"Error al procesar archivo {archivo}: {e}")
pbar.update(1)
def manejar_comparaciones_multiproceso(directorios_tokenized):
try:
archivos_tokenizados = []
for directorio in directorios_tokenized:
archivos_directorio = [os.path.join(directorio, f) for f in os.listdir(directorio)]
archivos_tokenizados.append(archivos_directorio)
# Generar pares de archivos para comparar (combinaciones entre directorios)
pairs = []
for i in range(len(archivos_tokenizados)):
for j in range(i+1, len(archivos_tokenizados)):
for archivo1 in archivos_tokenizados[i]:
for archivo2 in archivos_tokenizados[j]:
pairs.append((archivo1, archivo2))
total_pairs = len(pairs)
logging.info(f"Total de pares a comparar: {total_pairs}")
# Procesar las comparaciones en lotes más pequeños para reducir el uso de memoria
batch_size = 1000 # Tamaño del lote
num_batches = (total_pairs // batch_size) + 1
logging.info(f"Procesando en {num_batches} lotes de {batch_size} pares cada uno.")
for batch_num in range(num_batches):
batch_start = batch_num * batch_size
batch_end = min(batch_start + batch_size, total_pairs)
batch_pairs = pairs[batch_start:batch_end]
logging.info(f"Procesando lote {batch_num + 1}/{num_batches}")
with Pool(processes=NUM_PROCESOS) as pool:
list(tqdm(pool.imap_unordered(manejar_comparacion_multiproceso, batch_pairs), total=len(batch_pairs), desc=f"Comparando archivos (Lote {batch_num + 1})", ncols=100))
except Exception as e:
logging.error(f"Error en manejar_comparaciones_multiproceso: {e}", exc_info=True)
def main():
try:
# Rutas absolutas de los archivos en formato txt
carpeta_noticias_txt = '/var/www/theflows.net/flujos/FLUJOS_DATOS/NOTICIAS/articulos'
carpeta_wikipedia_txt = '/var/www/theflows.net/flujos/FLUJOS_DATOS/WIKIPEDIA/articulos_wikipedia'
carpeta_torrents_txt = '/var/www/theflows.net/flujos/FLUJOS_DATOS/TORRENTS/TORRENTS_WIKILEAKS_COMPLETO/txt'
# Carpetas con los archivos tokenizados para hacer las comparaciones
carpeta_noticias_tokenized = '/var/www/theflows.net/flujos/FLUJOS_DATOS/NOTICIAS/tokenized'
carpeta_wikipedia_tokenized = '/var/www/theflows.net/flujos/FLUJOS_DATOS/WIKIPEDIA/articulos_tokenizados'
carpeta_torrents_tokenized = '/var/www/theflows.net/flujos/FLUJOS_DATOS/TORRENTS/TORRENTS_WIKILEAKS_COMPLETO/tokenized'
# Iniciar cliente MongoDB
client = init_mongo_client()
# Omitir la subida de documentos
print("Subiendo archivos originales de Noticias a MongoDB...")
logging.info("Iniciando subida de noticias a MongoDB")
procesar_documentos(carpeta_noticias_txt, client['FLUJOS_DATOS']['noticias'])
logging.info("Finalizada subida de noticias a MongoDB")
# print("Subiendo archivos originales de Wikipedia a MongoDB...")
logging.info("Iniciando subida de Wikipedia a MongoDB")
procesar_documentos(carpeta_wikipedia_txt, client['FLUJOS_DATOS']['wikipedia'])
logging.info("Finalizada subida de Wikipedia a MongoDB")
# print("Subiendo archivos originales de TORRENTS a MongoDB...")
logging.info("Iniciando subida de TORRENTS a MongoDB")
procesar_documentos(carpeta_torrents_txt, client['FLUJOS_DATOS']['torrents'])
logging.info("Finalizada subida de TORRENTS a MongoDB")
# Comparar archivos tokenizados y guardar comparaciones en MongoDB
print("Comparando textos tokenizados entre Noticias, Wikipedia y TORRENTS...")
logging.info("Iniciando comparaciones entre textos tokenizados")
manejar_comparaciones_multiproceso([carpeta_noticias_tokenized, carpeta_wikipedia_tokenized, carpeta_torrents_tokenized])
logging.info("Finalizadas comparaciones entre textos tokenizados")
except Exception as e:
logging.error(f"Error en la ejecución del script: {e}", exc_info=True)
if __name__ == "__main__":
main()

View file

@ -0,0 +1,577 @@
2025-08-09 00:44:56,478 - INFO - Guardada comparación entre Hammer Film Productions.txt y Sanción.txt con 1.47% de similitud.
2025-08-09 00:44:56,482 - INFO - Guardada comparación entre Hammer Film Productions.txt y Saúl Luciano Lliuya.txt con 9.36% de similitud.
2025-08-09 00:44:56,486 - INFO - Guardada comparación entre Hammer Film Productions.txt y Antiprotestantismo.txt con 14.38% de similitud.
2025-08-09 00:44:56,489 - INFO - Guardada comparación entre Big Water.txt y Desigualdad de ingreso en Estados Unidos.txt con 17.72% de similitud.
2025-08-09 00:44:56,494 - INFO - Guardada comparación entre Big Water.txt y Iberos.txt con 3.69% de similitud.
2025-08-09 00:44:56,497 - INFO - Guardada comparación entre Big Water.txt y .km.txt con 9.94% de similitud.
2025-08-09 00:44:56,501 - INFO - Guardada comparación entre Big Water.txt y Censura internacional china.txt con 11.17% de similitud.
2025-08-09 00:44:56,504 - INFO - Guardada comparación entre Big Water.txt y Alfarería en la provincia de Almería.txt con 9.97% de similitud.
2025-08-09 00:44:56,507 - INFO - Guardada comparación entre Big Water.txt y Acuerdo de Prespa.txt con 12.30% de similitud.
2025-08-09 00:44:56,510 - INFO - Guardada comparación entre Big Water.txt y Segunda Cumbre BRIC 2010.txt con 15.52% de similitud.
2025-08-09 00:44:56,514 - INFO - Guardada comparación entre Big Water.txt y Santa Marina del Rey.txt con 15.99% de similitud.
2025-08-09 00:44:56,517 - INFO - Guardada comparación entre Big Water.txt y Omaira Montoya Henao.txt con 17.75% de similitud.
2025-08-09 00:44:56,520 - INFO - Guardada comparación entre Big Water.txt y Biodiversidad Virtual.txt con 14.38% de similitud.
2025-08-09 00:44:56,523 - INFO - Guardada comparación entre Big Water.txt y Estudios de ciencia, tecnología y género.txt con 14.04% de similitud.
2025-08-09 00:44:56,527 - INFO - Guardada comparación entre Big Water.txt y Representación (política).txt con 15.18% de similitud.
2025-08-09 00:44:56,530 - INFO - Guardada comparación entre Big Water.txt y Roxana Campos.txt con 12.54% de similitud.
2025-08-09 00:44:56,534 - INFO - Guardada comparación entre Big Water.txt y Reforma económica china.txt con 5.09% de similitud.
2025-08-09 00:44:56,538 - INFO - Guardada comparación entre Big Water.txt y Declaración de los Derechos de la Mujer y de la Ciudadana.txt con 11.66% de similitud.
2025-08-09 00:44:56,541 - INFO - Guardada comparación entre Big Water.txt y Convención Marco de las Naciones Unidas sobre el Cambio Climático.txt con 12.70% de similitud.
2025-08-09 00:44:56,544 - INFO - Guardada comparación entre Big Water.txt y Oswald Pohl.txt con 16.83% de similitud.
2025-08-09 00:44:56,547 - INFO - Guardada comparación entre Big Water.txt y Empresa Nacional Siderúrgica.txt con 12.94% de similitud.
2025-08-09 00:44:56,551 - INFO - Guardada comparación entre Big Water.txt y Certificate Signing Request.txt con 9.49% de similitud.
2025-08-09 00:44:56,554 - INFO - Guardada comparación entre Big Water.txt y Antônio de Sousa Neto.txt con 15.57% de similitud.
2025-08-09 00:44:56,557 - INFO - Guardada comparación entre Big Water.txt y Unión Ortodoxa.txt con 14.92% de similitud.
2025-08-09 00:44:56,561 - INFO - Guardada comparación entre Big Water.txt y Emisora móvil.txt con 7.31% de similitud.
2025-08-09 00:44:56,564 - INFO - Guardada comparación entre Big Water.txt y Demografía de la República Democrática del Congo.txt con 18.31% de similitud.
2025-08-09 00:44:56,568 - INFO - Guardada comparación entre Big Water.txt y Desigualdad de ingreso.txt con 7.10% de similitud.
2025-08-09 00:44:56,572 - INFO - Guardada comparación entre Big Water.txt y Terrorismo de extrema izquierda.txt con 7.89% de similitud.
2025-08-09 00:44:56,577 - INFO - Guardada comparación entre Autoridad Vasca de Protección de Datos.txt y Iberos.txt con 6.21% de similitud.
2025-08-09 00:44:56,580 - INFO - Guardada comparación entre Autoridad Vasca de Protección de Datos.txt y Dirección General de Atención a las Víctimas y Promoción de la Memoria Democrática.txt con 21.25% de similitud.
2025-08-09 00:44:56,584 - INFO - Guardada comparación entre Autoridad Vasca de Protección de Datos.txt y Censura internacional china.txt con 17.78% de similitud.
2025-08-09 00:44:56,587 - INFO - Guardada comparación entre Autoridad Vasca de Protección de Datos.txt y Alfarería en la provincia de Almería.txt con 16.25% de similitud.
2025-08-09 00:44:56,591 - INFO - Guardada comparación entre Autoridad Vasca de Protección de Datos.txt y Ingeniería comercial.txt con 18.38% de similitud.
2025-08-09 00:44:56,594 - INFO - Guardada comparación entre Autoridad Vasca de Protección de Datos.txt y Chevrolet Cobalt.txt con 3.03% de similitud.
2025-08-09 00:44:56,597 - INFO - Guardada comparación entre Autoridad Vasca de Protección de Datos.txt y Código Unificado de Punto de Suministro.txt con 15.82% de similitud.
2025-08-09 00:44:56,601 - INFO - Guardada comparación entre Autoridad Vasca de Protección de Datos.txt y Guerra de guerrillas en la península ibérica durante las guerras napoleónicas.txt con 18.41% de similitud.
2025-08-09 00:44:56,604 - INFO - Guardada comparación entre Autoridad Vasca de Protección de Datos.txt y Estación de tratamiento de agua potable.txt con 10.93% de similitud.
2025-08-09 00:44:56,607 - INFO - Guardada comparación entre Autoridad Vasca de Protección de Datos.txt y Militar.txt con 19.62% de similitud.
2025-08-09 00:44:56,611 - INFO - Guardada comparación entre Autoridad Vasca de Protección de Datos.txt y Demografía de Canadá.txt con 16.88% de similitud.
2025-08-09 00:44:56,614 - INFO - Guardada comparación entre Autoridad Vasca de Protección de Datos.txt y EToro.txt con 16.90% de similitud.
2025-08-09 00:44:56,617 - INFO - Guardada comparación entre Autoridad Vasca de Protección de Datos.txt y Ambiente biofísico.txt con 15.47% de similitud.
2025-08-09 00:44:56,621 - INFO - Guardada comparación entre Autoridad Vasca de Protección de Datos.txt y Juego ganar ganar.txt con 14.11% de similitud.
2025-08-09 00:44:56,624 - INFO - Guardada comparación entre Autoridad Vasca de Protección de Datos.txt y Declaración de los Derechos de la Mujer y de la Ciudadana.txt con 19.18% de similitud.
2025-08-09 00:44:56,628 - INFO - Guardada comparación entre Autoridad Vasca de Protección de Datos.txt y Convención Marco de las Naciones Unidas sobre el Cambio Climático.txt con 21.31% de similitud.
2025-08-09 00:44:56,631 - INFO - Guardada comparación entre Autoridad Vasca de Protección de Datos.txt y Oswald Pohl.txt con 14.69% de similitud.
2025-08-09 00:44:56,634 - INFO - Guardada comparación entre Autoridad Vasca de Protección de Datos.txt y Empresa Nacional Siderúrgica.txt con 20.01% de similitud.
2025-08-09 00:44:56,638 - INFO - Guardada comparación entre Autoridad Vasca de Protección de Datos.txt y Teletón El Salvador.txt con 19.31% de similitud.
2025-08-09 00:44:56,641 - INFO - Guardada comparación entre Autoridad Vasca de Protección de Datos.txt y Antônio de Sousa Neto.txt con 11.44% de similitud.
2025-08-09 00:44:56,645 - INFO - Guardada comparación entre Autoridad Vasca de Protección de Datos.txt y Mercenarios (BattleTech).txt con 17.65% de similitud.
2025-08-09 00:44:56,648 - INFO - Guardada comparación entre Autoridad Vasca de Protección de Datos.txt y Efecto cis.txt con 16.17% de similitud.
2025-08-09 00:44:56,652 - INFO - Guardada comparación entre Autoridad Vasca de Protección de Datos.txt y Demografía de la República Democrática del Congo.txt con 15.63% de similitud.
2025-08-09 00:44:56,656 - INFO - Guardada comparación entre Autoridad Vasca de Protección de Datos.txt y Desigualdad de ingreso.txt con 11.47% de similitud.
2025-08-09 00:44:56,659 - INFO - Guardada comparación entre Autoridad Vasca de Protección de Datos.txt y Terrorismo de extrema izquierda.txt con 12.34% de similitud.
2025-08-09 00:44:56,664 - INFO - Guardada comparación entre Inventario General del Patrimonio Cultural Valenciano.txt y Iberos.txt con 1.94% de similitud.
2025-08-09 00:44:56,667 - INFO - Guardada comparación entre Inventario General del Patrimonio Cultural Valenciano.txt y .km.txt con 10.83% de similitud.
2025-08-09 00:44:56,670 - INFO - Guardada comparación entre Inventario General del Patrimonio Cultural Valenciano.txt y Asesoría Jurídica Internacional.txt con 14.67% de similitud.
2025-08-09 00:44:56,674 - INFO - Guardada comparación entre Inventario General del Patrimonio Cultural Valenciano.txt y Desarrollo de videojuegos independiente.txt con 3.77% de similitud.
2025-08-09 00:44:56,677 - INFO - Guardada comparación entre Inventario General del Patrimonio Cultural Valenciano.txt y Ingeniería comercial.txt con 13.31% de similitud.
2025-08-09 00:44:56,680 - INFO - Guardada comparación entre Inventario General del Patrimonio Cultural Valenciano.txt y Chevrolet Cobalt.txt con 5.68% de similitud.
2025-08-09 00:44:56,684 - INFO - Guardada comparación entre Inventario General del Patrimonio Cultural Valenciano.txt y Código Unificado de Punto de Suministro.txt con 11.82% de similitud.
2025-08-09 00:44:56,688 - INFO - Guardada comparación entre Inventario General del Patrimonio Cultural Valenciano.txt y Guerra de guerrillas en la península ibérica durante las guerras napoleónicas.txt con 7.66% de similitud.
2025-08-09 00:44:56,692 - INFO - Guardada comparación entre Inventario General del Patrimonio Cultural Valenciano.txt y Estación de tratamiento de agua potable.txt con 12.92% de similitud.
2025-08-09 00:44:56,696 - INFO - Guardada comparación entre Inventario General del Patrimonio Cultural Valenciano.txt y Militar.txt con 8.73% de similitud.
2025-08-09 00:44:56,700 - INFO - Guardada comparación entre Inventario General del Patrimonio Cultural Valenciano.txt y Demografía de Canadá.txt con 6.70% de similitud.
2025-08-09 00:44:56,703 - INFO - Guardada comparación entre Inventario General del Patrimonio Cultural Valenciano.txt y EToro.txt con 10.03% de similitud.
2025-08-09 00:44:56,707 - INFO - Guardada comparación entre Inventario General del Patrimonio Cultural Valenciano.txt y Ambiente biofísico.txt con 13.47% de similitud.
2025-08-09 00:44:56,710 - INFO - Guardada comparación entre Inventario General del Patrimonio Cultural Valenciano.txt y Juego ganar ganar.txt con 11.59% de similitud.
2025-08-09 00:44:56,714 - INFO - Guardada comparación entre Inventario General del Patrimonio Cultural Valenciano.txt y Alejandro VII.txt con 7.87% de similitud.
2025-08-09 00:44:56,718 - INFO - Guardada comparación entre Inventario General del Patrimonio Cultural Valenciano.txt y Violencia obstétrica.txt con 11.91% de similitud.
2025-08-09 00:44:56,722 - INFO - Guardada comparación entre Inventario General del Patrimonio Cultural Valenciano.txt y Torrente Gros.txt con 9.15% de similitud.
2025-08-09 00:44:56,726 - INFO - Guardada comparación entre Inventario General del Patrimonio Cultural Valenciano.txt y Guerra de Reforma.txt con 6.67% de similitud.
2025-08-09 00:44:56,729 - INFO - Guardada comparación entre Inventario General del Patrimonio Cultural Valenciano.txt y Certificate Signing Request.txt con 5.69% de similitud.
2025-08-09 00:44:56,733 - INFO - Guardada comparación entre Inventario General del Patrimonio Cultural Valenciano.txt y Antônio de Sousa Neto.txt con 15.13% de similitud.
2025-08-09 00:44:56,736 - INFO - Guardada comparación entre Inventario General del Patrimonio Cultural Valenciano.txt y Unión Ortodoxa.txt con 9.59% de similitud.
2025-08-09 00:44:56,740 - INFO - Guardada comparación entre Inventario General del Patrimonio Cultural Valenciano.txt y Efecto cis.txt con 10.54% de similitud.
2025-08-09 00:44:56,743 - INFO - Guardada comparación entre Inventario General del Patrimonio Cultural Valenciano.txt y Sanción.txt con 5.65% de similitud.
2025-08-09 00:44:56,747 - INFO - Guardada comparación entre Inventario General del Patrimonio Cultural Valenciano.txt y Saúl Luciano Lliuya.txt con 14.35% de similitud.
2025-08-09 00:44:56,751 - INFO - Guardada comparación entre Inventario General del Patrimonio Cultural Valenciano.txt y Antiprotestantismo.txt con 9.08% de similitud.
2025-08-09 00:44:56,754 - INFO - Guardada comparación entre Guerra Fría (desambiguación).txt y Desigualdad de ingreso en Estados Unidos.txt con 6.27% de similitud.
2025-08-09 00:44:56,757 - INFO - Guardada comparación entre Guerra Fría (desambiguación).txt y Club Deportivo La Equidad (Femenino).txt con 7.70% de similitud.
2025-08-09 00:44:56,760 - INFO - Guardada comparación entre Guerra Fría (desambiguación).txt y .km.txt con 8.42% de similitud.
2025-08-09 00:44:56,763 - INFO - Guardada comparación entre Guerra Fría (desambiguación).txt y Asesoría Jurídica Internacional.txt con 10.96% de similitud.
2025-08-09 00:44:56,767 - INFO - Guardada comparación entre Guerra Fría (desambiguación).txt y Desarrollo de videojuegos independiente.txt con 2.18% de similitud.
2025-08-09 00:44:56,770 - INFO - Guardada comparación entre Guerra Fría (desambiguación).txt y Ingeniería comercial.txt con 7.98% de similitud.
2025-08-09 00:44:56,773 - INFO - Guardada comparación entre Guerra Fría (desambiguación).txt y Chevrolet Cobalt.txt con 8.85% de similitud.
2025-08-09 00:44:56,776 - INFO - Guardada comparación entre Guerra Fría (desambiguación).txt y Código Unificado de Punto de Suministro.txt con 6.75% de similitud.
2025-08-09 00:44:56,779 - INFO - Guardada comparación entre Guerra Fría (desambiguación).txt y Guerra de guerrillas en la península ibérica durante las guerras napoleónicas.txt con 4.03% de similitud.
2025-08-09 00:44:56,782 - INFO - Guardada comparación entre Guerra Fría (desambiguación).txt y Estación de tratamiento de agua potable.txt con 9.89% de similitud.
2025-08-09 00:44:56,785 - INFO - Guardada comparación entre Guerra Fría (desambiguación).txt y Militar.txt con 5.92% de similitud.
2025-08-09 00:44:56,788 - INFO - Guardada comparación entre Guerra Fría (desambiguación).txt y Demografía de Canadá.txt con 4.05% de similitud.
2025-08-09 00:44:56,792 - INFO - Guardada comparación entre Guerra Fría (desambiguación).txt y EToro.txt con 6.73% de similitud.
2025-08-09 00:44:56,796 - INFO - Guardada comparación entre Guerra Fría (desambiguación).txt y Ambiente biofísico.txt con 8.19% de similitud.
2025-08-09 00:44:56,800 - INFO - Guardada comparación entre Guerra Fría (desambiguación).txt y Juego ganar ganar.txt con 7.92% de similitud.
2025-08-09 00:44:56,803 - INFO - Guardada comparación entre Guerra Fría (desambiguación).txt y Declaración de los Derechos de la Mujer y de la Ciudadana.txt con 4.29% de similitud.
2025-08-09 00:44:56,806 - INFO - Guardada comparación entre Guerra Fría (desambiguación).txt y Convención Marco de las Naciones Unidas sobre el Cambio Climático.txt con 4.87% de similitud.
2025-08-09 00:44:56,809 - INFO - Guardada comparación entre Guerra Fría (desambiguación).txt y Oswald Pohl.txt con 9.97% de similitud.
2025-08-09 00:44:56,813 - INFO - Guardada comparación entre Guerra Fría (desambiguación).txt y Empresa Nacional Siderúrgica.txt con 5.66% de similitud.
2025-08-09 00:44:56,816 - INFO - Guardada comparación entre Guerra Fría (desambiguación).txt y Teletón El Salvador.txt con 4.97% de similitud.
2025-08-09 00:44:56,819 - INFO - Guardada comparación entre Guerra Fría (desambiguación).txt y Antônio de Sousa Neto.txt con 10.74% de similitud.
2025-08-09 00:44:56,822 - INFO - Guardada comparación entre Guerra Fría (desambiguación).txt y Mercenarios (BattleTech).txt con 4.41% de similitud.
2025-08-09 00:44:56,825 - INFO - Guardada comparación entre Guerra Fría (desambiguación).txt y Efecto cis.txt con 5.29% de similitud.
2025-08-09 00:44:56,828 - INFO - Guardada comparación entre Guerra Fría (desambiguación).txt y Sanción.txt con 5.90% de similitud.
2025-08-09 00:44:56,835 - INFO - Guardada comparación entre Guerra Fría (desambiguación).txt y Saúl Luciano Lliuya.txt con 9.67% de similitud.
2025-08-09 00:44:56,839 - INFO - Guardada comparación entre Guerra Fría (desambiguación).txt y Terrorismo de extrema izquierda.txt con 2.81% de similitud.
2025-08-09 00:44:56,844 - INFO - Guardada comparación entre Batalla de Zaragoza.txt y Iberos.txt con 3.14% de similitud.
2025-08-09 00:44:56,846 - INFO - Guardada comparación entre Batalla de Zaragoza.txt y .km.txt con 10.28% de similitud.
2025-08-09 00:44:56,849 - INFO - Guardada comparación entre Batalla de Zaragoza.txt y Asesoría Jurídica Internacional.txt con 16.83% de similitud.
2025-08-09 00:44:56,853 - INFO - Guardada comparación entre Batalla de Zaragoza.txt y Censura internacional china.txt con 9.20% de similitud.
2025-08-09 00:44:56,856 - INFO - Guardada comparación entre Batalla de Zaragoza.txt y Alfarería en la provincia de Almería.txt con 8.87% de similitud.
2025-08-09 00:44:56,859 - INFO - Guardada comparación entre Batalla de Zaragoza.txt y Acuerdo de Prespa.txt con 13.96% de similitud.
2025-08-09 00:44:56,862 - INFO - Guardada comparación entre Batalla de Zaragoza.txt y Segunda Cumbre BRIC 2010.txt con 13.66% de similitud.
2025-08-09 00:44:56,865 - INFO - Guardada comparación entre Batalla de Zaragoza.txt y Santa Marina del Rey.txt con 16.36% de similitud.
2025-08-09 00:44:56,868 - INFO - Guardada comparación entre Batalla de Zaragoza.txt y Omaira Montoya Henao.txt con 18.10% de similitud.
2025-08-09 00:44:56,871 - INFO - Guardada comparación entre Batalla de Zaragoza.txt y Biodiversidad Virtual.txt con 13.74% de similitud.
2025-08-09 00:44:56,875 - INFO - Guardada comparación entre Batalla de Zaragoza.txt y Estudios de ciencia, tecnología y género.txt con 12.73% de similitud.
2025-08-09 00:44:56,878 - INFO - Guardada comparación entre Batalla de Zaragoza.txt y Representación (política).txt con 13.59% de similitud.
2025-08-09 00:44:56,881 - INFO - Guardada comparación entre Batalla de Zaragoza.txt y Roxana Campos.txt con 15.90% de similitud.
2025-08-09 00:44:56,885 - INFO - Guardada comparación entre Batalla de Zaragoza.txt y Reforma económica china.txt con 3.33% de similitud.
2025-08-09 00:44:56,889 - INFO - Guardada comparación entre Batalla de Zaragoza.txt y Declaración de los Derechos de la Mujer y de la Ciudadana.txt con 9.83% de similitud.
2025-08-09 00:44:56,892 - INFO - Guardada comparación entre Batalla de Zaragoza.txt y Convención Marco de las Naciones Unidas sobre el Cambio Climático.txt con 11.27% de similitud.
2025-08-09 00:44:56,895 - INFO - Guardada comparación entre Batalla de Zaragoza.txt y Oswald Pohl.txt con 17.99% de similitud.
2025-08-09 00:44:56,898 - INFO - Guardada comparación entre Batalla de Zaragoza.txt y Empresa Nacional Siderúrgica.txt con 12.18% de similitud.
2025-08-09 00:44:56,902 - INFO - Guardada comparación entre Batalla de Zaragoza.txt y Teletón El Salvador.txt con 11.70% de similitud.
2025-08-09 00:44:56,904 - INFO - Guardada comparación entre Batalla de Zaragoza.txt y Antônio de Sousa Neto.txt con 17.30% de similitud.
2025-08-09 00:44:56,908 - INFO - Guardada comparación entre Batalla de Zaragoza.txt y Mercenarios (BattleTech).txt con 10.49% de similitud.
2025-08-09 00:44:56,911 - INFO - Guardada comparación entre Batalla de Zaragoza.txt y Efecto cis.txt con 12.67% de similitud.
2025-08-09 00:44:56,914 - INFO - Guardada comparación entre Batalla de Zaragoza.txt y Sanción.txt con 3.61% de similitud.
2025-08-09 00:44:56,917 - INFO - Guardada comparación entre Batalla de Zaragoza.txt y Saúl Luciano Lliuya.txt con 15.50% de similitud.
2025-08-09 00:44:56,920 - INFO - Guardada comparación entre Batalla de Zaragoza.txt y Antiprotestantismo.txt con 12.49% de similitud.
2025-08-09 00:44:56,923 - INFO - Guardada comparación entre Puebla de Segur.txt y Desigualdad de ingreso en Estados Unidos.txt con 18.11% de similitud.
2025-08-09 00:44:56,927 - INFO - Guardada comparación entre Puebla de Segur.txt y Club Deportivo La Equidad (Femenino).txt con 15.07% de similitud.
2025-08-09 00:44:56,930 - INFO - Guardada comparación entre Puebla de Segur.txt y Dirección General de Atención a las Víctimas y Promoción de la Memoria Democrática.txt con 16.31% de similitud.
2025-08-09 00:44:56,933 - INFO - Guardada comparación entre Puebla de Segur.txt y Asesoría Jurídica Internacional.txt con 12.21% de similitud.
2025-08-09 00:44:56,937 - INFO - Guardada comparación entre Puebla de Segur.txt y Desarrollo de videojuegos independiente.txt con 14.01% de similitud.
2025-08-09 00:44:56,940 - INFO - Guardada comparación entre Puebla de Segur.txt y Ingeniería comercial.txt con 15.45% de similitud.
2025-08-09 00:44:56,943 - INFO - Guardada comparación entre Puebla de Segur.txt y Chevrolet Cobalt.txt con 2.86% de similitud.
2025-08-09 00:44:56,947 - INFO - Guardada comparación entre Puebla de Segur.txt y Código Unificado de Punto de Suministro.txt con 15.26% de similitud.
2025-08-09 00:44:56,950 - INFO - Guardada comparación entre Puebla de Segur.txt y Guerra de guerrillas en la península ibérica durante las guerras napoleónicas.txt con 19.28% de similitud.
2025-08-09 00:44:56,954 - INFO - Guardada comparación entre Puebla de Segur.txt y Estación de tratamiento de agua potable.txt con 9.33% de similitud.
2025-08-09 00:44:56,957 - INFO - Guardada comparación entre Puebla de Segur.txt y Militar.txt con 16.46% de similitud.
2025-08-09 00:44:56,960 - INFO - Guardada comparación entre Puebla de Segur.txt y Demografía de Canadá.txt con 18.26% de similitud.
2025-08-09 00:44:56,963 - INFO - Guardada comparación entre Puebla de Segur.txt y EToro.txt con 15.76% de similitud.
2025-08-09 00:44:56,967 - INFO - Guardada comparación entre Puebla de Segur.txt y Ambiente biofísico.txt con 14.46% de similitud.
2025-08-09 00:44:56,971 - INFO - Guardada comparación entre Puebla de Segur.txt y Juego ganar ganar.txt con 13.89% de similitud.
2025-08-09 00:44:56,974 - INFO - Guardada comparación entre Puebla de Segur.txt y Declaración de los Derechos de la Mujer y de la Ciudadana.txt con 18.19% de similitud.
2025-08-09 00:44:56,978 - INFO - Guardada comparación entre Puebla de Segur.txt y Convención Marco de las Naciones Unidas sobre el Cambio Climático.txt con 19.30% de similitud.
2025-08-09 00:44:56,981 - INFO - Guardada comparación entre Puebla de Segur.txt y Oswald Pohl.txt con 13.09% de similitud.
2025-08-09 00:44:56,984 - INFO - Guardada comparación entre Puebla de Segur.txt y Empresa Nacional Siderúrgica.txt con 21.23% de similitud.
2025-08-09 00:44:56,988 - INFO - Guardada comparación entre Puebla de Segur.txt y Teletón El Salvador.txt con 18.86% de similitud.
2025-08-09 00:44:56,991 - INFO - Guardada comparación entre Puebla de Segur.txt y Antônio de Sousa Neto.txt con 10.77% de similitud.
2025-08-09 00:44:56,995 - INFO - Guardada comparación entre Puebla de Segur.txt y Mercenarios (BattleTech).txt con 17.89% de similitud.
2025-08-09 00:44:56,998 - INFO - Guardada comparación entre Puebla de Segur.txt y Efecto cis.txt con 16.19% de similitud.
2025-08-09 00:44:57,002 - INFO - Guardada comparación entre Puebla de Segur.txt y Sanción.txt con 1.66% de similitud.
2025-08-09 00:44:57,005 - INFO - Guardada comparación entre Puebla de Segur.txt y Saúl Luciano Lliuya.txt con 11.21% de similitud.
2025-08-09 00:44:57,009 - INFO - Guardada comparación entre Puebla de Segur.txt y Antiprotestantismo.txt con 18.46% de similitud.
2025-08-09 00:44:57,012 - INFO - Guardada comparación entre Trabajo de mierda.txt y Desigualdad de ingreso en Estados Unidos.txt con 9.31% de similitud.
2025-08-09 00:44:57,015 - INFO - Guardada comparación entre Trabajo de mierda.txt y Club Deportivo La Equidad (Femenino).txt con 8.60% de similitud.
2025-08-09 00:44:57,018 - INFO - Guardada comparación entre Trabajo de mierda.txt y Dirección General de Atención a las Víctimas y Promoción de la Memoria Democrática.txt con 9.67% de similitud.
2025-08-09 00:44:57,021 - INFO - Guardada comparación entre Trabajo de mierda.txt y Asesoría Jurídica Internacional.txt con 12.23% de similitud.
2025-08-09 00:44:57,025 - INFO - Guardada comparación entre Trabajo de mierda.txt y Desarrollo de videojuegos independiente.txt con 3.62% de similitud.
2025-08-09 00:44:57,028 - INFO - Guardada comparación entre Trabajo de mierda.txt y Ingeniería comercial.txt con 12.03% de similitud.
2025-08-09 00:44:57,031 - INFO - Guardada comparación entre Trabajo de mierda.txt y Chevrolet Cobalt.txt con 7.14% de similitud.
2025-08-09 00:44:57,034 - INFO - Guardada comparación entre Trabajo de mierda.txt y Código Unificado de Punto de Suministro.txt con 9.32% de similitud.
2025-08-09 00:44:57,037 - INFO - Guardada comparación entre Trabajo de mierda.txt y Guerra de guerrillas en la península ibérica durante las guerras napoleónicas.txt con 6.35% de similitud.
2025-08-09 00:44:57,040 - INFO - Guardada comparación entre Trabajo de mierda.txt y Estación de tratamiento de agua potable.txt con 11.96% de similitud.
2025-08-09 00:44:57,044 - INFO - Guardada comparación entre Trabajo de mierda.txt y Militar.txt con 7.77% de similitud.
2025-08-09 00:44:57,047 - INFO - Guardada comparación entre Trabajo de mierda.txt y Demografía de Canadá.txt con 5.70% de similitud.
2025-08-09 00:44:57,050 - INFO - Guardada comparación entre Trabajo de mierda.txt y EToro.txt con 9.27% de similitud.
2025-08-09 00:44:57,054 - INFO - Guardada comparación entre Trabajo de mierda.txt y Ambiente biofísico.txt con 12.41% de similitud.
2025-08-09 00:44:57,057 - INFO - Guardada comparación entre Trabajo de mierda.txt y Juego ganar ganar.txt con 10.54% de similitud.
2025-08-09 00:44:57,060 - INFO - Guardada comparación entre Trabajo de mierda.txt y Declaración de los Derechos de la Mujer y de la Ciudadana.txt con 6.02% de similitud.
2025-08-09 00:44:57,064 - INFO - Guardada comparación entre Trabajo de mierda.txt y Convención Marco de las Naciones Unidas sobre el Cambio Climático.txt con 6.85% de similitud.
2025-08-09 00:44:57,067 - INFO - Guardada comparación entre Trabajo de mierda.txt y Oswald Pohl.txt con 10.33% de similitud.
2025-08-09 00:44:57,071 - INFO - Guardada comparación entre Trabajo de mierda.txt y Empresa Nacional Siderúrgica.txt con 7.64% de similitud.
2025-08-09 00:44:57,074 - INFO - Guardada comparación entre Trabajo de mierda.txt y Teletón El Salvador.txt con 6.53% de similitud.
2025-08-09 00:44:57,077 - INFO - Guardada comparación entre Trabajo de mierda.txt y Antônio de Sousa Neto.txt con 12.06% de similitud.
2025-08-09 00:44:57,081 - INFO - Guardada comparación entre Trabajo de mierda.txt y Mercenarios (BattleTech).txt con 6.10% de similitud.
2025-08-09 00:44:57,084 - INFO - Guardada comparación entre Trabajo de mierda.txt y Efecto cis.txt con 8.20% de similitud.
2025-08-09 00:44:57,087 - INFO - Guardada comparación entre Trabajo de mierda.txt y Demografía de la República Democrática del Congo.txt con 7.03% de similitud.
2025-08-09 00:44:57,091 - INFO - Guardada comparación entre Trabajo de mierda.txt y Desigualdad de ingreso.txt con 3.57% de similitud.
2025-08-09 00:44:57,095 - INFO - Guardada comparación entre Trabajo de mierda.txt y Terrorismo de extrema izquierda.txt con 3.82% de similitud.
2025-08-09 00:44:57,100 - INFO - Guardada comparación entre Susana Ruiz Cerutti.txt y Iberos.txt con 3.82% de similitud.
2025-08-09 00:44:57,103 - INFO - Guardada comparación entre Susana Ruiz Cerutti.txt y .km.txt con 8.17% de similitud.
2025-08-09 00:44:57,107 - INFO - Guardada comparación entre Susana Ruiz Cerutti.txt y Censura internacional china.txt con 11.96% de similitud.
2025-08-09 00:44:57,110 - INFO - Guardada comparación entre Susana Ruiz Cerutti.txt y Alfarería en la provincia de Almería.txt con 11.60% de similitud.
2025-08-09 00:44:57,114 - INFO - Guardada comparación entre Susana Ruiz Cerutti.txt y Acuerdo de Prespa.txt con 11.31% de similitud.
2025-08-09 00:44:57,117 - INFO - Guardada comparación entre Susana Ruiz Cerutti.txt y Segunda Cumbre BRIC 2010.txt con 18.12% de similitud.
2025-08-09 00:44:57,120 - INFO - Guardada comparación entre Susana Ruiz Cerutti.txt y Santa Marina del Rey.txt con 16.52% de similitud.
2025-08-09 00:44:57,123 - INFO - Guardada comparación entre Susana Ruiz Cerutti.txt y Omaira Montoya Henao.txt con 20.37% de similitud.
2025-08-09 00:44:57,127 - INFO - Guardada comparación entre Susana Ruiz Cerutti.txt y Biodiversidad Virtual.txt con 16.44% de similitud.
2025-08-09 00:44:57,130 - INFO - Guardada comparación entre Susana Ruiz Cerutti.txt y Estudios de ciencia, tecnología y género.txt con 15.68% de similitud.
2025-08-09 00:44:57,133 - INFO - Guardada comparación entre Susana Ruiz Cerutti.txt y Representación (política).txt con 18.18% de similitud.
2025-08-09 00:44:57,136 - INFO - Guardada comparación entre Susana Ruiz Cerutti.txt y Roxana Campos.txt con 15.74% de similitud.
2025-08-09 00:44:57,141 - INFO - Guardada comparación entre Susana Ruiz Cerutti.txt y Reforma económica china.txt con 4.59% de similitud.
2025-08-09 00:44:57,144 - INFO - Guardada comparación entre Susana Ruiz Cerutti.txt y Alejandro VII.txt con 15.90% de similitud.
2025-08-09 00:44:57,147 - INFO - Guardada comparación entre Susana Ruiz Cerutti.txt y Violencia obstétrica.txt con 18.63% de similitud.
2025-08-09 00:44:57,150 - INFO - Guardada comparación entre Susana Ruiz Cerutti.txt y Torrente Gros.txt con 16.83% de similitud.
2025-08-09 00:44:57,154 - INFO - Guardada comparación entre Susana Ruiz Cerutti.txt y Guerra de Reforma.txt con 12.69% de similitud.
2025-08-09 00:44:57,157 - INFO - Guardada comparación entre Susana Ruiz Cerutti.txt y Certificate Signing Request.txt con 8.53% de similitud.
2025-08-09 00:44:57,161 - INFO - Guardada comparación entre Susana Ruiz Cerutti.txt y Katalin Bogyay.txt con 12.49% de similitud.
2025-08-09 00:44:57,164 - INFO - Guardada comparación entre Susana Ruiz Cerutti.txt y Unión Ortodoxa.txt con 16.91% de similitud.
2025-08-09 00:44:57,168 - INFO - Guardada comparación entre Susana Ruiz Cerutti.txt y Emisora móvil.txt con 7.67% de similitud.
2025-08-09 00:44:57,171 - INFO - Guardada comparación entre Susana Ruiz Cerutti.txt y Sanción.txt con 3.08% de similitud.
2025-08-09 00:44:57,174 - INFO - Guardada comparación entre Susana Ruiz Cerutti.txt y Saúl Luciano Lliuya.txt con 15.63% de similitud.
2025-08-09 00:44:57,177 - INFO - Guardada comparación entre Susana Ruiz Cerutti.txt y Antiprotestantismo.txt con 15.88% de similitud.
2025-08-09 00:44:57,180 - INFO - Guardada comparación entre Reconstrucción Blanca.txt y Desigualdad de ingreso en Estados Unidos.txt con 11.10% de similitud.
2025-08-09 00:44:57,183 - INFO - Guardada comparación entre Reconstrucción Blanca.txt y Club Deportivo La Equidad (Femenino).txt con 12.95% de similitud.
2025-08-09 00:44:57,190 - INFO - Guardada comparación entre Reconstrucción Blanca.txt y Dirección General de Atención a las Víctimas y Promoción de la Memoria Democrática.txt con 13.28% de similitud.
2025-08-09 00:44:57,194 - INFO - Guardada comparación entre Reconstrucción Blanca.txt y Censura internacional china.txt con 8.00% de similitud.
2025-08-09 00:44:57,197 - INFO - Guardada comparación entre Reconstrucción Blanca.txt y Alfarería en la provincia de Almería.txt con 7.17% de similitud.
2025-08-09 00:44:57,200 - INFO - Guardada comparación entre Reconstrucción Blanca.txt y Acuerdo de Prespa.txt con 12.88% de similitud.
2025-08-09 00:44:57,203 - INFO - Guardada comparación entre Reconstrucción Blanca.txt y Segunda Cumbre BRIC 2010.txt con 11.54% de similitud.
2025-08-09 00:44:57,206 - INFO - Guardada comparación entre Reconstrucción Blanca.txt y Santa Marina del Rey.txt con 13.59% de similitud.
2025-08-09 00:44:57,209 - INFO - Guardada comparación entre Reconstrucción Blanca.txt y Omaira Montoya Henao.txt con 15.78% de similitud.
2025-08-09 00:44:57,212 - INFO - Guardada comparación entre Reconstrucción Blanca.txt y Biodiversidad Virtual.txt con 12.24% de similitud.
2025-08-09 00:44:57,216 - INFO - Guardada comparación entre Reconstrucción Blanca.txt y Estudios de ciencia, tecnología y género.txt con 10.17% de similitud.
2025-08-09 00:44:57,219 - INFO - Guardada comparación entre Reconstrucción Blanca.txt y Demografía de Canadá.txt con 8.06% de similitud.
2025-08-09 00:44:57,222 - INFO - Guardada comparación entre Reconstrucción Blanca.txt y Roxana Campos.txt con 14.53% de similitud.
2025-08-09 00:44:57,226 - INFO - Guardada comparación entre Reconstrucción Blanca.txt y Reforma económica china.txt con 2.90% de similitud.
2025-08-09 00:44:57,229 - INFO - Guardada comparación entre Reconstrucción Blanca.txt y Alejandro VII.txt con 10.44% de similitud.
2025-08-09 00:44:57,233 - INFO - Guardada comparación entre Reconstrucción Blanca.txt y Violencia obstétrica.txt con 12.64% de similitud.
2025-08-09 00:44:57,236 - INFO - Guardada comparación entre Reconstrucción Blanca.txt y Torrente Gros.txt con 12.99% de similitud.
2025-08-09 00:44:57,239 - INFO - Guardada comparación entre Reconstrucción Blanca.txt y Guerra de Reforma.txt con 8.15% de similitud.
2025-08-09 00:44:57,243 - INFO - Guardada comparación entre Reconstrucción Blanca.txt y Certificate Signing Request.txt con 6.07% de similitud.
2025-08-09 00:44:57,246 - INFO - Guardada comparación entre Reconstrucción Blanca.txt y Katalin Bogyay.txt con 6.74% de similitud.
2025-08-09 00:44:57,249 - INFO - Guardada comparación entre Reconstrucción Blanca.txt y Unión Ortodoxa.txt con 11.21% de similitud.
2025-08-09 00:44:57,253 - INFO - Guardada comparación entre Reconstrucción Blanca.txt y Emisora móvil.txt con 5.01% de similitud.
2025-08-09 00:44:57,256 - INFO - Guardada comparación entre Reconstrucción Blanca.txt y Sanción.txt con 3.79% de similitud.
2025-08-09 00:44:57,259 - INFO - Guardada comparación entre Reconstrucción Blanca.txt y Saúl Luciano Lliuya.txt con 12.82% de similitud.
2025-08-09 00:44:57,262 - INFO - Guardada comparación entre Reconstrucción Blanca.txt y Antiprotestantismo.txt con 10.12% de similitud.
2025-08-09 00:44:57,266 - INFO - Guardada comparación entre Relaciones Unión Europea-micro-Estados europeos.txt y Desigualdad de ingreso en Estados Unidos.txt con 20.24% de similitud.
2025-08-09 00:44:57,269 - INFO - Guardada comparación entre Relaciones Unión Europea-micro-Estados europeos.txt y Club Deportivo La Equidad (Femenino).txt con 16.58% de similitud.
2025-08-09 00:44:57,273 - INFO - Guardada comparación entre Relaciones Unión Europea-micro-Estados europeos.txt y Dirección General de Atención a las Víctimas y Promoción de la Memoria Democrática.txt con 19.28% de similitud.
2025-08-09 00:44:57,276 - INFO - Guardada comparación entre Relaciones Unión Europea-micro-Estados europeos.txt y Asesoría Jurídica Internacional.txt con 14.22% de similitud.
2025-08-09 00:44:57,280 - INFO - Guardada comparación entre Relaciones Unión Europea-micro-Estados europeos.txt y Desarrollo de videojuegos independiente.txt con 13.69% de similitud.
2025-08-09 00:44:57,283 - INFO - Guardada comparación entre Relaciones Unión Europea-micro-Estados europeos.txt y Ingeniería comercial.txt con 17.93% de similitud.
2025-08-09 00:44:57,286 - INFO - Guardada comparación entre Relaciones Unión Europea-micro-Estados europeos.txt y Chevrolet Cobalt.txt con 3.07% de similitud.
2025-08-09 00:44:57,290 - INFO - Guardada comparación entre Relaciones Unión Europea-micro-Estados europeos.txt y Código Unificado de Punto de Suministro.txt con 15.31% de similitud.
2025-08-09 00:44:57,294 - INFO - Guardada comparación entre Relaciones Unión Europea-micro-Estados europeos.txt y Guerra de guerrillas en la península ibérica durante las guerras napoleónicas.txt con 19.93% de similitud.
2025-08-09 00:44:57,297 - INFO - Guardada comparación entre Relaciones Unión Europea-micro-Estados europeos.txt y Estación de tratamiento de agua potable.txt con 10.70% de similitud.
2025-08-09 00:44:57,300 - INFO - Guardada comparación entre Relaciones Unión Europea-micro-Estados europeos.txt y Militar.txt con 20.52% de similitud.
2025-08-09 00:44:57,304 - INFO - Guardada comparación entre Relaciones Unión Europea-micro-Estados europeos.txt y Demografía de Canadá.txt con 19.04% de similitud.
2025-08-09 00:44:57,307 - INFO - Guardada comparación entre Relaciones Unión Europea-micro-Estados europeos.txt y EToro.txt con 17.32% de similitud.
2025-08-09 00:44:57,310 - INFO - Guardada comparación entre Relaciones Unión Europea-micro-Estados europeos.txt y Ambiente biofísico.txt con 14.88% de similitud.
2025-08-09 00:44:57,314 - INFO - Guardada comparación entre Relaciones Unión Europea-micro-Estados europeos.txt y Juego ganar ganar.txt con 15.95% de similitud.
2025-08-09 00:44:57,317 - INFO - Guardada comparación entre Relaciones Unión Europea-micro-Estados europeos.txt y Declaración de los Derechos de la Mujer y de la Ciudadana.txt con 19.84% de similitud.
2025-08-09 00:44:57,320 - INFO - Guardada comparación entre Relaciones Unión Europea-micro-Estados europeos.txt y Convención Marco de las Naciones Unidas sobre el Cambio Climático.txt con 21.37% de similitud.
2025-08-09 00:44:57,324 - INFO - Guardada comparación entre Relaciones Unión Europea-micro-Estados europeos.txt y Oswald Pohl.txt con 14.41% de similitud.
2025-08-09 00:44:57,327 - INFO - Guardada comparación entre Relaciones Unión Europea-micro-Estados europeos.txt y Empresa Nacional Siderúrgica.txt con 19.64% de similitud.
2025-08-09 00:44:57,331 - INFO - Guardada comparación entre Relaciones Unión Europea-micro-Estados europeos.txt y Teletón El Salvador.txt con 21.81% de similitud.
2025-08-09 00:44:57,334 - INFO - Guardada comparación entre Relaciones Unión Europea-micro-Estados europeos.txt y Antônio de Sousa Neto.txt con 11.33% de similitud.
2025-08-09 00:44:57,337 - INFO - Guardada comparación entre Relaciones Unión Europea-micro-Estados europeos.txt y Mercenarios (BattleTech).txt con 19.49% de similitud.
2025-08-09 00:44:57,341 - INFO - Guardada comparación entre Relaciones Unión Europea-micro-Estados europeos.txt y Efecto cis.txt con 17.20% de similitud.
2025-08-09 00:44:57,344 - INFO - Guardada comparación entre Relaciones Unión Europea-micro-Estados europeos.txt y Demografía de la República Democrática del Congo.txt con 16.46% de similitud.
2025-08-09 00:44:57,348 - INFO - Guardada comparación entre Relaciones Unión Europea-micro-Estados europeos.txt y Desigualdad de ingreso.txt con 12.09% de similitud.
2025-08-09 00:44:57,352 - INFO - Guardada comparación entre Relaciones Unión Europea-micro-Estados europeos.txt y Terrorismo de extrema izquierda.txt con 13.97% de similitud.
2025-08-09 00:44:57,358 - INFO - Guardada comparación entre Juegos de guerra.txt y Iberos.txt con 8.42% de similitud.
2025-08-09 00:44:57,361 - INFO - Guardada comparación entre Juegos de guerra.txt y .km.txt con 5.61% de similitud.
2025-08-09 00:44:57,364 - INFO - Guardada comparación entre Juegos de guerra.txt y Asesoría Jurídica Internacional.txt con 10.46% de similitud.
2025-08-09 00:44:57,368 - INFO - Guardada comparación entre Juegos de guerra.txt y Desarrollo de videojuegos independiente.txt con 15.64% de similitud.
2025-08-09 00:44:57,372 - INFO - Guardada comparación entre Juegos de guerra.txt y Ingeniería comercial.txt con 13.44% de similitud.
2025-08-09 00:44:57,375 - INFO - Guardada comparación entre Juegos de guerra.txt y Chevrolet Cobalt.txt con 2.31% de similitud.
2025-08-09 00:44:57,378 - INFO - Guardada comparación entre Juegos de guerra.txt y Código Unificado de Punto de Suministro.txt con 11.91% de similitud.
2025-08-09 00:44:57,382 - INFO - Guardada comparación entre Juegos de guerra.txt y Guerra de guerrillas en la península ibérica durante las guerras napoleónicas.txt con 18.59% de similitud.
2025-08-09 00:44:57,385 - INFO - Guardada comparación entre Juegos de guerra.txt y Estación de tratamiento de agua potable.txt con 7.93% de similitud.
2025-08-09 00:44:57,389 - INFO - Guardada comparación entre Juegos de guerra.txt y Militar.txt con 18.07% de similitud.
2025-08-09 00:44:57,392 - INFO - Guardada comparación entre Juegos de guerra.txt y Demografía de Canadá.txt con 17.59% de similitud.
2025-08-09 00:44:57,396 - INFO - Guardada comparación entre Juegos de guerra.txt y EToro.txt con 13.68% de similitud.
2025-08-09 00:44:57,401 - INFO - Guardada comparación entre Juegos de guerra.txt y Reforma económica china.txt con 9.41% de similitud.
2025-08-09 00:44:57,405 - INFO - Guardada comparación entre Juegos de guerra.txt y Alejandro VII.txt con 19.25% de similitud.
2025-08-09 00:44:57,408 - INFO - Guardada comparación entre Juegos de guerra.txt y Violencia obstétrica.txt con 14.18% de similitud.
2025-08-09 00:44:57,412 - INFO - Guardada comparación entre Juegos de guerra.txt y Torrente Gros.txt con 15.71% de similitud.
2025-08-09 00:44:57,416 - INFO - Guardada comparación entre Juegos de guerra.txt y Guerra de Reforma.txt con 19.27% de similitud.
2025-08-09 00:44:57,420 - INFO - Guardada comparación entre Juegos de guerra.txt y Certificate Signing Request.txt con 9.84% de similitud.
2025-08-09 00:44:57,424 - INFO - Guardada comparación entre Juegos de guerra.txt y Katalin Bogyay.txt con 16.16% de similitud.
2025-08-09 00:44:57,427 - INFO - Guardada comparación entre Juegos de guerra.txt y Unión Ortodoxa.txt con 17.27% de similitud.
2025-08-09 00:44:57,431 - INFO - Guardada comparación entre Juegos de guerra.txt y Emisora móvil.txt con 15.66% de similitud.
2025-08-09 00:44:57,435 - INFO - Guardada comparación entre Juegos de guerra.txt y Sanción.txt con 1.24% de similitud.
2025-08-09 00:44:57,438 - INFO - Guardada comparación entre Juegos de guerra.txt y Saúl Luciano Lliuya.txt con 8.81% de similitud.
2025-08-09 00:44:57,441 - INFO - Guardada comparación entre Juegos de guerra.txt y Antiprotestantismo.txt con 16.49% de similitud.
2025-08-09 00:44:57,445 - INFO - Guardada comparación entre Navegador sin interfaz gráfica.txt y Desigualdad de ingreso en Estados Unidos.txt con 15.22% de similitud.
2025-08-09 00:44:57,448 - INFO - Guardada comparación entre Navegador sin interfaz gráfica.txt y Club Deportivo La Equidad (Femenino).txt con 12.28% de similitud.
2025-08-09 00:44:57,451 - INFO - Guardada comparación entre Navegador sin interfaz gráfica.txt y Dirección General de Atención a las Víctimas y Promoción de la Memoria Democrática.txt con 13.24% de similitud.
2025-08-09 00:44:57,455 - INFO - Guardada comparación entre Navegador sin interfaz gráfica.txt y Asesoría Jurídica Internacional.txt con 13.36% de similitud.
2025-08-09 00:44:57,459 - INFO - Guardada comparación entre Navegador sin interfaz gráfica.txt y Desarrollo de videojuegos independiente.txt con 8.75% de similitud.
2025-08-09 00:44:57,462 - INFO - Guardada comparación entre Navegador sin interfaz gráfica.txt y Acuerdo de Prespa.txt con 10.56% de similitud.
2025-08-09 00:44:57,465 - INFO - Guardada comparación entre Navegador sin interfaz gráfica.txt y Chevrolet Cobalt.txt con 4.05% de similitud.
2025-08-09 00:44:57,469 - INFO - Guardada comparación entre Navegador sin interfaz gráfica.txt y Código Unificado de Punto de Suministro.txt con 13.96% de similitud.
2025-08-09 00:44:57,472 - INFO - Guardada comparación entre Navegador sin interfaz gráfica.txt y Omaira Montoya Henao.txt con 15.74% de similitud.
2025-08-09 00:44:57,475 - INFO - Guardada comparación entre Navegador sin interfaz gráfica.txt y Estación de tratamiento de agua potable.txt con 11.36% de similitud.
2025-08-09 00:44:57,479 - INFO - Guardada comparación entre Navegador sin interfaz gráfica.txt y Militar.txt con 12.00% de similitud.
2025-08-09 00:44:57,482 - INFO - Guardada comparación entre Navegador sin interfaz gráfica.txt y Demografía de Canadá.txt con 11.31% de similitud.
2025-08-09 00:44:57,486 - INFO - Guardada comparación entre Navegador sin interfaz gráfica.txt y Roxana Campos.txt con 11.61% de similitud.
2025-08-09 00:44:57,490 - INFO - Guardada comparación entre Navegador sin interfaz gráfica.txt y Reforma económica china.txt con 4.43% de similitud.
2025-08-09 00:44:57,493 - INFO - Guardada comparación entre Navegador sin interfaz gráfica.txt y Alejandro VII.txt con 11.12% de similitud.
2025-08-09 00:44:57,496 - INFO - Guardada comparación entre Navegador sin interfaz gráfica.txt y Violencia obstétrica.txt con 14.46% de similitud.
2025-08-09 00:44:57,500 - INFO - Guardada comparación entre Navegador sin interfaz gráfica.txt y Torrente Gros.txt con 12.34% de similitud.
2025-08-09 00:44:57,503 - INFO - Guardada comparación entre Navegador sin interfaz gráfica.txt y Guerra de Reforma.txt con 9.51% de similitud.
2025-08-09 00:44:57,507 - INFO - Guardada comparación entre Navegador sin interfaz gráfica.txt y Certificate Signing Request.txt con 10.28% de similitud.
2025-08-09 00:44:57,510 - INFO - Guardada comparación entre Navegador sin interfaz gráfica.txt y Katalin Bogyay.txt con 10.18% de similitud.
2025-08-09 00:44:57,514 - INFO - Guardada comparación entre Navegador sin interfaz gráfica.txt y Mercenarios (BattleTech).txt con 10.44% de similitud.
2025-08-09 00:44:57,518 - INFO - Guardada comparación entre Navegador sin interfaz gráfica.txt y Emisora móvil.txt con 7.27% de similitud.
2025-08-09 00:44:57,521 - INFO - Guardada comparación entre Navegador sin interfaz gráfica.txt y Sanción.txt con 2.33% de similitud.
2025-08-09 00:44:57,524 - INFO - Guardada comparación entre Navegador sin interfaz gráfica.txt y Saúl Luciano Lliuya.txt con 13.39% de similitud.
2025-08-09 00:44:57,528 - INFO - Guardada comparación entre Navegador sin interfaz gráfica.txt y Antiprotestantismo.txt con 13.35% de similitud.
2025-08-09 00:44:57,531 - INFO - Guardada comparación entre Asociación Civil Transparencia.txt y Desigualdad de ingreso en Estados Unidos.txt con 11.04% de similitud.
2025-08-09 00:44:57,534 - INFO - Guardada comparación entre Asociación Civil Transparencia.txt y Club Deportivo La Equidad (Femenino).txt con 12.57% de similitud.
2025-08-09 00:44:57,538 - INFO - Guardada comparación entre Asociación Civil Transparencia.txt y Dirección General de Atención a las Víctimas y Promoción de la Memoria Democrática.txt con 13.99% de similitud.
2025-08-09 00:44:57,541 - INFO - Guardada comparación entre Asociación Civil Transparencia.txt y Asesoría Jurídica Internacional.txt con 15.01% de similitud.
2025-08-09 00:44:57,544 - INFO - Guardada comparación entre Asociación Civil Transparencia.txt y Desarrollo de videojuegos independiente.txt con 5.51% de similitud.
2025-08-09 00:44:57,547 - INFO - Guardada comparación entre Asociación Civil Transparencia.txt y Ingeniería comercial.txt con 14.21% de similitud.
2025-08-09 00:44:57,550 - INFO - Guardada comparación entre Asociación Civil Transparencia.txt y Chevrolet Cobalt.txt con 5.78% de similitud.
2025-08-09 00:44:57,553 - INFO - Guardada comparación entre Asociación Civil Transparencia.txt y Código Unificado de Punto de Suministro.txt con 13.60% de similitud.
2025-08-09 00:44:57,556 - INFO - Guardada comparación entre Asociación Civil Transparencia.txt y Guerra de guerrillas en la península ibérica durante las guerras napoleónicas.txt con 9.10% de similitud.
2025-08-09 00:44:57,559 - INFO - Guardada comparación entre Asociación Civil Transparencia.txt y Estación de tratamiento de agua potable.txt con 14.30% de similitud.
2025-08-09 00:44:57,563 - INFO - Guardada comparación entre Asociación Civil Transparencia.txt y Militar.txt con 11.32% de similitud.
2025-08-09 00:44:57,566 - INFO - Guardada comparación entre Asociación Civil Transparencia.txt y Demografía de Canadá.txt con 8.78% de similitud.
2025-08-09 00:44:57,569 - INFO - Guardada comparación entre Asociación Civil Transparencia.txt y EToro.txt con 11.72% de similitud.
2025-08-09 00:44:57,572 - INFO - Guardada comparación entre Asociación Civil Transparencia.txt y Ambiente biofísico.txt con 14.70% de similitud.
2025-08-09 00:44:57,575 - INFO - Guardada comparación entre Asociación Civil Transparencia.txt y Juego ganar ganar.txt con 15.44% de similitud.
2025-08-09 00:44:57,579 - INFO - Guardada comparación entre Asociación Civil Transparencia.txt y Declaración de los Derechos de la Mujer y de la Ciudadana.txt con 8.56% de similitud.
2025-08-09 00:44:57,582 - INFO - Guardada comparación entre Asociación Civil Transparencia.txt y Convención Marco de las Naciones Unidas sobre el Cambio Climático.txt con 10.01% de similitud.
2025-08-09 00:44:57,585 - INFO - Guardada comparación entre Asociación Civil Transparencia.txt y Oswald Pohl.txt con 13.52% de similitud.
2025-08-09 00:44:57,588 - INFO - Guardada comparación entre Asociación Civil Transparencia.txt y Empresa Nacional Siderúrgica.txt con 10.67% de similitud.
2025-08-09 00:44:57,592 - INFO - Guardada comparación entre Asociación Civil Transparencia.txt y Teletón El Salvador.txt con 10.43% de similitud.
2025-08-09 00:44:57,595 - INFO - Guardada comparación entre Asociación Civil Transparencia.txt y Antônio de Sousa Neto.txt con 14.34% de similitud.
2025-08-09 00:44:57,598 - INFO - Guardada comparación entre Asociación Civil Transparencia.txt y Mercenarios (BattleTech).txt con 8.27% de similitud.
2025-08-09 00:44:57,601 - INFO - Guardada comparación entre Asociación Civil Transparencia.txt y Efecto cis.txt con 11.84% de similitud.
2025-08-09 00:44:57,605 - INFO - Guardada comparación entre Asociación Civil Transparencia.txt y Demografía de la República Democrática del Congo.txt con 11.70% de similitud.
2025-08-09 00:44:57,609 - INFO - Guardada comparación entre Asociación Civil Transparencia.txt y Desigualdad de ingreso.txt con 5.05% de similitud.
2025-08-09 00:44:57,613 - INFO - Guardada comparación entre Asociación Civil Transparencia.txt y Terrorismo de extrema izquierda.txt con 6.04% de similitud.
2025-08-09 00:44:57,617 - INFO - Guardada comparación entre Medidas activas.txt y Club Deportivo La Equidad (Femenino).txt con 11.62% de similitud.
2025-08-09 00:44:57,621 - INFO - Guardada comparación entre Medidas activas.txt y Dirección General de Atención a las Víctimas y Promoción de la Memoria Democrática.txt con 13.38% de similitud.
2025-08-09 00:44:57,624 - INFO - Guardada comparación entre Medidas activas.txt y Asesoría Jurídica Internacional.txt con 9.05% de similitud.
2025-08-09 00:44:57,628 - INFO - Guardada comparación entre Medidas activas.txt y Desarrollo de videojuegos independiente.txt con 17.89% de similitud.
2025-08-09 00:44:57,632 - INFO - Guardada comparación entre Medidas activas.txt y Ingeniería comercial.txt con 11.71% de similitud.
2025-08-09 00:44:57,635 - INFO - Guardada comparación entre Medidas activas.txt y Chevrolet Cobalt.txt con 2.06% de similitud.
2025-08-09 00:44:57,639 - INFO - Guardada comparación entre Medidas activas.txt y Código Unificado de Punto de Suministro.txt con 11.17% de similitud.
2025-08-09 00:44:57,643 - INFO - Guardada comparación entre Medidas activas.txt y Guerra de guerrillas en la península ibérica durante las guerras napoleónicas.txt con 20.65% de similitud.
2025-08-09 00:44:57,646 - INFO - Guardada comparación entre Medidas activas.txt y Estación de tratamiento de agua potable.txt con 6.43% de similitud.
2025-08-09 00:44:57,649 - INFO - Guardada comparación entre Medidas activas.txt y Militar.txt con 15.47% de similitud.
2025-08-09 00:44:57,653 - INFO - Guardada comparación entre Medidas activas.txt y Demografía de Canadá.txt con 19.14% de similitud.
2025-08-09 00:44:57,657 - INFO - Guardada comparación entre Medidas activas.txt y EToro.txt con 14.46% de similitud.
2025-08-09 00:44:57,660 - INFO - Guardada comparación entre Medidas activas.txt y Ambiente biofísico.txt con 10.28% de similitud.
2025-08-09 00:44:57,664 - INFO - Guardada comparación entre Medidas activas.txt y Juego ganar ganar.txt con 10.67% de similitud.
2025-08-09 00:44:57,667 - INFO - Guardada comparación entre Medidas activas.txt y Declaración de los Derechos de la Mujer y de la Ciudadana.txt con 20.41% de similitud.
2025-08-09 00:44:57,671 - INFO - Guardada comparación entre Medidas activas.txt y Convención Marco de las Naciones Unidas sobre el Cambio Climático.txt con 19.58% de similitud.
2025-08-09 00:44:57,674 - INFO - Guardada comparación entre Medidas activas.txt y Oswald Pohl.txt con 10.45% de similitud.
2025-08-09 00:44:57,678 - INFO - Guardada comparación entre Medidas activas.txt y Guerra de Reforma.txt con 22.27% de similitud.
2025-08-09 00:44:57,682 - INFO - Guardada comparación entre Medidas activas.txt y Teletón El Salvador.txt con 17.38% de similitud.
2025-08-09 00:44:57,686 - INFO - Guardada comparación entre Medidas activas.txt y Antônio de Sousa Neto.txt con 7.58% de similitud.
2025-08-09 00:44:57,689 - INFO - Guardada comparación entre Medidas activas.txt y Mercenarios (BattleTech).txt con 20.02% de similitud.
2025-08-09 00:44:57,693 - INFO - Guardada comparación entre Medidas activas.txt y Emisora móvil.txt con 17.74% de similitud.
2025-08-09 00:44:57,697 - INFO - Guardada comparación entre Medidas activas.txt y Demografía de la República Democrática del Congo.txt con 14.05% de similitud.
2025-08-09 00:44:57,701 - INFO - Guardada comparación entre Medidas activas.txt y Desigualdad de ingreso.txt con 17.88% de similitud.
2025-08-09 00:44:57,706 - INFO - Guardada comparación entre Medidas activas.txt y Terrorismo de extrema izquierda.txt con 22.17% de similitud.
2025-08-09 00:44:57,711 - INFO - Guardada comparación entre Estéfany Grajales.txt y Iberos.txt con 1.97% de similitud.
2025-08-09 00:44:57,714 - INFO - Guardada comparación entre Estéfany Grajales.txt y .km.txt con 8.89% de similitud.
2025-08-09 00:44:57,717 - INFO - Guardada comparación entre Estéfany Grajales.txt y Censura internacional china.txt con 7.29% de similitud.
2025-08-09 00:44:57,721 - INFO - Guardada comparación entre Estéfany Grajales.txt y Alfarería en la provincia de Almería.txt con 6.44% de similitud.
2025-08-09 00:44:57,724 - INFO - Guardada comparación entre Estéfany Grajales.txt y Acuerdo de Prespa.txt con 15.71% de similitud.
2025-08-09 00:44:57,727 - INFO - Guardada comparación entre Estéfany Grajales.txt y Segunda Cumbre BRIC 2010.txt con 10.45% de similitud.
2025-08-09 00:44:57,730 - INFO - Guardada comparación entre Estéfany Grajales.txt y Santa Marina del Rey.txt con 11.64% de similitud.
2025-08-09 00:44:57,733 - INFO - Guardada comparación entre Estéfany Grajales.txt y Omaira Montoya Henao.txt con 16.86% de similitud.
2025-08-09 00:44:57,736 - INFO - Guardada comparación entre Estéfany Grajales.txt y Biodiversidad Virtual.txt con 10.64% de similitud.
2025-08-09 00:44:57,739 - INFO - Guardada comparación entre Estéfany Grajales.txt y Estudios de ciencia, tecnología y género.txt con 10.31% de similitud.
2025-08-09 00:44:57,742 - INFO - Guardada comparación entre Estéfany Grajales.txt y Representación (política).txt con 12.04% de similitud.
2025-08-09 00:44:57,745 - INFO - Guardada comparación entre Estéfany Grajales.txt y Roxana Campos.txt con 14.50% de similitud.
2025-08-09 00:44:57,750 - INFO - Guardada comparación entre Estéfany Grajales.txt y Reforma económica china.txt con 2.31% de similitud.
2025-08-09 00:44:57,753 - INFO - Guardada comparación entre Estéfany Grajales.txt y Declaración de los Derechos de la Mujer y de la Ciudadana.txt con 7.68% de similitud.
2025-08-09 00:44:57,756 - INFO - Guardada comparación entre Estéfany Grajales.txt y Violencia obstétrica.txt con 14.46% de similitud.
2025-08-09 00:44:57,759 - INFO - Guardada comparación entre Estéfany Grajales.txt y Torrente Gros.txt con 10.42% de similitud.
2025-08-09 00:44:57,763 - INFO - Guardada comparación entre Estéfany Grajales.txt y Guerra de Reforma.txt con 7.15% de similitud.
2025-08-09 00:44:57,766 - INFO - Guardada comparación entre Estéfany Grajales.txt y Teletón El Salvador.txt con 8.55% de similitud.
2025-08-09 00:44:57,769 - INFO - Guardada comparación entre Estéfany Grajales.txt y Antônio de Sousa Neto.txt con 14.42% de similitud.
2025-08-09 00:44:57,773 - INFO - Guardada comparación entre Estéfany Grajales.txt y Unión Ortodoxa.txt con 10.95% de similitud.
2025-08-09 00:44:57,778 - INFO - Guardada comparación entre Estéfany Grajales.txt y Emisora móvil.txt con 4.23% de similitud.
2025-08-09 00:44:57,781 - INFO - Guardada comparación entre Estéfany Grajales.txt y Demografía de la República Democrática del Congo.txt con 9.08% de similitud.
2025-08-09 00:44:57,785 - INFO - Guardada comparación entre Estéfany Grajales.txt y Desigualdad de ingreso.txt con 3.78% de similitud.
2025-08-09 00:44:57,789 - INFO - Guardada comparación entre Estéfany Grajales.txt y Terrorismo de extrema izquierda.txt con 4.59% de similitud.
2025-08-09 00:44:57,801 - INFO - Guardada comparación entre Sputnik V.txt y Iberos.txt con 14.63% de similitud.
2025-08-09 00:44:57,809 - INFO - Guardada comparación entre Sputnik V.txt y Dirección General de Atención a las Víctimas y Promoción de la Memoria Democrática.txt con 1.65% de similitud.
2025-08-09 00:44:57,817 - INFO - Guardada comparación entre Sputnik V.txt y Asesoría Jurídica Internacional.txt con 1.10% de similitud.
2025-08-09 00:44:57,826 - INFO - Guardada comparación entre Sputnik V.txt y Desarrollo de videojuegos independiente.txt con 6.95% de similitud.
2025-08-09 00:44:57,834 - INFO - Guardada comparación entre Sputnik V.txt y Ingeniería comercial.txt con 1.49% de similitud.
2025-08-09 00:44:57,842 - INFO - Guardada comparación entre Sputnik V.txt y Chevrolet Cobalt.txt con 0.22% de similitud.
2025-08-09 00:44:57,850 - INFO - Guardada comparación entre Sputnik V.txt y Código Unificado de Punto de Suministro.txt con 1.85% de similitud.
2025-08-09 00:44:57,858 - INFO - Guardada comparación entre Sputnik V.txt y Guerra de guerrillas en la península ibérica durante las guerras napoleónicas.txt con 3.55% de similitud.
2025-08-09 00:44:57,866 - INFO - Guardada comparación entre Sputnik V.txt y Estación de tratamiento de agua potable.txt con 0.85% de similitud.
2025-08-09 00:44:57,874 - INFO - Guardada comparación entre Sputnik V.txt y Militar.txt con 2.22% de similitud.
2025-08-09 00:44:57,886 - INFO - Guardada comparación entre Sputnik V.txt y Demografía de Canadá.txt con 4.43% de similitud.
2025-08-09 00:44:57,898 - INFO - Guardada comparación entre Sputnik V.txt y EToro.txt con 2.24% de similitud.
2025-08-09 00:44:57,911 - INFO - Guardada comparación entre Sputnik V.txt y Ambiente biofísico.txt con 1.35% de similitud.
2025-08-09 00:44:57,919 - INFO - Guardada comparación entre Sputnik V.txt y Juego ganar ganar.txt con 1.47% de similitud.
2025-08-09 00:44:57,928 - INFO - Guardada comparación entre Sputnik V.txt y Declaración de los Derechos de la Mujer y de la Ciudadana.txt con 3.80% de similitud.
2025-08-09 00:44:57,937 - INFO - Guardada comparación entre Sputnik V.txt y Convención Marco de las Naciones Unidas sobre el Cambio Climático.txt con 3.31% de similitud.
2025-08-09 00:44:57,945 - INFO - Guardada comparación entre Sputnik V.txt y Oswald Pohl.txt con 1.19% de similitud.
2025-08-09 00:44:57,953 - INFO - Guardada comparación entre Sputnik V.txt y Empresa Nacional Siderúrgica.txt con 2.79% de similitud.
2025-08-09 00:44:57,962 - INFO - Guardada comparación entre Sputnik V.txt y Teletón El Salvador.txt con 2.96% de similitud.
2025-08-09 00:44:57,970 - INFO - Guardada comparación entre Sputnik V.txt y Antônio de Sousa Neto.txt con 0.85% de similitud.
2025-08-09 00:44:57,979 - INFO - Guardada comparación entre Sputnik V.txt y Mercenarios (BattleTech).txt con 3.28% de similitud.
2025-08-09 00:44:57,987 - INFO - Guardada comparación entre Sputnik V.txt y Efecto cis.txt con 2.36% de similitud.
2025-08-09 00:44:57,995 - INFO - Guardada comparación entre Sputnik V.txt y Demografía de la República Democrática del Congo.txt con 2.74% de similitud.
2025-08-09 00:44:58,004 - INFO - Guardada comparación entre Sputnik V.txt y Desigualdad de ingreso.txt con 7.94% de similitud.
2025-08-09 00:44:58,013 - INFO - Guardada comparación entre Sputnik V.txt y Terrorismo de extrema izquierda.txt con 7.14% de similitud.
2025-08-09 00:44:58,018 - INFO - Guardada comparación entre Día Naranja.txt y Iberos.txt con 2.73% de similitud.
2025-08-09 00:44:58,021 - INFO - Guardada comparación entre Día Naranja.txt y .km.txt con 10.44% de similitud.
2025-08-09 00:44:58,024 - INFO - Guardada comparación entre Día Naranja.txt y Censura internacional china.txt con 9.80% de similitud.
2025-08-09 00:44:58,027 - INFO - Guardada comparación entre Día Naranja.txt y Alfarería en la provincia de Almería.txt con 8.32% de similitud.
2025-08-09 00:44:58,030 - INFO - Guardada comparación entre Día Naranja.txt y Acuerdo de Prespa.txt con 13.79% de similitud.
2025-08-09 00:44:58,034 - INFO - Guardada comparación entre Día Naranja.txt y Segunda Cumbre BRIC 2010.txt con 13.09% de similitud.
2025-08-09 00:44:58,037 - INFO - Guardada comparación entre Día Naranja.txt y Santa Marina del Rey.txt con 13.53% de similitud.
2025-08-09 00:44:58,040 - INFO - Guardada comparación entre Día Naranja.txt y Omaira Montoya Henao.txt con 14.45% de similitud.
2025-08-09 00:44:58,043 - INFO - Guardada comparación entre Día Naranja.txt y Biodiversidad Virtual.txt con 14.37% de similitud.
2025-08-09 00:44:58,047 - INFO - Guardada comparación entre Día Naranja.txt y Estudios de ciencia, tecnología y género.txt con 13.66% de similitud.
2025-08-09 00:44:58,050 - INFO - Guardada comparación entre Día Naranja.txt y Representación (política).txt con 13.39% de similitud.
2025-08-09 00:44:58,053 - INFO - Guardada comparación entre Día Naranja.txt y Roxana Campos.txt con 14.48% de similitud.
2025-08-09 00:44:58,057 - INFO - Guardada comparación entre Día Naranja.txt y Reforma económica china.txt con 3.21% de similitud.
2025-08-09 00:44:58,061 - INFO - Guardada comparación entre Día Naranja.txt y Alejandro VII.txt con 10.92% de similitud.
2025-08-09 00:44:58,064 - INFO - Guardada comparación entre Día Naranja.txt y Violencia obstétrica.txt con 16.07% de similitud.
2025-08-09 00:44:58,067 - INFO - Guardada comparación entre Día Naranja.txt y Torrente Gros.txt con 12.91% de similitud.
2025-08-09 00:44:58,071 - INFO - Guardada comparación entre Día Naranja.txt y Guerra de Reforma.txt con 8.50% de similitud.
2025-08-09 00:44:58,074 - INFO - Guardada comparación entre Día Naranja.txt y Certificate Signing Request.txt con 7.28% de similitud.
2025-08-09 00:44:58,078 - INFO - Guardada comparación entre Día Naranja.txt y Katalin Bogyay.txt con 9.29% de similitud.
2025-08-09 00:44:58,081 - INFO - Guardada comparación entre Día Naranja.txt y Unión Ortodoxa.txt con 12.26% de similitud.
2025-08-09 00:44:58,085 - INFO - Guardada comparación entre Día Naranja.txt y Emisora móvil.txt con 6.07% de similitud.
2025-08-09 00:44:58,088 - INFO - Guardada comparación entre Día Naranja.txt y Sanción.txt con 3.32% de similitud.
2025-08-09 00:44:58,091 - INFO - Guardada comparación entre Día Naranja.txt y Saúl Luciano Lliuya.txt con 15.74% de similitud.
2025-08-09 00:44:58,094 - INFO - Guardada comparación entre Día Naranja.txt y Antiprotestantismo.txt con 11.52% de similitud.
2025-08-09 00:44:58,098 - INFO - Guardada comparación entre Negro de carbón.txt y Desigualdad de ingreso en Estados Unidos.txt con 16.13% de similitud.
2025-08-09 00:44:58,104 - INFO - Guardada comparación entre Negro de carbón.txt y Iberos.txt con 4.43% de similitud.
2025-08-09 00:44:58,108 - INFO - Guardada comparación entre Negro de carbón.txt y .km.txt con 10.24% de similitud.
2025-08-09 00:44:58,112 - INFO - Guardada comparación entre Negro de carbón.txt y Censura internacional china.txt con 12.10% de similitud.
2025-08-09 00:44:58,115 - INFO - Guardada comparación entre Negro de carbón.txt y Alfarería en la provincia de Almería.txt con 12.17% de similitud.
2025-08-09 00:44:58,119 - INFO - Guardada comparación entre Negro de carbón.txt y Acuerdo de Prespa.txt con 10.82% de similitud.
2025-08-09 00:44:58,122 - INFO - Guardada comparación entre Negro de carbón.txt y Segunda Cumbre BRIC 2010.txt con 16.75% de similitud.
2025-08-09 00:44:58,125 - INFO - Guardada comparación entre Negro de carbón.txt y Santa Marina del Rey.txt con 16.03% de similitud.
2025-08-09 00:44:58,128 - INFO - Guardada comparación entre Negro de carbón.txt y Omaira Montoya Henao.txt con 15.87% de similitud.
2025-08-09 00:44:58,132 - INFO - Guardada comparación entre Negro de carbón.txt y Biodiversidad Virtual.txt con 16.90% de similitud.
2025-08-09 00:44:58,136 - INFO - Guardada comparación entre Negro de carbón.txt y Estudios de ciencia, tecnología y género.txt con 15.48% de similitud.
2025-08-09 00:44:58,139 - INFO - Guardada comparación entre Negro de carbón.txt y Representación (política).txt con 17.32% de similitud.
2025-08-09 00:44:58,142 - INFO - Guardada comparación entre Negro de carbón.txt y Roxana Campos.txt con 13.41% de similitud.
2025-08-09 00:44:58,147 - INFO - Guardada comparación entre Negro de carbón.txt y Reforma económica china.txt con 4.87% de similitud.
2025-08-09 00:44:58,151 - INFO - Guardada comparación entre Negro de carbón.txt y Alejandro VII.txt con 14.84% de similitud.
2025-08-09 00:44:58,154 - INFO - Guardada comparación entre Negro de carbón.txt y Violencia obstétrica.txt con 16.67% de similitud.
2025-08-09 00:44:58,158 - INFO - Guardada comparación entre Negro de carbón.txt y Torrente Gros.txt con 17.75% de similitud.
2025-08-09 00:44:58,161 - INFO - Guardada comparación entre Negro de carbón.txt y Guerra de Reforma.txt con 11.89% de similitud.
2025-08-09 00:44:58,165 - INFO - Guardada comparación entre Negro de carbón.txt y Certificate Signing Request.txt con 10.17% de similitud.
2025-08-09 00:44:58,168 - INFO - Guardada comparación entre Negro de carbón.txt y Katalin Bogyay.txt con 10.83% de similitud.
2025-08-09 00:44:58,173 - INFO - Guardada comparación entre Negro de carbón.txt y Mercenarios (BattleTech).txt con 13.12% de similitud.
2025-08-09 00:44:58,176 - INFO - Guardada comparación entre Negro de carbón.txt y Emisora móvil.txt con 9.11% de similitud.
2025-08-09 00:44:58,180 - INFO - Guardada comparación entre Negro de carbón.txt y Demografía de la República Democrática del Congo.txt con 16.70% de similitud.
2025-08-09 00:44:58,185 - INFO - Guardada comparación entre Negro de carbón.txt y Desigualdad de ingreso.txt con 8.19% de similitud.
2025-08-09 00:44:58,190 - INFO - Guardada comparación entre Negro de carbón.txt y Terrorismo de extrema izquierda.txt con 8.76% de similitud.
2025-08-09 00:44:58,196 - INFO - Guardada comparación entre Microsoft Anti-Virus.txt y Iberos.txt con 1.52% de similitud.
2025-08-09 00:44:58,199 - INFO - Guardada comparación entre Microsoft Anti-Virus.txt y .km.txt con 10.66% de similitud.
2025-08-09 00:44:58,203 - INFO - Guardada comparación entre Microsoft Anti-Virus.txt y Censura internacional china.txt con 5.10% de similitud.
2025-08-09 00:44:58,206 - INFO - Guardada comparación entre Microsoft Anti-Virus.txt y Alfarería en la provincia de Almería.txt con 4.59% de similitud.
2025-08-09 00:44:58,209 - INFO - Guardada comparación entre Microsoft Anti-Virus.txt y Acuerdo de Prespa.txt con 14.33% de similitud.
2025-08-09 00:44:58,213 - INFO - Guardada comparación entre Microsoft Anti-Virus.txt y Segunda Cumbre BRIC 2010.txt con 8.35% de similitud.
2025-08-09 00:44:58,216 - INFO - Guardada comparación entre Microsoft Anti-Virus.txt y Santa Marina del Rey.txt con 10.95% de similitud.
2025-08-09 00:44:58,219 - INFO - Guardada comparación entre Microsoft Anti-Virus.txt y Omaira Montoya Henao.txt con 11.37% de similitud.
2025-08-09 00:44:58,222 - INFO - Guardada comparación entre Microsoft Anti-Virus.txt y Biodiversidad Virtual.txt con 9.89% de similitud.
2025-08-09 00:44:58,225 - INFO - Guardada comparación entre Microsoft Anti-Virus.txt y Estudios de ciencia, tecnología y género.txt con 7.47% de similitud.
2025-08-09 00:44:58,228 - INFO - Guardada comparación entre Microsoft Anti-Virus.txt y Representación (política).txt con 8.14% de similitud.
2025-08-09 00:44:58,232 - INFO - Guardada comparación entre Microsoft Anti-Virus.txt y Roxana Campos.txt con 11.45% de similitud.
2025-08-09 00:44:58,236 - INFO - Guardada comparación entre Microsoft Anti-Virus.txt y Reforma económica china.txt con 1.85% de similitud.
2025-08-09 00:44:58,239 - INFO - Guardada comparación entre Microsoft Anti-Virus.txt y Alejandro VII.txt con 7.07% de similitud.
2025-08-09 00:44:58,243 - INFO - Guardada comparación entre Microsoft Anti-Virus.txt y Violencia obstétrica.txt con 8.36% de similitud.
2025-08-09 00:44:58,246 - INFO - Guardada comparación entre Microsoft Anti-Virus.txt y Torrente Gros.txt con 8.36% de similitud.
2025-08-09 00:44:58,249 - INFO - Guardada comparación entre Microsoft Anti-Virus.txt y Guerra de Reforma.txt con 5.13% de similitud.
2025-08-09 00:44:58,252 - INFO - Guardada comparación entre Microsoft Anti-Virus.txt y Certificate Signing Request.txt con 5.35% de similitud.
2025-08-09 00:44:58,256 - INFO - Guardada comparación entre Microsoft Anti-Virus.txt y Katalin Bogyay.txt con 4.67% de similitud.
2025-08-09 00:44:58,259 - INFO - Guardada comparación entre Microsoft Anti-Virus.txt y Unión Ortodoxa.txt con 7.72% de similitud.
2025-08-09 00:44:58,263 - INFO - Guardada comparación entre Microsoft Anti-Virus.txt y Emisora móvil.txt con 3.57% de similitud.
2025-08-09 00:44:58,266 - INFO - Guardada comparación entre Microsoft Anti-Virus.txt y Demografía de la República Democrática del Congo.txt con 7.35% de similitud.
2025-08-09 00:44:58,270 - INFO - Guardada comparación entre Microsoft Anti-Virus.txt y Desigualdad de ingreso.txt con 2.81% de similitud.
2025-08-09 00:44:58,274 - INFO - Guardada comparación entre Microsoft Anti-Virus.txt y Terrorismo de extrema izquierda.txt con 3.58% de similitud.
2025-08-09 00:44:58,278 - INFO - Guardada comparación entre Dirección General de Logística Informativa.txt y Iberos.txt con 2.17% de similitud.
2025-08-09 00:44:58,281 - INFO - Guardada comparación entre Dirección General de Logística Informativa.txt y .km.txt con 9.51% de similitud.
2025-08-09 00:44:58,285 - INFO - Guardada comparación entre Dirección General de Logística Informativa.txt y Censura internacional china.txt con 8.43% de similitud.
2025-08-09 00:44:58,288 - INFO - Guardada comparación entre Dirección General de Logística Informativa.txt y Alfarería en la provincia de Almería.txt con 7.11% de similitud.
2025-08-09 00:44:58,291 - INFO - Guardada comparación entre Dirección General de Logística Informativa.txt y Ingeniería comercial.txt con 15.79% de similitud.
2025-08-09 00:44:58,294 - INFO - Guardada comparación entre Dirección General de Logística Informativa.txt y Segunda Cumbre BRIC 2010.txt con 12.82% de similitud.
2025-08-09 00:44:58,297 - INFO - Guardada comparación entre Dirección General de Logística Informativa.txt y Código Unificado de Punto de Suministro.txt con 12.44% de similitud.
2025-08-09 00:44:58,303 - INFO - Guardada comparación entre Dirección General de Logística Informativa.txt y Santa Marina del Rey.txt con 14.06% de similitud.
2025-08-09 00:44:58,306 - INFO - Guardada comparación entre Dirección General de Logística Informativa.txt y Biodiversidad Virtual.txt con 14.30% de similitud.
2025-08-09 00:44:58,309 - INFO - Guardada comparación entre Dirección General de Logística Informativa.txt y Estudios de ciencia, tecnología y género.txt con 11.39% de similitud.
2025-08-09 00:44:58,312 - INFO - Guardada comparación entre Dirección General de Logística Informativa.txt y Representación (política).txt con 12.52% de similitud.
2025-08-09 00:44:58,316 - INFO - Guardada comparación entre Dirección General de Logística Informativa.txt y EToro.txt con 12.19% de similitud.
2025-08-09 00:44:58,320 - INFO - Guardada comparación entre Dirección General de Logística Informativa.txt y Reforma económica china.txt con 2.67% de similitud.
2025-08-09 00:44:58,324 - INFO - Guardada comparación entre Dirección General de Logística Informativa.txt y Alejandro VII.txt con 10.32% de similitud.
2025-08-09 00:44:58,327 - INFO - Guardada comparación entre Dirección General de Logística Informativa.txt y Violencia obstétrica.txt con 14.46% de similitud.
2025-08-09 00:44:58,330 - INFO - Guardada comparación entre Dirección General de Logística Informativa.txt y Torrente Gros.txt con 12.71% de similitud.
2025-08-09 00:44:58,333 - INFO - Guardada comparación entre Dirección General de Logística Informativa.txt y Guerra de Reforma.txt con 8.33% de similitud.
2025-08-09 00:44:58,337 - INFO - Guardada comparación entre Dirección General de Logística Informativa.txt y Certificate Signing Request.txt con 6.24% de similitud.
2025-08-09 00:44:58,340 - INFO - Guardada comparación entre Dirección General de Logística Informativa.txt y Katalin Bogyay.txt con 7.35% de similitud.
2025-08-09 00:44:58,343 - INFO - Guardada comparación entre Dirección General de Logística Informativa.txt y Unión Ortodoxa.txt con 12.50% de similitud.
2025-08-09 00:44:58,347 - INFO - Guardada comparación entre Dirección General de Logística Informativa.txt y Emisora móvil.txt con 5.22% de similitud.
2025-08-09 00:44:58,349 - INFO - Guardada comparación entre Dirección General de Logística Informativa.txt y Sanción.txt con 3.99% de similitud.
2025-08-09 00:44:58,352 - INFO - Guardada comparación entre Dirección General de Logística Informativa.txt y Saúl Luciano Lliuya.txt con 14.36% de similitud.
2025-08-09 00:44:58,356 - INFO - Guardada comparación entre Dirección General de Logística Informativa.txt y Antiprotestantismo.txt con 9.90% de similitud.
2025-08-09 00:44:58,359 - INFO - Guardada comparación entre Criptografía híbrida.txt y Desigualdad de ingreso en Estados Unidos.txt con 7.82% de similitud.
2025-08-09 00:44:58,362 - INFO - Guardada comparación entre Criptografía híbrida.txt y Club Deportivo La Equidad (Femenino).txt con 8.48% de similitud.
2025-08-09 00:44:58,365 - INFO - Guardada comparación entre Criptografía híbrida.txt y .km.txt con 10.20% de similitud.
2025-08-09 00:44:58,368 - INFO - Guardada comparación entre Criptografía híbrida.txt y Asesoría Jurídica Internacional.txt con 10.83% de similitud.
2025-08-09 00:44:58,371 - INFO - Guardada comparación entre Criptografía híbrida.txt y Desarrollo de videojuegos independiente.txt con 3.16% de similitud.
2025-08-09 00:44:58,374 - INFO - Guardada comparación entre Criptografía híbrida.txt y Ingeniería comercial.txt con 10.03% de similitud.
2025-08-09 00:44:58,377 - INFO - Guardada comparación entre Criptografía híbrida.txt y Chevrolet Cobalt.txt con 6.92% de similitud.
2025-08-09 00:44:58,380 - INFO - Guardada comparación entre Criptografía híbrida.txt y Código Unificado de Punto de Suministro.txt con 9.07% de similitud.
2025-08-09 00:44:58,383 - INFO - Guardada comparación entre Criptografía híbrida.txt y Guerra de guerrillas en la península ibérica durante las guerras napoleónicas.txt con 5.50% de similitud.
2025-08-09 00:44:58,386 - INFO - Guardada comparación entre Criptografía híbrida.txt y Estación de tratamiento de agua potable.txt con 12.52% de similitud.
2025-08-09 00:44:58,389 - INFO - Guardada comparación entre Criptografía híbrida.txt y Militar.txt con 8.93% de similitud.
2025-08-09 00:44:58,392 - INFO - Guardada comparación entre Criptografía híbrida.txt y Demografía de Canadá.txt con 4.88% de similitud.
2025-08-09 00:44:58,395 - INFO - Guardada comparación entre Criptografía híbrida.txt y EToro.txt con 7.21% de similitud.
2025-08-09 00:44:58,398 - INFO - Guardada comparación entre Criptografía híbrida.txt y Ambiente biofísico.txt con 11.15% de similitud.
2025-08-09 00:44:58,401 - INFO - Guardada comparación entre Criptografía híbrida.txt y Juego ganar ganar.txt con 12.15% de similitud.
2025-08-09 00:44:58,404 - INFO - Guardada comparación entre Criptografía híbrida.txt y Declaración de los Derechos de la Mujer y de la Ciudadana.txt con 5.76% de similitud.
2025-08-09 00:44:58,407 - INFO - Guardada comparación entre Criptografía híbrida.txt y Convención Marco de las Naciones Unidas sobre el Cambio Climático.txt con 6.52% de similitud.
2025-08-09 00:44:58,410 - INFO - Guardada comparación entre Criptografía híbrida.txt y Oswald Pohl.txt con 9.51% de similitud.
2025-08-09 00:44:58,413 - INFO - Guardada comparación entre Criptografía híbrida.txt y Empresa Nacional Siderúrgica.txt con 5.95% de similitud.
2025-08-09 00:44:58,416 - INFO - Guardada comparación entre Criptografía híbrida.txt y Teletón El Salvador.txt con 6.67% de similitud.
2025-08-09 00:44:58,419 - INFO - Guardada comparación entre Criptografía híbrida.txt y Antônio de Sousa Neto.txt con 11.36% de similitud.
2025-08-09 00:44:58,422 - INFO - Guardada comparación entre Criptografía híbrida.txt y Mercenarios (BattleTech).txt con 5.61% de similitud.
2025-08-09 00:44:58,425 - INFO - Guardada comparación entre Criptografía híbrida.txt y Efecto cis.txt con 8.28% de similitud.
2025-08-09 00:44:58,428 - INFO - Guardada comparación entre Criptografía híbrida.txt y Sanción.txt con 5.26% de similitud.
2025-08-09 00:44:58,431 - INFO - Guardada comparación entre Criptografía híbrida.txt y Saúl Luciano Lliuya.txt con 9.64% de similitud.
2025-08-09 00:44:58,434 - INFO - Guardada comparación entre Criptografía híbrida.txt y Antiprotestantismo.txt con 5.97% de similitud.
2025-08-09 00:44:58,438 - INFO - Guardada comparación entre Criptografía híbrida.txt y Terrorismo de extrema izquierda.txt con 3.06% de similitud.
2025-08-09 00:44:58,442 - INFO - Guardada comparación entre Ciclismo en los Juegos Europeos de Minsk 2019.txt y Iberos.txt con 0.83% de similitud.
2025-08-09 00:44:58,445 - INFO - Guardada comparación entre Ciclismo en los Juegos Europeos de Minsk 2019.txt y .km.txt con 8.12% de similitud.
2025-08-09 00:44:58,448 - INFO - Guardada comparación entre Ciclismo en los Juegos Europeos de Minsk 2019.txt y Censura internacional china.txt con 3.49% de similitud.
2025-08-09 00:44:58,451 - INFO - Guardada comparación entre Ciclismo en los Juegos Europeos de Minsk 2019.txt y Alfarería en la provincia de Almería.txt con 2.81% de similitud.
2025-08-09 00:44:58,455 - INFO - Guardada comparación entre Ciclismo en los Juegos Europeos de Minsk 2019.txt y Ingeniería comercial.txt con 7.38% de similitud.
2025-08-09 00:44:58,458 - INFO - Guardada comparación entre Ciclismo en los Juegos Europeos de Minsk 2019.txt y Segunda Cumbre BRIC 2010.txt con 5.79% de similitud.
2025-08-09 00:44:58,460 - INFO - Guardada comparación entre Ciclismo en los Juegos Europeos de Minsk 2019.txt y Santa Marina del Rey.txt con 7.58% de similitud.
2025-08-09 00:44:58,463 - INFO - Guardada comparación entre Ciclismo en los Juegos Europeos de Minsk 2019.txt y Omaira Montoya Henao.txt con 8.63% de similitud.
2025-08-09 00:44:58,466 - INFO - Guardada comparación entre Ciclismo en los Juegos Europeos de Minsk 2019.txt y Biodiversidad Virtual.txt con 6.74% de similitud.
2025-08-09 00:44:58,469 - INFO - Guardada comparación entre Ciclismo en los Juegos Europeos de Minsk 2019.txt y Estudios de ciencia, tecnología y género.txt con 4.84% de similitud.
2025-08-09 00:44:58,472 - INFO - Guardada comparación entre Ciclismo en los Juegos Europeos de Minsk 2019.txt y Representación (política).txt con 5.67% de similitud.
2025-08-09 00:44:58,476 - INFO - Guardada comparación entre Ciclismo en los Juegos Europeos de Minsk 2019.txt y Roxana Campos.txt con 10.01% de similitud.
2025-08-09 00:44:58,480 - INFO - Guardada comparación entre Ciclismo en los Juegos Europeos de Minsk 2019.txt y Reforma económica china.txt con 1.00% de similitud.
2025-08-09 00:44:58,483 - INFO - Guardada comparación entre Ciclismo en los Juegos Europeos de Minsk 2019.txt y Alejandro VII.txt con 4.75% de similitud.
2025-08-09 00:44:58,489 - INFO - Guardada comparación entre Ciclismo en los Juegos Europeos de Minsk 2019.txt y Violencia obstétrica.txt con 5.36% de similitud.
2025-08-09 00:44:58,492 - INFO - Guardada comparación entre Ciclismo en los Juegos Europeos de Minsk 2019.txt y Guerra de Reforma.txt con 3.03% de similitud.
2025-08-09 00:44:58,496 - INFO - Guardada comparación entre Ciclismo en los Juegos Europeos de Minsk 2019.txt y Certificate Signing Request.txt con 2.87% de similitud.
2025-08-09 00:44:58,499 - INFO - Guardada comparación entre Ciclismo en los Juegos Europeos de Minsk 2019.txt y Katalin Bogyay.txt con 2.92% de similitud.
2025-08-09 00:44:58,502 - INFO - Guardada comparación entre Ciclismo en los Juegos Europeos de Minsk 2019.txt y Unión Ortodoxa.txt con 5.06% de similitud.
2025-08-09 00:44:58,506 - INFO - Guardada comparación entre Ciclismo en los Juegos Europeos de Minsk 2019.txt y Emisora móvil.txt con 2.03% de similitud.
2025-08-09 00:44:58,508 - INFO - Guardada comparación entre Ciclismo en los Juegos Europeos de Minsk 2019.txt y Sanción.txt con 6.58% de similitud.
2025-08-09 00:44:58,511 - INFO - Guardada comparación entre Ciclismo en los Juegos Europeos de Minsk 2019.txt y Saúl Luciano Lliuya.txt con 10.32% de similitud.
2025-08-09 00:44:58,514 - INFO - Guardada comparación entre Ciclismo en los Juegos Europeos de Minsk 2019.txt y Antiprotestantismo.txt con 4.37% de similitud.
2025-08-09 00:44:58,517 - INFO - Guardada comparación entre Relaciones España-Finlandia.txt y Desigualdad de ingreso en Estados Unidos.txt con 18.11% de similitud.
2025-08-09 00:44:58,523 - INFO - Guardada comparación entre Relaciones España-Finlandia.txt y Iberos.txt con 4.99% de similitud.
2025-08-09 00:44:58,526 - INFO - Guardada comparación entre Relaciones España-Finlandia.txt y .km.txt con 8.77% de similitud.
2025-08-09 00:44:58,530 - INFO - Guardada comparación entre Relaciones España-Finlandia.txt y Censura internacional china.txt con 14.72% de similitud.
2025-08-09 00:44:58,533 - INFO - Guardada comparación entre Relaciones España-Finlandia.txt y Alfarería en la provincia de Almería.txt con 13.31% de similitud.
2025-08-09 00:44:58,536 - INFO - Guardada comparación entre Relaciones España-Finlandia.txt y Acuerdo de Prespa.txt con 9.82% de similitud.
2025-08-09 00:44:58,540 - INFO - Guardada comparación entre Relaciones España-Finlandia.txt y Segunda Cumbre BRIC 2010.txt con 19.37% de similitud.
2025-08-09 00:44:58,543 - INFO - Guardada comparación entre Relaciones España-Finlandia.txt y Santa Marina del Rey.txt con 15.42% de similitud.
2025-08-09 00:44:58,546 - INFO - Guardada comparación entre Relaciones España-Finlandia.txt y Omaira Montoya Henao.txt con 18.60% de similitud.
2025-08-09 00:44:58,550 - INFO - Guardada comparación entre Relaciones España-Finlandia.txt y Biodiversidad Virtual.txt con 18.93% de similitud.
2025-08-09 00:44:58,553 - INFO - Guardada comparación entre Relaciones España-Finlandia.txt y Estudios de ciencia, tecnología y género.txt con 18.39% de similitud.
2025-08-09 00:44:58,556 - INFO - Guardada comparación entre Relaciones España-Finlandia.txt y Representación (política).txt con 18.64% de similitud.
2025-08-09 00:44:58,559 - INFO - Guardada comparación entre Relaciones España-Finlandia.txt y Roxana Campos.txt con 13.19% de similitud.
2025-08-09 00:44:58,564 - INFO - Guardada comparación entre Relaciones España-Finlandia.txt y Reforma económica china.txt con 6.23% de similitud.
2025-08-09 00:44:58,567 - INFO - Guardada comparación entre Relaciones España-Finlandia.txt y Alejandro VII.txt con 17.53% de similitud.
2025-08-09 00:44:58,571 - INFO - Guardada comparación entre Relaciones España-Finlandia.txt y Violencia obstétrica.txt con 18.68% de similitud.
2025-08-09 00:44:58,574 - INFO - Guardada comparación entre Relaciones España-Finlandia.txt y Torrente Gros.txt con 19.27% de similitud.
2025-08-09 00:44:58,578 - INFO - Guardada comparación entre Relaciones España-Finlandia.txt y Guerra de Reforma.txt con 15.54% de similitud.
2025-08-09 00:44:58,581 - INFO - Guardada comparación entre Relaciones España-Finlandia.txt y Certificate Signing Request.txt con 9.38% de similitud.
2025-08-09 00:44:58,585 - INFO - Guardada comparación entre Relaciones España-Finlandia.txt y Katalin Bogyay.txt con 13.31% de similitud.
2025-08-09 00:44:58,589 - INFO - Guardada comparación entre Relaciones España-Finlandia.txt y Mercenarios (BattleTech).txt con 14.61% de similitud.
2025-08-09 00:44:58,593 - INFO - Guardada comparación entre Relaciones España-Finlandia.txt y Efecto cis.txt con 16.18% de similitud.
2025-08-09 00:44:58,596 - INFO - Guardada comparación entre Relaciones España-Finlandia.txt y Sanción.txt con 2.47% de similitud.
2025-08-09 00:44:58,599 - INFO - Guardada comparación entre Relaciones España-Finlandia.txt y Saúl Luciano Lliuya.txt con 13.65% de similitud.
2025-08-09 00:44:58,602 - INFO - Guardada comparación entre Relaciones España-Finlandia.txt y Antiprotestantismo.txt con 16.94% de similitud.

View file

@ -0,0 +1,580 @@
2025-08-09 00:44:56,475 - INFO - Guardada comparación entre Hammer Film Productions.txt y Efecto cis.txt con 11.97% de similitud.
2025-08-09 00:44:56,481 - INFO - Guardada comparación entre Hammer Film Productions.txt y Demografía de la República Democrática del Congo.txt con 12.70% de similitud.
2025-08-09 00:44:56,485 - INFO - Guardada comparación entre Hammer Film Productions.txt y Desigualdad de ingreso.txt con 11.06% de similitud.
2025-08-09 00:44:56,489 - INFO - Guardada comparación entre Hammer Film Productions.txt y Terrorismo de extrema izquierda.txt con 11.13% de similitud.
2025-08-09 00:44:56,492 - INFO - Guardada comparación entre Big Water.txt y Club Deportivo La Equidad (Femenino).txt con 16.83% de similitud.
2025-08-09 00:44:56,496 - INFO - Guardada comparación entre Big Water.txt y Dirección General de Atención a las Víctimas y Promoción de la Memoria Democrática.txt con 15.03% de similitud.
2025-08-09 00:44:56,499 - INFO - Guardada comparación entre Big Water.txt y Asesoría Jurídica Internacional.txt con 17.11% de similitud.
2025-08-09 00:44:56,502 - INFO - Guardada comparación entre Big Water.txt y Desarrollo de videojuegos independiente.txt con 7.09% de similitud.
2025-08-09 00:44:56,505 - INFO - Guardada comparación entre Big Water.txt y Ingeniería comercial.txt con 17.07% de similitud.
2025-08-09 00:44:56,508 - INFO - Guardada comparación entre Big Water.txt y Chevrolet Cobalt.txt con 4.89% de similitud.
2025-08-09 00:44:56,511 - INFO - Guardada comparación entre Big Water.txt y Código Unificado de Punto de Suministro.txt con 16.52% de similitud.
2025-08-09 00:44:56,515 - INFO - Guardada comparación entre Big Water.txt y Guerra de guerrillas en la península ibérica durante las guerras napoleónicas.txt con 12.48% de similitud.
2025-08-09 00:44:56,518 - INFO - Guardada comparación entre Big Water.txt y Estación de tratamiento de agua potable.txt con 13.52% de similitud.
2025-08-09 00:44:56,521 - INFO - Guardada comparación entre Big Water.txt y Militar.txt con 14.83% de similitud.
2025-08-09 00:44:56,524 - INFO - Guardada comparación entre Big Water.txt y Demografía de Canadá.txt con 13.34% de similitud.
2025-08-09 00:44:56,527 - INFO - Guardada comparación entre Big Water.txt y EToro.txt con 16.48% de similitud.
2025-08-09 00:44:56,530 - INFO - Guardada comparación entre Big Water.txt y Ambiente biofísico.txt con 17.05% de similitud.
2025-08-09 00:44:56,534 - INFO - Guardada comparación entre Big Water.txt y Juego ganar ganar.txt con 15.27% de similitud.
2025-08-09 00:44:56,537 - INFO - Guardada comparación entre Big Water.txt y Alejandro VII.txt con 13.45% de similitud.
2025-08-09 00:44:56,540 - INFO - Guardada comparación entre Big Water.txt y Violencia obstétrica.txt con 17.57% de similitud.
2025-08-09 00:44:56,544 - INFO - Guardada comparación entre Big Water.txt y Torrente Gros.txt con 15.69% de similitud.
2025-08-09 00:44:56,547 - INFO - Guardada comparación entre Big Water.txt y Guerra de Reforma.txt con 10.91% de similitud.
2025-08-09 00:44:56,551 - INFO - Guardada comparación entre Big Water.txt y Teletón El Salvador.txt con 14.06% de similitud.
2025-08-09 00:44:56,554 - INFO - Guardada comparación entre Big Water.txt y Katalin Bogyay.txt con 10.29% de similitud.
2025-08-09 00:44:56,558 - INFO - Guardada comparación entre Big Water.txt y Mercenarios (BattleTech).txt con 11.21% de similitud.
2025-08-09 00:44:56,561 - INFO - Guardada comparación entre Big Water.txt y Efecto cis.txt con 14.48% de similitud.
2025-08-09 00:44:56,564 - INFO - Guardada comparación entre Big Water.txt y Sanción.txt con 3.02% de similitud.
2025-08-09 00:44:56,567 - INFO - Guardada comparación entre Big Water.txt y Saúl Luciano Lliuya.txt con 13.04% de similitud.
2025-08-09 00:44:56,570 - INFO - Guardada comparación entre Big Water.txt y Antiprotestantismo.txt con 13.69% de similitud.
2025-08-09 00:44:56,574 - INFO - Guardada comparación entre Autoridad Vasca de Protección de Datos.txt y Desigualdad de ingreso en Estados Unidos.txt con 18.62% de similitud.
2025-08-09 00:44:56,577 - INFO - Guardada comparación entre Autoridad Vasca de Protección de Datos.txt y Club Deportivo La Equidad (Femenino).txt con 16.26% de similitud.
2025-08-09 00:44:56,580 - INFO - Guardada comparación entre Autoridad Vasca de Protección de Datos.txt y .km.txt con 7.61% de similitud.
2025-08-09 00:44:56,584 - INFO - Guardada comparación entre Autoridad Vasca de Protección de Datos.txt y Asesoría Jurídica Internacional.txt con 14.55% de similitud.
2025-08-09 00:44:56,588 - INFO - Guardada comparación entre Autoridad Vasca de Protección de Datos.txt y Desarrollo de videojuegos independiente.txt con 12.35% de similitud.
2025-08-09 00:44:56,591 - INFO - Guardada comparación entre Autoridad Vasca de Protección de Datos.txt y Acuerdo de Prespa.txt con 8.02% de similitud.
2025-08-09 00:44:56,594 - INFO - Guardada comparación entre Autoridad Vasca de Protección de Datos.txt y Segunda Cumbre BRIC 2010.txt con 19.10% de similitud.
2025-08-09 00:44:56,597 - INFO - Guardada comparación entre Autoridad Vasca de Protección de Datos.txt y Santa Marina del Rey.txt con 12.70% de similitud.
2025-08-09 00:44:56,601 - INFO - Guardada comparación entre Autoridad Vasca de Protección de Datos.txt y Omaira Montoya Henao.txt con 14.45% de similitud.
2025-08-09 00:44:56,604 - INFO - Guardada comparación entre Autoridad Vasca de Protección de Datos.txt y Biodiversidad Virtual.txt con 17.70% de similitud.
2025-08-09 00:44:56,608 - INFO - Guardada comparación entre Autoridad Vasca de Protección de Datos.txt y Estudios de ciencia, tecnología y género.txt con 19.18% de similitud.
2025-08-09 00:44:56,611 - INFO - Guardada comparación entre Autoridad Vasca de Protección de Datos.txt y Representación (política).txt con 19.90% de similitud.
2025-08-09 00:44:56,615 - INFO - Guardada comparación entre Autoridad Vasca de Protección de Datos.txt y Roxana Campos.txt con 11.47% de similitud.
2025-08-09 00:44:56,619 - INFO - Guardada comparación entre Autoridad Vasca de Protección de Datos.txt y Reforma económica china.txt con 7.17% de similitud.
2025-08-09 00:44:56,623 - INFO - Guardada comparación entre Autoridad Vasca de Protección de Datos.txt y Alejandro VII.txt con 18.36% de similitud.
2025-08-09 00:44:56,626 - INFO - Guardada comparación entre Autoridad Vasca de Protección de Datos.txt y Violencia obstétrica.txt con 18.69% de similitud.
2025-08-09 00:44:56,629 - INFO - Guardada comparación entre Autoridad Vasca de Protección de Datos.txt y Torrente Gros.txt con 17.47% de similitud.
2025-08-09 00:44:56,633 - INFO - Guardada comparación entre Autoridad Vasca de Protección de Datos.txt y Guerra de Reforma.txt con 17.58% de similitud.
2025-08-09 00:44:56,636 - INFO - Guardada comparación entre Autoridad Vasca de Protección de Datos.txt y Certificate Signing Request.txt con 10.46% de similitud.
2025-08-09 00:44:56,640 - INFO - Guardada comparación entre Autoridad Vasca de Protección de Datos.txt y Katalin Bogyay.txt con 15.33% de similitud.
2025-08-09 00:44:56,643 - INFO - Guardada comparación entre Autoridad Vasca de Protección de Datos.txt y Unión Ortodoxa.txt con 19.18% de similitud.
2025-08-09 00:44:56,647 - INFO - Guardada comparación entre Autoridad Vasca de Protección de Datos.txt y Emisora móvil.txt con 12.91% de similitud.
2025-08-09 00:44:56,650 - INFO - Guardada comparación entre Autoridad Vasca de Protección de Datos.txt y Sanción.txt con 2.22% de similitud.
2025-08-09 00:44:56,654 - INFO - Guardada comparación entre Autoridad Vasca de Protección de Datos.txt y Saúl Luciano Lliuya.txt con 12.41% de similitud.
2025-08-09 00:44:56,657 - INFO - Guardada comparación entre Autoridad Vasca de Protección de Datos.txt y Antiprotestantismo.txt con 16.47% de similitud.
2025-08-09 00:44:56,660 - INFO - Guardada comparación entre Inventario General del Patrimonio Cultural Valenciano.txt y Desigualdad de ingreso en Estados Unidos.txt con 9.93% de similitud.
2025-08-09 00:44:56,663 - INFO - Guardada comparación entre Inventario General del Patrimonio Cultural Valenciano.txt y Club Deportivo La Equidad (Femenino).txt con 10.49% de similitud.
2025-08-09 00:44:56,669 - INFO - Guardada comparación entre Inventario General del Patrimonio Cultural Valenciano.txt y Dirección General de Atención a las Víctimas y Promoción de la Memoria Democrática.txt con 13.21% de similitud.
2025-08-09 00:44:56,673 - INFO - Guardada comparación entre Inventario General del Patrimonio Cultural Valenciano.txt y Censura internacional china.txt con 6.36% de similitud.
2025-08-09 00:44:56,676 - INFO - Guardada comparación entre Inventario General del Patrimonio Cultural Valenciano.txt y Alfarería en la provincia de Almería.txt con 6.36% de similitud.
2025-08-09 00:44:56,680 - INFO - Guardada comparación entre Inventario General del Patrimonio Cultural Valenciano.txt y Acuerdo de Prespa.txt con 15.27% de similitud.
2025-08-09 00:44:56,684 - INFO - Guardada comparación entre Inventario General del Patrimonio Cultural Valenciano.txt y Segunda Cumbre BRIC 2010.txt con 10.32% de similitud.
2025-08-09 00:44:56,687 - INFO - Guardada comparación entre Inventario General del Patrimonio Cultural Valenciano.txt y Santa Marina del Rey.txt con 13.06% de similitud.
2025-08-09 00:44:56,691 - INFO - Guardada comparación entre Inventario General del Patrimonio Cultural Valenciano.txt y Omaira Montoya Henao.txt con 15.62% de similitud.
2025-08-09 00:44:56,695 - INFO - Guardada comparación entre Inventario General del Patrimonio Cultural Valenciano.txt y Biodiversidad Virtual.txt con 10.62% de similitud.
2025-08-09 00:44:56,699 - INFO - Guardada comparación entre Inventario General del Patrimonio Cultural Valenciano.txt y Estudios de ciencia, tecnología y género.txt con 9.56% de similitud.
2025-08-09 00:44:56,702 - INFO - Guardada comparación entre Inventario General del Patrimonio Cultural Valenciano.txt y Representación (política).txt con 10.55% de similitud.
2025-08-09 00:44:56,706 - INFO - Guardada comparación entre Inventario General del Patrimonio Cultural Valenciano.txt y Roxana Campos.txt con 14.38% de similitud.
2025-08-09 00:44:56,712 - INFO - Guardada comparación entre Inventario General del Patrimonio Cultural Valenciano.txt y Reforma económica china.txt con 2.21% de similitud.
2025-08-09 00:44:56,716 - INFO - Guardada comparación entre Inventario General del Patrimonio Cultural Valenciano.txt y Declaración de los Derechos de la Mujer y de la Ciudadana.txt con 7.31% de similitud.
2025-08-09 00:44:56,719 - INFO - Guardada comparación entre Inventario General del Patrimonio Cultural Valenciano.txt y Convención Marco de las Naciones Unidas sobre el Cambio Climático.txt con 7.98% de similitud.
2025-08-09 00:44:56,723 - INFO - Guardada comparación entre Inventario General del Patrimonio Cultural Valenciano.txt y Oswald Pohl.txt con 12.58% de similitud.
2025-08-09 00:44:56,726 - INFO - Guardada comparación entre Inventario General del Patrimonio Cultural Valenciano.txt y Empresa Nacional Siderúrgica.txt con 9.04% de similitud.
2025-08-09 00:44:56,730 - INFO - Guardada comparación entre Inventario General del Patrimonio Cultural Valenciano.txt y Teletón El Salvador.txt con 7.43% de similitud.
2025-08-09 00:44:56,733 - INFO - Guardada comparación entre Inventario General del Patrimonio Cultural Valenciano.txt y Katalin Bogyay.txt con 6.01% de similitud.
2025-08-09 00:44:56,736 - INFO - Guardada comparación entre Inventario General del Patrimonio Cultural Valenciano.txt y Mercenarios (BattleTech).txt con 5.71% de similitud.
2025-08-09 00:44:56,740 - INFO - Guardada comparación entre Inventario General del Patrimonio Cultural Valenciano.txt y Emisora móvil.txt con 3.72% de similitud.
2025-08-09 00:44:56,743 - INFO - Guardada comparación entre Inventario General del Patrimonio Cultural Valenciano.txt y Demografía de la República Democrática del Congo.txt con 9.45% de similitud.
2025-08-09 00:44:56,748 - INFO - Guardada comparación entre Inventario General del Patrimonio Cultural Valenciano.txt y Desigualdad de ingreso.txt con 3.73% de similitud.
2025-08-09 00:44:56,752 - INFO - Guardada comparación entre Inventario General del Patrimonio Cultural Valenciano.txt y Terrorismo de extrema izquierda.txt con 4.13% de similitud.
2025-08-09 00:44:56,757 - INFO - Guardada comparación entre Guerra Fría (desambiguación).txt y Iberos.txt con 1.21% de similitud.
2025-08-09 00:44:56,761 - INFO - Guardada comparación entre Guerra Fría (desambiguación).txt y Dirección General de Atención a las Víctimas y Promoción de la Memoria Democrática.txt con 6.90% de similitud.
2025-08-09 00:44:56,764 - INFO - Guardada comparación entre Guerra Fría (desambiguación).txt y Censura internacional china.txt con 3.69% de similitud.
2025-08-09 00:44:56,767 - INFO - Guardada comparación entre Guerra Fría (desambiguación).txt y Alfarería en la provincia de Almería.txt con 4.00% de similitud.
2025-08-09 00:44:56,771 - INFO - Guardada comparación entre Guerra Fría (desambiguación).txt y Acuerdo de Prespa.txt con 11.78% de similitud.
2025-08-09 00:44:56,774 - INFO - Guardada comparación entre Guerra Fría (desambiguación).txt y Segunda Cumbre BRIC 2010.txt con 6.94% de similitud.
2025-08-09 00:44:56,777 - INFO - Guardada comparación entre Guerra Fría (desambiguación).txt y Santa Marina del Rey.txt con 8.25% de similitud.
2025-08-09 00:44:56,780 - INFO - Guardada comparación entre Guerra Fría (desambiguación).txt y Omaira Montoya Henao.txt con 9.00% de similitud.
2025-08-09 00:44:56,783 - INFO - Guardada comparación entre Guerra Fría (desambiguación).txt y Biodiversidad Virtual.txt con 6.81% de similitud.
2025-08-09 00:44:56,786 - INFO - Guardada comparación entre Guerra Fría (desambiguación).txt y Estudios de ciencia, tecnología y género.txt con 5.95% de similitud.
2025-08-09 00:44:56,790 - INFO - Guardada comparación entre Guerra Fría (desambiguación).txt y Representación (política).txt con 6.83% de similitud.
2025-08-09 00:44:56,794 - INFO - Guardada comparación entre Guerra Fría (desambiguación).txt y Roxana Campos.txt con 9.13% de similitud.
2025-08-09 00:44:56,799 - INFO - Guardada comparación entre Guerra Fría (desambiguación).txt y Reforma económica china.txt con 1.47% de similitud.
2025-08-09 00:44:56,803 - INFO - Guardada comparación entre Guerra Fría (desambiguación).txt y Alejandro VII.txt con 5.08% de similitud.
2025-08-09 00:44:56,806 - INFO - Guardada comparación entre Guerra Fría (desambiguación).txt y Violencia obstétrica.txt con 6.50% de similitud.
2025-08-09 00:44:56,809 - INFO - Guardada comparación entre Guerra Fría (desambiguación).txt y Torrente Gros.txt con 7.26% de similitud.
2025-08-09 00:44:56,813 - INFO - Guardada comparación entre Guerra Fría (desambiguación).txt y Guerra de Reforma.txt con 4.55% de similitud.
2025-08-09 00:44:56,816 - INFO - Guardada comparación entre Guerra Fría (desambiguación).txt y Certificate Signing Request.txt con 3.25% de similitud.
2025-08-09 00:44:56,819 - INFO - Guardada comparación entre Guerra Fría (desambiguación).txt y Katalin Bogyay.txt con 3.41% de similitud.
2025-08-09 00:44:56,822 - INFO - Guardada comparación entre Guerra Fría (desambiguación).txt y Unión Ortodoxa.txt con 6.08% de similitud.
2025-08-09 00:44:56,826 - INFO - Guardada comparación entre Guerra Fría (desambiguación).txt y Emisora móvil.txt con 2.36% de similitud.
2025-08-09 00:44:56,829 - INFO - Guardada comparación entre Guerra Fría (desambiguación).txt y Demografía de la República Democrática del Congo.txt con 5.62% de similitud.
2025-08-09 00:44:56,833 - INFO - Guardada comparación entre Guerra Fría (desambiguación).txt y Desigualdad de ingreso.txt con 2.41% de similitud.
2025-08-09 00:44:56,836 - INFO - Guardada comparación entre Guerra Fría (desambiguación).txt y Antiprotestantismo.txt con 5.15% de similitud.
2025-08-09 00:44:56,839 - INFO - Guardada comparación entre Batalla de Zaragoza.txt y Desigualdad de ingreso en Estados Unidos.txt con 13.62% de similitud.
2025-08-09 00:44:56,842 - INFO - Guardada comparación entre Batalla de Zaragoza.txt y Club Deportivo La Equidad (Femenino).txt con 15.58% de similitud.
2025-08-09 00:44:56,850 - INFO - Guardada comparación entre Batalla de Zaragoza.txt y Dirección General de Atención a las Víctimas y Promoción de la Memoria Democrática.txt con 14.69% de similitud.
2025-08-09 00:44:56,853 - INFO - Guardada comparación entre Batalla de Zaragoza.txt y Desarrollo de videojuegos independiente.txt con 5.69% de similitud.
2025-08-09 00:44:56,856 - INFO - Guardada comparación entre Batalla de Zaragoza.txt y Ingeniería comercial.txt con 15.75% de similitud.
2025-08-09 00:44:56,859 - INFO - Guardada comparación entre Batalla de Zaragoza.txt y Chevrolet Cobalt.txt con 6.38% de similitud.
2025-08-09 00:44:56,862 - INFO - Guardada comparación entre Batalla de Zaragoza.txt y Código Unificado de Punto de Suministro.txt con 15.34% de similitud.
2025-08-09 00:44:56,866 - INFO - Guardada comparación entre Batalla de Zaragoza.txt y Guerra de guerrillas en la península ibérica durante las guerras napoleónicas.txt con 12.20% de similitud.
2025-08-09 00:44:56,868 - INFO - Guardada comparación entre Batalla de Zaragoza.txt y Estación de tratamiento de agua potable.txt con 14.52% de similitud.
2025-08-09 00:44:56,871 - INFO - Guardada comparación entre Batalla de Zaragoza.txt y Militar.txt con 13.37% de similitud.
2025-08-09 00:44:56,875 - INFO - Guardada comparación entre Batalla de Zaragoza.txt y Demografía de Canadá.txt con 9.45% de similitud.
2025-08-09 00:44:56,878 - INFO - Guardada comparación entre Batalla de Zaragoza.txt y EToro.txt con 12.96% de similitud.
2025-08-09 00:44:56,881 - INFO - Guardada comparación entre Batalla de Zaragoza.txt y Ambiente biofísico.txt con 16.73% de similitud.
2025-08-09 00:44:56,884 - INFO - Guardada comparación entre Batalla de Zaragoza.txt y Juego ganar ganar.txt con 15.35% de similitud.
2025-08-09 00:44:56,888 - INFO - Guardada comparación entre Batalla de Zaragoza.txt y Alejandro VII.txt con 13.06% de similitud.
2025-08-09 00:44:56,891 - INFO - Guardada comparación entre Batalla de Zaragoza.txt y Violencia obstétrica.txt con 15.38% de similitud.
2025-08-09 00:44:56,894 - INFO - Guardada comparación entre Batalla de Zaragoza.txt y Torrente Gros.txt con 14.63% de similitud.
2025-08-09 00:44:56,897 - INFO - Guardada comparación entre Batalla de Zaragoza.txt y Guerra de Reforma.txt con 10.64% de similitud.
2025-08-09 00:44:56,901 - INFO - Guardada comparación entre Batalla de Zaragoza.txt y Certificate Signing Request.txt con 7.58% de similitud.
2025-08-09 00:44:56,904 - INFO - Guardada comparación entre Batalla de Zaragoza.txt y Katalin Bogyay.txt con 8.23% de similitud.
2025-08-09 00:44:56,907 - INFO - Guardada comparación entre Batalla de Zaragoza.txt y Unión Ortodoxa.txt con 13.44% de similitud.
2025-08-09 00:44:56,911 - INFO - Guardada comparación entre Batalla de Zaragoza.txt y Emisora móvil.txt con 6.24% de similitud.
2025-08-09 00:44:56,915 - INFO - Guardada comparación entre Batalla de Zaragoza.txt y Demografía de la República Democrática del Congo.txt con 12.61% de similitud.
2025-08-09 00:44:56,919 - INFO - Guardada comparación entre Batalla de Zaragoza.txt y Desigualdad de ingreso.txt con 5.01% de similitud.
2025-08-09 00:44:56,922 - INFO - Guardada comparación entre Batalla de Zaragoza.txt y Terrorismo de extrema izquierda.txt con 6.26% de similitud.
2025-08-09 00:44:56,927 - INFO - Guardada comparación entre Puebla de Segur.txt y Iberos.txt con 8.40% de similitud.
2025-08-09 00:44:56,930 - INFO - Guardada comparación entre Puebla de Segur.txt y .km.txt con 7.00% de similitud.
2025-08-09 00:44:56,934 - INFO - Guardada comparación entre Puebla de Segur.txt y Censura internacional china.txt con 17.54% de similitud.
2025-08-09 00:44:56,937 - INFO - Guardada comparación entre Puebla de Segur.txt y Alfarería en la provincia de Almería.txt con 19.11% de similitud.
2025-08-09 00:44:56,941 - INFO - Guardada comparación entre Puebla de Segur.txt y Acuerdo de Prespa.txt con 7.11% de similitud.
2025-08-09 00:44:56,944 - INFO - Guardada comparación entre Puebla de Segur.txt y Segunda Cumbre BRIC 2010.txt con 18.66% de similitud.
2025-08-09 00:44:56,948 - INFO - Guardada comparación entre Puebla de Segur.txt y Santa Marina del Rey.txt con 14.86% de similitud.
2025-08-09 00:44:56,951 - INFO - Guardada comparación entre Puebla de Segur.txt y Omaira Montoya Henao.txt con 14.33% de similitud.
2025-08-09 00:44:56,955 - INFO - Guardada comparación entre Puebla de Segur.txt y Biodiversidad Virtual.txt con 14.95% de similitud.
2025-08-09 00:44:56,958 - INFO - Guardada comparación entre Puebla de Segur.txt y Estudios de ciencia, tecnología y género.txt con 18.80% de similitud.
2025-08-09 00:44:56,961 - INFO - Guardada comparación entre Puebla de Segur.txt y Representación (política).txt con 16.42% de similitud.
2025-08-09 00:44:56,965 - INFO - Guardada comparación entre Puebla de Segur.txt y Roxana Campos.txt con 10.17% de similitud.
2025-08-09 00:44:56,970 - INFO - Guardada comparación entre Puebla de Segur.txt y Reforma económica china.txt con 8.53% de similitud.
2025-08-09 00:44:56,973 - INFO - Guardada comparación entre Puebla de Segur.txt y Alejandro VII.txt con 19.13% de similitud.
2025-08-09 00:44:56,977 - INFO - Guardada comparación entre Puebla de Segur.txt y Violencia obstétrica.txt con 16.79% de similitud.
2025-08-09 00:44:56,980 - INFO - Guardada comparación entre Puebla de Segur.txt y Torrente Gros.txt con 16.79% de similitud.
2025-08-09 00:44:56,984 - INFO - Guardada comparación entre Puebla de Segur.txt y Guerra de Reforma.txt con 18.74% de similitud.
2025-08-09 00:44:56,987 - INFO - Guardada comparación entre Puebla de Segur.txt y Certificate Signing Request.txt con 11.31% de similitud.
2025-08-09 00:44:56,991 - INFO - Guardada comparación entre Puebla de Segur.txt y Katalin Bogyay.txt con 17.46% de similitud.
2025-08-09 00:44:56,994 - INFO - Guardada comparación entre Puebla de Segur.txt y Unión Ortodoxa.txt con 18.27% de similitud.
2025-08-09 00:44:56,999 - INFO - Guardada comparación entre Puebla de Segur.txt y Emisora móvil.txt con 14.19% de similitud.
2025-08-09 00:44:57,003 - INFO - Guardada comparación entre Puebla de Segur.txt y Demografía de la República Democrática del Congo.txt con 18.04% de similitud.
2025-08-09 00:44:57,007 - INFO - Guardada comparación entre Puebla de Segur.txt y Desigualdad de ingreso.txt con 12.63% de similitud.
2025-08-09 00:44:57,011 - INFO - Guardada comparación entre Puebla de Segur.txt y Terrorismo de extrema izquierda.txt con 14.13% de similitud.
2025-08-09 00:44:57,016 - INFO - Guardada comparación entre Trabajo de mierda.txt y Iberos.txt con 1.74% de similitud.
2025-08-09 00:44:57,019 - INFO - Guardada comparación entre Trabajo de mierda.txt y .km.txt con 10.22% de similitud.
2025-08-09 00:44:57,022 - INFO - Guardada comparación entre Trabajo de mierda.txt y Censura internacional china.txt con 6.06% de similitud.
2025-08-09 00:44:57,026 - INFO - Guardada comparación entre Trabajo de mierda.txt y Alfarería en la provincia de Almería.txt con 5.14% de similitud.
2025-08-09 00:44:57,029 - INFO - Guardada comparación entre Trabajo de mierda.txt y Acuerdo de Prespa.txt con 14.73% de similitud.
2025-08-09 00:44:57,032 - INFO - Guardada comparación entre Trabajo de mierda.txt y Segunda Cumbre BRIC 2010.txt con 9.14% de similitud.
2025-08-09 00:44:57,035 - INFO - Guardada comparación entre Trabajo de mierda.txt y Santa Marina del Rey.txt con 10.35% de similitud.
2025-08-09 00:44:57,038 - INFO - Guardada comparación entre Trabajo de mierda.txt y Omaira Montoya Henao.txt con 12.13% de similitud.
2025-08-09 00:44:57,042 - INFO - Guardada comparación entre Trabajo de mierda.txt y Biodiversidad Virtual.txt con 9.75% de similitud.
2025-08-09 00:44:57,045 - INFO - Guardada comparación entre Trabajo de mierda.txt y Estudios de ciencia, tecnología y género.txt con 8.00% de similitud.
2025-08-09 00:44:57,048 - INFO - Guardada comparación entre Trabajo de mierda.txt y Representación (política).txt con 9.50% de similitud.
2025-08-09 00:44:57,051 - INFO - Guardada comparación entre Trabajo de mierda.txt y Roxana Campos.txt con 11.53% de similitud.
2025-08-09 00:44:57,056 - INFO - Guardada comparación entre Trabajo de mierda.txt y Reforma económica china.txt con 2.00% de similitud.
2025-08-09 00:44:57,059 - INFO - Guardada comparación entre Trabajo de mierda.txt y Alejandro VII.txt con 7.08% de similitud.
2025-08-09 00:44:57,062 - INFO - Guardada comparación entre Trabajo de mierda.txt y Violencia obstétrica.txt con 10.17% de similitud.
2025-08-09 00:44:57,065 - INFO - Guardada comparación entre Trabajo de mierda.txt y Torrente Gros.txt con 8.70% de similitud.
2025-08-09 00:44:57,069 - INFO - Guardada comparación entre Trabajo de mierda.txt y Guerra de Reforma.txt con 5.49% de similitud.
2025-08-09 00:44:57,072 - INFO - Guardada comparación entre Trabajo de mierda.txt y Certificate Signing Request.txt con 5.04% de similitud.
2025-08-09 00:44:57,076 - INFO - Guardada comparación entre Trabajo de mierda.txt y Katalin Bogyay.txt con 5.31% de similitud.
2025-08-09 00:44:57,079 - INFO - Guardada comparación entre Trabajo de mierda.txt y Unión Ortodoxa.txt con 8.32% de similitud.
2025-08-09 00:44:57,082 - INFO - Guardada comparación entre Trabajo de mierda.txt y Emisora móvil.txt con 3.72% de similitud.
2025-08-09 00:44:57,085 - INFO - Guardada comparación entre Trabajo de mierda.txt y Sanción.txt con 4.66% de similitud.
2025-08-09 00:44:57,089 - INFO - Guardada comparación entre Trabajo de mierda.txt y Saúl Luciano Lliuya.txt con 14.63% de similitud.
2025-08-09 00:44:57,092 - INFO - Guardada comparación entre Trabajo de mierda.txt y Antiprotestantismo.txt con 8.00% de similitud.
2025-08-09 00:44:57,096 - INFO - Guardada comparación entre Susana Ruiz Cerutti.txt y Desigualdad de ingreso en Estados Unidos.txt con 17.44% de similitud.
2025-08-09 00:44:57,099 - INFO - Guardada comparación entre Susana Ruiz Cerutti.txt y Club Deportivo La Equidad (Femenino).txt con 17.57% de similitud.
2025-08-09 00:44:57,102 - INFO - Guardada comparación entre Susana Ruiz Cerutti.txt y Dirección General de Atención a las Víctimas y Promoción de la Memoria Democrática.txt con 19.50% de similitud.
2025-08-09 00:44:57,105 - INFO - Guardada comparación entre Susana Ruiz Cerutti.txt y Asesoría Jurídica Internacional.txt con 18.74% de similitud.
2025-08-09 00:44:57,109 - INFO - Guardada comparación entre Susana Ruiz Cerutti.txt y Desarrollo de videojuegos independiente.txt con 7.70% de similitud.
2025-08-09 00:44:57,112 - INFO - Guardada comparación entre Susana Ruiz Cerutti.txt y Ingeniería comercial.txt con 19.10% de similitud.
2025-08-09 00:44:57,115 - INFO - Guardada comparación entre Susana Ruiz Cerutti.txt y Chevrolet Cobalt.txt con 4.09% de similitud.
2025-08-09 00:44:57,118 - INFO - Guardada comparación entre Susana Ruiz Cerutti.txt y Código Unificado de Punto de Suministro.txt con 15.22% de similitud.
2025-08-09 00:44:57,122 - INFO - Guardada comparación entre Susana Ruiz Cerutti.txt y Guerra de guerrillas en la península ibérica durante las guerras napoleónicas.txt con 14.49% de similitud.
2025-08-09 00:44:57,125 - INFO - Guardada comparación entre Susana Ruiz Cerutti.txt y Estación de tratamiento de agua potable.txt con 13.82% de similitud.
2025-08-09 00:44:57,128 - INFO - Guardada comparación entre Susana Ruiz Cerutti.txt y Militar.txt con 15.80% de similitud.
2025-08-09 00:44:57,132 - INFO - Guardada comparación entre Susana Ruiz Cerutti.txt y Demografía de Canadá.txt con 12.73% de similitud.
2025-08-09 00:44:57,135 - INFO - Guardada comparación entre Susana Ruiz Cerutti.txt y EToro.txt con 17.91% de similitud.
2025-08-09 00:44:57,139 - INFO - Guardada comparación entre Susana Ruiz Cerutti.txt y Ambiente biofísico.txt con 16.50% de similitud.
2025-08-09 00:44:57,142 - INFO - Guardada comparación entre Susana Ruiz Cerutti.txt y Juego ganar ganar.txt con 14.05% de similitud.
2025-08-09 00:44:57,145 - INFO - Guardada comparación entre Susana Ruiz Cerutti.txt y Declaración de los Derechos de la Mujer y de la Ciudadana.txt con 12.52% de similitud.
2025-08-09 00:44:57,148 - INFO - Guardada comparación entre Susana Ruiz Cerutti.txt y Convención Marco de las Naciones Unidas sobre el Cambio Climático.txt con 14.42% de similitud.
2025-08-09 00:44:57,152 - INFO - Guardada comparación entre Susana Ruiz Cerutti.txt y Oswald Pohl.txt con 19.70% de similitud.
2025-08-09 00:44:57,155 - INFO - Guardada comparación entre Susana Ruiz Cerutti.txt y Empresa Nacional Siderúrgica.txt con 15.61% de similitud.
2025-08-09 00:44:57,159 - INFO - Guardada comparación entre Susana Ruiz Cerutti.txt y Teletón El Salvador.txt con 13.94% de similitud.
2025-08-09 00:44:57,162 - INFO - Guardada comparación entre Susana Ruiz Cerutti.txt y Antônio de Sousa Neto.txt con 16.86% de similitud.
2025-08-09 00:44:57,165 - INFO - Guardada comparación entre Susana Ruiz Cerutti.txt y Mercenarios (BattleTech).txt con 12.10% de similitud.
2025-08-09 00:44:57,168 - INFO - Guardada comparación entre Susana Ruiz Cerutti.txt y Efecto cis.txt con 13.98% de similitud.
2025-08-09 00:44:57,172 - INFO - Guardada comparación entre Susana Ruiz Cerutti.txt y Demografía de la República Democrática del Congo.txt con 13.79% de similitud.
2025-08-09 00:44:57,176 - INFO - Guardada comparación entre Susana Ruiz Cerutti.txt y Desigualdad de ingreso.txt con 7.07% de similitud.
2025-08-09 00:44:57,180 - INFO - Guardada comparación entre Susana Ruiz Cerutti.txt y Terrorismo de extrema izquierda.txt con 8.43% de similitud.
2025-08-09 00:44:57,185 - INFO - Guardada comparación entre Reconstrucción Blanca.txt y Iberos.txt con 2.38% de similitud.
2025-08-09 00:44:57,188 - INFO - Guardada comparación entre Reconstrucción Blanca.txt y .km.txt con 9.99% de similitud.
2025-08-09 00:44:57,190 - INFO - Guardada comparación entre Reconstrucción Blanca.txt y Asesoría Jurídica Internacional.txt con 15.33% de similitud.
2025-08-09 00:44:57,194 - INFO - Guardada comparación entre Reconstrucción Blanca.txt y Desarrollo de videojuegos independiente.txt con 4.61% de similitud.
2025-08-09 00:44:57,197 - INFO - Guardada comparación entre Reconstrucción Blanca.txt y Ingeniería comercial.txt con 13.60% de similitud.
2025-08-09 00:44:57,200 - INFO - Guardada comparación entre Reconstrucción Blanca.txt y Chevrolet Cobalt.txt con 5.63% de similitud.
2025-08-09 00:44:57,203 - INFO - Guardada comparación entre Reconstrucción Blanca.txt y Código Unificado de Punto de Suministro.txt con 11.74% de similitud.
2025-08-09 00:44:57,207 - INFO - Guardada comparación entre Reconstrucción Blanca.txt y Guerra de guerrillas en la península ibérica durante las guerras napoleónicas.txt con 8.92% de similitud.
2025-08-09 00:44:57,210 - INFO - Guardada comparación entre Reconstrucción Blanca.txt y Estación de tratamiento de agua potable.txt con 14.00% de similitud.
2025-08-09 00:44:57,215 - INFO - Guardada comparación entre Reconstrucción Blanca.txt y Militar.txt con 11.08% de similitud.
2025-08-09 00:44:57,218 - INFO - Guardada comparación entre Reconstrucción Blanca.txt y Representación (política).txt con 12.00% de similitud.
2025-08-09 00:44:57,222 - INFO - Guardada comparación entre Reconstrucción Blanca.txt y EToro.txt con 11.19% de similitud.
2025-08-09 00:44:57,225 - INFO - Guardada comparación entre Reconstrucción Blanca.txt y Ambiente biofísico.txt con 13.68% de similitud.
2025-08-09 00:44:57,228 - INFO - Guardada comparación entre Reconstrucción Blanca.txt y Juego ganar ganar.txt con 13.77% de similitud.
2025-08-09 00:44:57,231 - INFO - Guardada comparación entre Reconstrucción Blanca.txt y Declaración de los Derechos de la Mujer y de la Ciudadana.txt con 8.23% de similitud.
2025-08-09 00:44:57,235 - INFO - Guardada comparación entre Reconstrucción Blanca.txt y Convención Marco de las Naciones Unidas sobre el Cambio Climático.txt con 9.00% de similitud.
2025-08-09 00:44:57,238 - INFO - Guardada comparación entre Reconstrucción Blanca.txt y Oswald Pohl.txt con 15.83% de similitud.
2025-08-09 00:44:57,241 - INFO - Guardada comparación entre Reconstrucción Blanca.txt y Empresa Nacional Siderúrgica.txt con 10.25% de similitud.
2025-08-09 00:44:57,245 - INFO - Guardada comparación entre Reconstrucción Blanca.txt y Teletón El Salvador.txt con 9.94% de similitud.
2025-08-09 00:44:57,247 - INFO - Guardada comparación entre Reconstrucción Blanca.txt y Antônio de Sousa Neto.txt con 16.10% de similitud.
2025-08-09 00:44:57,251 - INFO - Guardada comparación entre Reconstrucción Blanca.txt y Mercenarios (BattleTech).txt con 8.95% de similitud.
2025-08-09 00:44:57,254 - INFO - Guardada comparación entre Reconstrucción Blanca.txt y Efecto cis.txt con 10.28% de similitud.
2025-08-09 00:44:57,257 - INFO - Guardada comparación entre Reconstrucción Blanca.txt y Demografía de la República Democrática del Congo.txt con 9.95% de similitud.
2025-08-09 00:44:57,261 - INFO - Guardada comparación entre Reconstrucción Blanca.txt y Desigualdad de ingreso.txt con 4.18% de similitud.
2025-08-09 00:44:57,265 - INFO - Guardada comparación entre Reconstrucción Blanca.txt y Terrorismo de extrema izquierda.txt con 5.45% de similitud.
2025-08-09 00:44:57,270 - INFO - Guardada comparación entre Relaciones Unión Europea-micro-Estados europeos.txt y Iberos.txt con 7.01% de similitud.
2025-08-09 00:44:57,273 - INFO - Guardada comparación entre Relaciones Unión Europea-micro-Estados europeos.txt y .km.txt con 6.49% de similitud.
2025-08-09 00:44:57,277 - INFO - Guardada comparación entre Relaciones Unión Europea-micro-Estados europeos.txt y Censura internacional china.txt con 19.33% de similitud.
2025-08-09 00:44:57,281 - INFO - Guardada comparación entre Relaciones Unión Europea-micro-Estados europeos.txt y Alfarería en la provincia de Almería.txt con 16.93% de similitud.
2025-08-09 00:44:57,284 - INFO - Guardada comparación entre Relaciones Unión Europea-micro-Estados europeos.txt y Acuerdo de Prespa.txt con 8.17% de similitud.
2025-08-09 00:44:57,288 - INFO - Guardada comparación entre Relaciones Unión Europea-micro-Estados europeos.txt y Segunda Cumbre BRIC 2010.txt con 20.93% de similitud.
2025-08-09 00:44:57,291 - INFO - Guardada comparación entre Relaciones Unión Europea-micro-Estados europeos.txt y Santa Marina del Rey.txt con 13.26% de similitud.
2025-08-09 00:44:57,294 - INFO - Guardada comparación entre Relaciones Unión Europea-micro-Estados europeos.txt y Omaira Montoya Henao.txt con 15.23% de similitud.
2025-08-09 00:44:57,297 - INFO - Guardada comparación entre Relaciones Unión Europea-micro-Estados europeos.txt y Biodiversidad Virtual.txt con 16.65% de similitud.
2025-08-09 00:44:57,301 - INFO - Guardada comparación entre Relaciones Unión Europea-micro-Estados europeos.txt y Estudios de ciencia, tecnología y género.txt con 19.56% de similitud.
2025-08-09 00:44:57,304 - INFO - Guardada comparación entre Relaciones Unión Europea-micro-Estados europeos.txt y Representación (política).txt con 19.55% de similitud.
2025-08-09 00:44:57,308 - INFO - Guardada comparación entre Relaciones Unión Europea-micro-Estados europeos.txt y Roxana Campos.txt con 9.87% de similitud.
2025-08-09 00:44:57,312 - INFO - Guardada comparación entre Relaciones Unión Europea-micro-Estados europeos.txt y Reforma económica china.txt con 8.41% de similitud.
2025-08-09 00:44:57,316 - INFO - Guardada comparación entre Relaciones Unión Europea-micro-Estados europeos.txt y Alejandro VII.txt con 20.21% de similitud.
2025-08-09 00:44:57,319 - INFO - Guardada comparación entre Relaciones Unión Europea-micro-Estados europeos.txt y Violencia obstétrica.txt con 19.13% de similitud.
2025-08-09 00:44:57,323 - INFO - Guardada comparación entre Relaciones Unión Europea-micro-Estados europeos.txt y Torrente Gros.txt con 18.39% de similitud.
2025-08-09 00:44:57,326 - INFO - Guardada comparación entre Relaciones Unión Europea-micro-Estados europeos.txt y Guerra de Reforma.txt con 19.88% de similitud.
2025-08-09 00:44:57,330 - INFO - Guardada comparación entre Relaciones Unión Europea-micro-Estados europeos.txt y Certificate Signing Request.txt con 9.67% de similitud.
2025-08-09 00:44:57,333 - INFO - Guardada comparación entre Relaciones Unión Europea-micro-Estados europeos.txt y Katalin Bogyay.txt con 16.04% de similitud.
2025-08-09 00:44:57,337 - INFO - Guardada comparación entre Relaciones Unión Europea-micro-Estados europeos.txt y Unión Ortodoxa.txt con 19.42% de similitud.
2025-08-09 00:44:57,341 - INFO - Guardada comparación entre Relaciones Unión Europea-micro-Estados europeos.txt y Emisora móvil.txt con 14.11% de similitud.
2025-08-09 00:44:57,344 - INFO - Guardada comparación entre Relaciones Unión Europea-micro-Estados europeos.txt y Sanción.txt con 2.14% de similitud.
2025-08-09 00:44:57,347 - INFO - Guardada comparación entre Relaciones Unión Europea-micro-Estados europeos.txt y Saúl Luciano Lliuya.txt con 11.82% de similitud.
2025-08-09 00:44:57,350 - INFO - Guardada comparación entre Relaciones Unión Europea-micro-Estados europeos.txt y Antiprotestantismo.txt con 17.82% de similitud.
2025-08-09 00:44:57,354 - INFO - Guardada comparación entre Juegos de guerra.txt y Desigualdad de ingreso en Estados Unidos.txt con 16.80% de similitud.
2025-08-09 00:44:57,358 - INFO - Guardada comparación entre Juegos de guerra.txt y Club Deportivo La Equidad (Femenino).txt con 13.43% de similitud.
2025-08-09 00:44:57,361 - INFO - Guardada comparación entre Juegos de guerra.txt y Dirección General de Atención a las Víctimas y Promoción de la Memoria Democrática.txt con 13.43% de similitud.
2025-08-09 00:44:57,365 - INFO - Guardada comparación entre Juegos de guerra.txt y Censura internacional china.txt con 18.24% de similitud.
2025-08-09 00:44:57,369 - INFO - Guardada comparación entre Juegos de guerra.txt y Alfarería en la provincia de Almería.txt con 16.38% de similitud.
2025-08-09 00:44:57,372 - INFO - Guardada comparación entre Juegos de guerra.txt y Acuerdo de Prespa.txt con 5.59% de similitud.
2025-08-09 00:44:57,376 - INFO - Guardada comparación entre Juegos de guerra.txt y Segunda Cumbre BRIC 2010.txt con 17.45% de similitud.
2025-08-09 00:44:57,379 - INFO - Guardada comparación entre Juegos de guerra.txt y Santa Marina del Rey.txt con 10.44% de similitud.
2025-08-09 00:44:57,382 - INFO - Guardada comparación entre Juegos de guerra.txt y Omaira Montoya Henao.txt con 10.66% de similitud.
2025-08-09 00:44:57,386 - INFO - Guardada comparación entre Juegos de guerra.txt y Biodiversidad Virtual.txt con 13.83% de similitud.
2025-08-09 00:44:57,389 - INFO - Guardada comparación entre Juegos de guerra.txt y Estudios de ciencia, tecnología y género.txt con 16.93% de similitud.
2025-08-09 00:44:57,392 - INFO - Guardada comparación entre Juegos de guerra.txt y Representación (política).txt con 15.91% de similitud.
2025-08-09 00:44:57,396 - INFO - Guardada comparación entre Juegos de guerra.txt y Roxana Campos.txt con 8.33% de similitud.
2025-08-09 00:44:57,399 - INFO - Guardada comparación entre Juegos de guerra.txt y Ambiente biofísico.txt con 12.18% de similitud.
2025-08-09 00:44:57,403 - INFO - Guardada comparación entre Juegos de guerra.txt y Juego ganar ganar.txt con 12.95% de similitud.
2025-08-09 00:44:57,406 - INFO - Guardada comparación entre Juegos de guerra.txt y Declaración de los Derechos de la Mujer y de la Ciudadana.txt con 18.04% de similitud.
2025-08-09 00:44:57,410 - INFO - Guardada comparación entre Juegos de guerra.txt y Convención Marco de las Naciones Unidas sobre el Cambio Climático.txt con 18.54% de similitud.
2025-08-09 00:44:57,414 - INFO - Guardada comparación entre Juegos de guerra.txt y Oswald Pohl.txt con 12.17% de similitud.
2025-08-09 00:44:57,418 - INFO - Guardada comparación entre Juegos de guerra.txt y Empresa Nacional Siderúrgica.txt con 17.12% de similitud.
2025-08-09 00:44:57,421 - INFO - Guardada comparación entre Juegos de guerra.txt y Teletón El Salvador.txt con 19.06% de similitud.
2025-08-09 00:44:57,425 - INFO - Guardada comparación entre Juegos de guerra.txt y Antônio de Sousa Neto.txt con 9.18% de similitud.
2025-08-09 00:44:57,428 - INFO - Guardada comparación entre Juegos de guerra.txt y Mercenarios (BattleTech).txt con 19.59% de similitud.
2025-08-09 00:44:57,432 - INFO - Guardada comparación entre Juegos de guerra.txt y Efecto cis.txt con 14.15% de similitud.
2025-08-09 00:44:57,436 - INFO - Guardada comparación entre Juegos de guerra.txt y Demografía de la República Democrática del Congo.txt con 15.03% de similitud.
2025-08-09 00:44:57,440 - INFO - Guardada comparación entre Juegos de guerra.txt y Desigualdad de ingreso.txt con 13.63% de similitud.
2025-08-09 00:44:57,444 - INFO - Guardada comparación entre Juegos de guerra.txt y Terrorismo de extrema izquierda.txt con 15.11% de similitud.
2025-08-09 00:44:57,449 - INFO - Guardada comparación entre Navegador sin interfaz gráfica.txt y Iberos.txt con 4.05% de similitud.
2025-08-09 00:44:57,452 - INFO - Guardada comparación entre Navegador sin interfaz gráfica.txt y .km.txt con 10.48% de similitud.
2025-08-09 00:44:57,455 - INFO - Guardada comparación entre Navegador sin interfaz gráfica.txt y Censura internacional china.txt con 11.91% de similitud.
2025-08-09 00:44:57,459 - INFO - Guardada comparación entre Navegador sin interfaz gráfica.txt y Alfarería en la provincia de Almería.txt con 9.38% de similitud.
2025-08-09 00:44:57,462 - INFO - Guardada comparación entre Navegador sin interfaz gráfica.txt y Ingeniería comercial.txt con 13.54% de similitud.
2025-08-09 00:44:57,466 - INFO - Guardada comparación entre Navegador sin interfaz gráfica.txt y Segunda Cumbre BRIC 2010.txt con 15.46% de similitud.
2025-08-09 00:44:57,469 - INFO - Guardada comparación entre Navegador sin interfaz gráfica.txt y Santa Marina del Rey.txt con 11.86% de similitud.
2025-08-09 00:44:57,472 - INFO - Guardada comparación entre Navegador sin interfaz gráfica.txt y Guerra de guerrillas en la península ibérica durante las guerras napoleónicas.txt con 12.25% de similitud.
2025-08-09 00:44:57,476 - INFO - Guardada comparación entre Navegador sin interfaz gráfica.txt y Biodiversidad Virtual.txt con 13.40% de similitud.
2025-08-09 00:44:57,479 - INFO - Guardada comparación entre Navegador sin interfaz gráfica.txt y Estudios de ciencia, tecnología y género.txt con 12.24% de similitud.
2025-08-09 00:44:57,482 - INFO - Guardada comparación entre Navegador sin interfaz gráfica.txt y Representación (política).txt con 13.89% de similitud.
2025-08-09 00:44:57,485 - INFO - Guardada comparación entre Navegador sin interfaz gráfica.txt y EToro.txt con 15.48% de similitud.
2025-08-09 00:44:57,488 - INFO - Guardada comparación entre Navegador sin interfaz gráfica.txt y Ambiente biofísico.txt con 16.10% de similitud.
2025-08-09 00:44:57,491 - INFO - Guardada comparación entre Navegador sin interfaz gráfica.txt y Juego ganar ganar.txt con 14.21% de similitud.
2025-08-09 00:44:57,495 - INFO - Guardada comparación entre Navegador sin interfaz gráfica.txt y Declaración de los Derechos de la Mujer y de la Ciudadana.txt con 10.25% de similitud.
2025-08-09 00:44:57,498 - INFO - Guardada comparación entre Navegador sin interfaz gráfica.txt y Convención Marco de las Naciones Unidas sobre el Cambio Climático.txt con 11.14% de similitud.
2025-08-09 00:44:57,501 - INFO - Guardada comparación entre Navegador sin interfaz gráfica.txt y Oswald Pohl.txt con 12.76% de similitud.
2025-08-09 00:44:57,504 - INFO - Guardada comparación entre Navegador sin interfaz gráfica.txt y Empresa Nacional Siderúrgica.txt con 11.38% de similitud.
2025-08-09 00:44:57,507 - INFO - Guardada comparación entre Navegador sin interfaz gráfica.txt y Teletón El Salvador.txt con 11.31% de similitud.
2025-08-09 00:44:57,510 - INFO - Guardada comparación entre Navegador sin interfaz gráfica.txt y Antônio de Sousa Neto.txt con 12.53% de similitud.
2025-08-09 00:44:57,516 - INFO - Guardada comparación entre Navegador sin interfaz gráfica.txt y Unión Ortodoxa.txt con 14.20% de similitud.
2025-08-09 00:44:57,519 - INFO - Guardada comparación entre Navegador sin interfaz gráfica.txt y Efecto cis.txt con 13.00% de similitud.
2025-08-09 00:44:57,522 - INFO - Guardada comparación entre Navegador sin interfaz gráfica.txt y Demografía de la República Democrática del Congo.txt con 11.21% de similitud.
2025-08-09 00:44:57,526 - INFO - Guardada comparación entre Navegador sin interfaz gráfica.txt y Desigualdad de ingreso.txt con 7.37% de similitud.
2025-08-09 00:44:57,530 - INFO - Guardada comparación entre Navegador sin interfaz gráfica.txt y Terrorismo de extrema izquierda.txt con 7.84% de similitud.
2025-08-09 00:44:57,535 - INFO - Guardada comparación entre Asociación Civil Transparencia.txt y Iberos.txt con 2.69% de similitud.
2025-08-09 00:44:57,538 - INFO - Guardada comparación entre Asociación Civil Transparencia.txt y .km.txt con 11.65% de similitud.
2025-08-09 00:44:57,541 - INFO - Guardada comparación entre Asociación Civil Transparencia.txt y Censura internacional china.txt con 7.83% de similitud.
2025-08-09 00:44:57,545 - INFO - Guardada comparación entre Asociación Civil Transparencia.txt y Alfarería en la provincia de Almería.txt con 7.91% de similitud.
2025-08-09 00:44:57,548 - INFO - Guardada comparación entre Asociación Civil Transparencia.txt y Acuerdo de Prespa.txt con 13.29% de similitud.
2025-08-09 00:44:57,551 - INFO - Guardada comparación entre Asociación Civil Transparencia.txt y Segunda Cumbre BRIC 2010.txt con 11.86% de similitud.
2025-08-09 00:44:57,554 - INFO - Guardada comparación entre Asociación Civil Transparencia.txt y Santa Marina del Rey.txt con 13.76% de similitud.
2025-08-09 00:44:57,557 - INFO - Guardada comparación entre Asociación Civil Transparencia.txt y Omaira Montoya Henao.txt con 16.22% de similitud.
2025-08-09 00:44:57,560 - INFO - Guardada comparación entre Asociación Civil Transparencia.txt y Biodiversidad Virtual.txt con 13.23% de similitud.
2025-08-09 00:44:57,563 - INFO - Guardada comparación entre Asociación Civil Transparencia.txt y Estudios de ciencia, tecnología y género.txt con 11.80% de similitud.
2025-08-09 00:44:57,566 - INFO - Guardada comparación entre Asociación Civil Transparencia.txt y Representación (política).txt con 13.90% de similitud.
2025-08-09 00:44:57,569 - INFO - Guardada comparación entre Asociación Civil Transparencia.txt y Roxana Campos.txt con 15.37% de similitud.
2025-08-09 00:44:57,574 - INFO - Guardada comparación entre Asociación Civil Transparencia.txt y Reforma económica china.txt con 3.27% de similitud.
2025-08-09 00:44:57,577 - INFO - Guardada comparación entre Asociación Civil Transparencia.txt y Alejandro VII.txt con 10.26% de similitud.
2025-08-09 00:44:57,580 - INFO - Guardada comparación entre Asociación Civil Transparencia.txt y Violencia obstétrica.txt con 12.67% de similitud.
2025-08-09 00:44:57,583 - INFO - Guardada comparación entre Asociación Civil Transparencia.txt y Torrente Gros.txt con 11.64% de similitud.
2025-08-09 00:44:57,586 - INFO - Guardada comparación entre Asociación Civil Transparencia.txt y Guerra de Reforma.txt con 8.89% de similitud.
2025-08-09 00:44:57,590 - INFO - Guardada comparación entre Asociación Civil Transparencia.txt y Certificate Signing Request.txt con 7.02% de similitud.
2025-08-09 00:44:57,593 - INFO - Guardada comparación entre Asociación Civil Transparencia.txt y Katalin Bogyay.txt con 7.94% de similitud.
2025-08-09 00:44:57,596 - INFO - Guardada comparación entre Asociación Civil Transparencia.txt y Unión Ortodoxa.txt con 13.46% de similitud.
2025-08-09 00:44:57,600 - INFO - Guardada comparación entre Asociación Civil Transparencia.txt y Emisora móvil.txt con 5.46% de similitud.
2025-08-09 00:44:57,603 - INFO - Guardada comparación entre Asociación Civil Transparencia.txt y Sanción.txt con 4.75% de similitud.
2025-08-09 00:44:57,606 - INFO - Guardada comparación entre Asociación Civil Transparencia.txt y Saúl Luciano Lliuya.txt con 18.10% de similitud.
2025-08-09 00:44:57,609 - INFO - Guardada comparación entre Asociación Civil Transparencia.txt y Antiprotestantismo.txt con 11.11% de similitud.
2025-08-09 00:44:57,613 - INFO - Guardada comparación entre Medidas activas.txt y Desigualdad de ingreso en Estados Unidos.txt con 17.19% de similitud.
2025-08-09 00:44:57,618 - INFO - Guardada comparación entre Medidas activas.txt y Iberos.txt con 11.34% de similitud.
2025-08-09 00:44:57,622 - INFO - Guardada comparación entre Medidas activas.txt y .km.txt con 4.69% de similitud.
2025-08-09 00:44:57,626 - INFO - Guardada comparación entre Medidas activas.txt y Censura internacional china.txt con 21.99% de similitud.
2025-08-09 00:44:57,630 - INFO - Guardada comparación entre Medidas activas.txt y Alfarería en la provincia de Almería.txt con 18.91% de similitud.
2025-08-09 00:44:57,633 - INFO - Guardada comparación entre Medidas activas.txt y Acuerdo de Prespa.txt con 5.11% de similitud.
2025-08-09 00:44:57,637 - INFO - Guardada comparación entre Medidas activas.txt y Segunda Cumbre BRIC 2010.txt con 16.23% de similitud.
2025-08-09 00:44:57,640 - INFO - Guardada comparación entre Medidas activas.txt y Santa Marina del Rey.txt con 9.02% de similitud.
2025-08-09 00:44:57,644 - INFO - Guardada comparación entre Medidas activas.txt y Omaira Montoya Henao.txt con 10.85% de similitud.
2025-08-09 00:44:57,648 - INFO - Guardada comparación entre Medidas activas.txt y Biodiversidad Virtual.txt con 11.79% de similitud.
2025-08-09 00:44:57,651 - INFO - Guardada comparación entre Medidas activas.txt y Estudios de ciencia, tecnología y género.txt con 17.04% de similitud.
2025-08-09 00:44:57,655 - INFO - Guardada comparación entre Medidas activas.txt y Representación (política).txt con 14.27% de similitud.
2025-08-09 00:44:57,658 - INFO - Guardada comparación entre Medidas activas.txt y Roxana Campos.txt con 7.25% de similitud.
2025-08-09 00:44:57,663 - INFO - Guardada comparación entre Medidas activas.txt y Reforma económica china.txt con 13.63% de similitud.
2025-08-09 00:44:57,667 - INFO - Guardada comparación entre Medidas activas.txt y Alejandro VII.txt con 17.10% de similitud.
2025-08-09 00:44:57,671 - INFO - Guardada comparación entre Medidas activas.txt y Violencia obstétrica.txt con 13.08% de similitud.
2025-08-09 00:44:57,675 - INFO - Guardada comparación entre Medidas activas.txt y Torrente Gros.txt con 12.78% de similitud.
2025-08-09 00:44:57,678 - INFO - Guardada comparación entre Medidas activas.txt y Empresa Nacional Siderúrgica.txt con 16.90% de similitud.
2025-08-09 00:44:57,682 - INFO - Guardada comparación entre Medidas activas.txt y Certificate Signing Request.txt con 10.05% de similitud.
2025-08-09 00:44:57,686 - INFO - Guardada comparación entre Medidas activas.txt y Katalin Bogyay.txt con 21.60% de similitud.
2025-08-09 00:44:57,690 - INFO - Guardada comparación entre Medidas activas.txt y Unión Ortodoxa.txt con 15.70% de similitud.
2025-08-09 00:44:57,693 - INFO - Guardada comparación entre Medidas activas.txt y Efecto cis.txt con 12.67% de similitud.
2025-08-09 00:44:57,696 - INFO - Guardada comparación entre Medidas activas.txt y Sanción.txt con 1.05% de similitud.
2025-08-09 00:44:57,700 - INFO - Guardada comparación entre Medidas activas.txt y Saúl Luciano Lliuya.txt con 7.55% de similitud.
2025-08-09 00:44:57,704 - INFO - Guardada comparación entre Medidas activas.txt y Antiprotestantismo.txt con 16.65% de similitud.
2025-08-09 00:44:57,706 - INFO - Guardada comparación entre Estéfany Grajales.txt y Desigualdad de ingreso en Estados Unidos.txt con 10.78% de similitud.
2025-08-09 00:44:57,709 - INFO - Guardada comparación entre Estéfany Grajales.txt y Club Deportivo La Equidad (Femenino).txt con 11.39% de similitud.
2025-08-09 00:44:57,712 - INFO - Guardada comparación entre Estéfany Grajales.txt y Dirección General de Atención a las Víctimas y Promoción de la Memoria Democrática.txt con 12.99% de similitud.
2025-08-09 00:44:57,715 - INFO - Guardada comparación entre Estéfany Grajales.txt y Asesoría Jurídica Internacional.txt con 14.03% de similitud.
2025-08-09 00:44:57,719 - INFO - Guardada comparación entre Estéfany Grajales.txt y Desarrollo de videojuegos independiente.txt con 4.42% de similitud.
2025-08-09 00:44:57,722 - INFO - Guardada comparación entre Estéfany Grajales.txt y Ingeniería comercial.txt con 14.59% de similitud.
2025-08-09 00:44:57,725 - INFO - Guardada comparación entre Estéfany Grajales.txt y Chevrolet Cobalt.txt con 7.40% de similitud.
2025-08-09 00:44:57,728 - INFO - Guardada comparación entre Estéfany Grajales.txt y Código Unificado de Punto de Suministro.txt con 10.89% de similitud.
2025-08-09 00:44:57,732 - INFO - Guardada comparación entre Estéfany Grajales.txt y Guerra de guerrillas en la península ibérica durante las guerras napoleónicas.txt con 8.17% de similitud.
2025-08-09 00:44:57,735 - INFO - Guardada comparación entre Estéfany Grajales.txt y Estación de tratamiento de agua potable.txt con 13.53% de similitud.
2025-08-09 00:44:57,738 - INFO - Guardada comparación entre Estéfany Grajales.txt y Militar.txt con 10.39% de similitud.
2025-08-09 00:44:57,741 - INFO - Guardada comparación entre Estéfany Grajales.txt y Demografía de Canadá.txt con 6.79% de similitud.
2025-08-09 00:44:57,744 - INFO - Guardada comparación entre Estéfany Grajales.txt y EToro.txt con 11.75% de similitud.
2025-08-09 00:44:57,747 - INFO - Guardada comparación entre Estéfany Grajales.txt y Ambiente biofísico.txt con 14.36% de similitud.
2025-08-09 00:44:57,750 - INFO - Guardada comparación entre Estéfany Grajales.txt y Juego ganar ganar.txt con 12.12% de similitud.
2025-08-09 00:44:57,753 - INFO - Guardada comparación entre Estéfany Grajales.txt y Alejandro VII.txt con 8.78% de similitud.
2025-08-09 00:44:57,757 - INFO - Guardada comparación entre Estéfany Grajales.txt y Convención Marco de las Naciones Unidas sobre el Cambio Climático.txt con 8.37% de similitud.
2025-08-09 00:44:57,760 - INFO - Guardada comparación entre Estéfany Grajales.txt y Oswald Pohl.txt con 13.65% de similitud.
2025-08-09 00:44:57,763 - INFO - Guardada comparación entre Estéfany Grajales.txt y Empresa Nacional Siderúrgica.txt con 9.45% de similitud.
2025-08-09 00:44:57,766 - INFO - Guardada comparación entre Estéfany Grajales.txt y Certificate Signing Request.txt con 5.51% de similitud.
2025-08-09 00:44:57,769 - INFO - Guardada comparación entre Estéfany Grajales.txt y Katalin Bogyay.txt con 6.51% de similitud.
2025-08-09 00:44:57,773 - INFO - Guardada comparación entre Estéfany Grajales.txt y Mercenarios (BattleTech).txt con 6.79% de similitud.
2025-08-09 00:44:57,777 - INFO - Guardada comparación entre Estéfany Grajales.txt y Efecto cis.txt con 9.65% de similitud.
2025-08-09 00:44:57,781 - INFO - Guardada comparación entre Estéfany Grajales.txt y Sanción.txt con 4.40% de similitud.
2025-08-09 00:44:57,783 - INFO - Guardada comparación entre Estéfany Grajales.txt y Saúl Luciano Lliuya.txt con 16.37% de similitud.
2025-08-09 00:44:57,787 - INFO - Guardada comparación entre Estéfany Grajales.txt y Antiprotestantismo.txt con 9.59% de similitud.
2025-08-09 00:44:57,796 - INFO - Guardada comparación entre Sputnik V.txt y Desigualdad de ingreso en Estados Unidos.txt con 2.53% de similitud.
2025-08-09 00:44:57,804 - INFO - Guardada comparación entre Sputnik V.txt y Club Deportivo La Equidad (Femenino).txt con 1.72% de similitud.
2025-08-09 00:44:57,812 - INFO - Guardada comparación entre Sputnik V.txt y .km.txt con 0.64% de similitud.
2025-08-09 00:44:57,821 - INFO - Guardada comparación entre Sputnik V.txt y Censura internacional china.txt con 4.02% de similitud.
2025-08-09 00:44:57,829 - INFO - Guardada comparación entre Sputnik V.txt y Alfarería en la provincia de Almería.txt con 4.28% de similitud.
2025-08-09 00:44:57,837 - INFO - Guardada comparación entre Sputnik V.txt y Acuerdo de Prespa.txt con 0.53% de similitud.
2025-08-09 00:44:57,846 - INFO - Guardada comparación entre Sputnik V.txt y Segunda Cumbre BRIC 2010.txt con 2.43% de similitud.
2025-08-09 00:44:57,853 - INFO - Guardada comparación entre Sputnik V.txt y Santa Marina del Rey.txt con 1.12% de similitud.
2025-08-09 00:44:57,862 - INFO - Guardada comparación entre Sputnik V.txt y Omaira Montoya Henao.txt con 1.32% de similitud.
2025-08-09 00:44:57,870 - INFO - Guardada comparación entre Sputnik V.txt y Biodiversidad Virtual.txt con 1.74% de similitud.
2025-08-09 00:44:57,878 - INFO - Guardada comparación entre Sputnik V.txt y Estudios de ciencia, tecnología y género.txt con 2.52% de similitud.
2025-08-09 00:44:57,890 - INFO - Guardada comparación entre Sputnik V.txt y Representación (política).txt con 2.09% de similitud.
2025-08-09 00:44:57,902 - INFO - Guardada comparación entre Sputnik V.txt y Roxana Campos.txt con 0.80% de similitud.
2025-08-09 00:44:57,915 - INFO - Guardada comparación entre Sputnik V.txt y Reforma económica china.txt con 14.23% de similitud.
2025-08-09 00:44:57,924 - INFO - Guardada comparación entre Sputnik V.txt y Alejandro VII.txt con 2.77% de similitud.
2025-08-09 00:44:57,932 - INFO - Guardada comparación entre Sputnik V.txt y Violencia obstétrica.txt con 1.74% de similitud.
2025-08-09 00:44:57,941 - INFO - Guardada comparación entre Sputnik V.txt y Torrente Gros.txt con 1.93% de similitud.
2025-08-09 00:44:57,949 - INFO - Guardada comparación entre Sputnik V.txt y Guerra de Reforma.txt con 4.13% de similitud.
2025-08-09 00:44:57,958 - INFO - Guardada comparación entre Sputnik V.txt y Certificate Signing Request.txt con 3.45% de similitud.
2025-08-09 00:44:57,967 - INFO - Guardada comparación entre Sputnik V.txt y Katalin Bogyay.txt con 4.88% de similitud.
2025-08-09 00:44:57,975 - INFO - Guardada comparación entre Sputnik V.txt y Unión Ortodoxa.txt con 2.37% de similitud.
2025-08-09 00:44:57,985 - INFO - Guardada comparación entre Sputnik V.txt y Emisora móvil.txt con 6.42% de similitud.
2025-08-09 00:44:57,993 - INFO - Guardada comparación entre Sputnik V.txt y Sanción.txt con 0.10% de similitud.
2025-08-09 00:44:58,002 - INFO - Guardada comparación entre Sputnik V.txt y Saúl Luciano Lliuya.txt con 0.89% de similitud.
2025-08-09 00:44:58,010 - INFO - Guardada comparación entre Sputnik V.txt y Antiprotestantismo.txt con 2.64% de similitud.
2025-08-09 00:44:58,013 - INFO - Guardada comparación entre Día Naranja.txt y Desigualdad de ingreso en Estados Unidos.txt con 12.59% de similitud.
2025-08-09 00:44:58,016 - INFO - Guardada comparación entre Día Naranja.txt y Club Deportivo La Equidad (Femenino).txt con 13.83% de similitud.
2025-08-09 00:44:58,019 - INFO - Guardada comparación entre Día Naranja.txt y Dirección General de Atención a las Víctimas y Promoción de la Memoria Democrática.txt con 15.00% de similitud.
2025-08-09 00:44:58,022 - INFO - Guardada comparación entre Día Naranja.txt y Asesoría Jurídica Internacional.txt con 16.10% de similitud.
2025-08-09 00:44:58,026 - INFO - Guardada comparación entre Día Naranja.txt y Desarrollo de videojuegos independiente.txt con 6.07% de similitud.
2025-08-09 00:44:58,029 - INFO - Guardada comparación entre Día Naranja.txt y Ingeniería comercial.txt con 15.65% de similitud.
2025-08-09 00:44:58,033 - INFO - Guardada comparación entre Día Naranja.txt y Chevrolet Cobalt.txt con 5.71% de similitud.
2025-08-09 00:44:58,036 - INFO - Guardada comparación entre Día Naranja.txt y Código Unificado de Punto de Suministro.txt con 12.92% de similitud.
2025-08-09 00:44:58,039 - INFO - Guardada comparación entre Día Naranja.txt y Guerra de guerrillas en la península ibérica durante las guerras napoleónicas.txt con 9.75% de similitud.
2025-08-09 00:44:58,042 - INFO - Guardada comparación entre Día Naranja.txt y Estación de tratamiento de agua potable.txt con 14.19% de similitud.
2025-08-09 00:44:58,046 - INFO - Guardada comparación entre Día Naranja.txt y Militar.txt con 13.34% de similitud.
2025-08-09 00:44:58,049 - INFO - Guardada comparación entre Día Naranja.txt y Demografía de Canadá.txt con 9.46% de similitud.
2025-08-09 00:44:58,053 - INFO - Guardada comparación entre Día Naranja.txt y EToro.txt con 13.11% de similitud.
2025-08-09 00:44:58,056 - INFO - Guardada comparación entre Día Naranja.txt y Ambiente biofísico.txt con 16.18% de similitud.
2025-08-09 00:44:58,059 - INFO - Guardada comparación entre Día Naranja.txt y Juego ganar ganar.txt con 14.96% de similitud.
2025-08-09 00:44:58,063 - INFO - Guardada comparación entre Día Naranja.txt y Declaración de los Derechos de la Mujer y de la Ciudadana.txt con 10.43% de similitud.
2025-08-09 00:44:58,066 - INFO - Guardada comparación entre Día Naranja.txt y Convención Marco de las Naciones Unidas sobre el Cambio Climático.txt con 11.75% de similitud.
2025-08-09 00:44:58,070 - INFO - Guardada comparación entre Día Naranja.txt y Oswald Pohl.txt con 16.52% de similitud.
2025-08-09 00:44:58,073 - INFO - Guardada comparación entre Día Naranja.txt y Empresa Nacional Siderúrgica.txt con 10.96% de similitud.
2025-08-09 00:44:58,076 - INFO - Guardada comparación entre Día Naranja.txt y Teletón El Salvador.txt con 11.40% de similitud.
2025-08-09 00:44:58,080 - INFO - Guardada comparación entre Día Naranja.txt y Antônio de Sousa Neto.txt con 14.33% de similitud.
2025-08-09 00:44:58,083 - INFO - Guardada comparación entre Día Naranja.txt y Mercenarios (BattleTech).txt con 9.49% de similitud.
2025-08-09 00:44:58,087 - INFO - Guardada comparación entre Día Naranja.txt y Efecto cis.txt con 11.08% de similitud.
2025-08-09 00:44:58,090 - INFO - Guardada comparación entre Día Naranja.txt y Demografía de la República Democrática del Congo.txt con 11.45% de similitud.
2025-08-09 00:44:58,094 - INFO - Guardada comparación entre Día Naranja.txt y Desigualdad de ingreso.txt con 5.40% de similitud.
2025-08-09 00:44:58,098 - INFO - Guardada comparación entre Día Naranja.txt y Terrorismo de extrema izquierda.txt con 6.15% de similitud.
2025-08-09 00:44:58,103 - INFO - Guardada comparación entre Negro de carbón.txt y Club Deportivo La Equidad (Femenino).txt con 16.02% de similitud.
2025-08-09 00:44:58,107 - INFO - Guardada comparación entre Negro de carbón.txt y Dirección General de Atención a las Víctimas y Promoción de la Memoria Democrática.txt con 15.13% de similitud.
2025-08-09 00:44:58,110 - INFO - Guardada comparación entre Negro de carbón.txt y Asesoría Jurídica Internacional.txt con 15.62% de similitud.
2025-08-09 00:44:58,114 - INFO - Guardada comparación entre Negro de carbón.txt y Desarrollo de videojuegos independiente.txt con 8.75% de similitud.
2025-08-09 00:44:58,117 - INFO - Guardada comparación entre Negro de carbón.txt y Ingeniería comercial.txt con 17.09% de similitud.
2025-08-09 00:44:58,120 - INFO - Guardada comparación entre Negro de carbón.txt y Chevrolet Cobalt.txt con 4.84% de similitud.
2025-08-09 00:44:58,124 - INFO - Guardada comparación entre Negro de carbón.txt y Código Unificado de Punto de Suministro.txt con 16.91% de similitud.
2025-08-09 00:44:58,127 - INFO - Guardada comparación entre Negro de carbón.txt y Guerra de guerrillas en la península ibérica durante las guerras napoleónicas.txt con 13.27% de similitud.
2025-08-09 00:44:58,131 - INFO - Guardada comparación entre Negro de carbón.txt y Estación de tratamiento de agua potable.txt con 13.96% de similitud.
2025-08-09 00:44:58,134 - INFO - Guardada comparación entre Negro de carbón.txt y Militar.txt con 17.43% de similitud.
2025-08-09 00:44:58,137 - INFO - Guardada comparación entre Negro de carbón.txt y Demografía de Canadá.txt con 12.65% de similitud.
2025-08-09 00:44:58,141 - INFO - Guardada comparación entre Negro de carbón.txt y EToro.txt con 15.04% de similitud.
2025-08-09 00:44:58,144 - INFO - Guardada comparación entre Negro de carbón.txt y Ambiente biofísico.txt con 18.35% de similitud.
2025-08-09 00:44:58,148 - INFO - Guardada comparación entre Negro de carbón.txt y Juego ganar ganar.txt con 18.15% de similitud.
2025-08-09 00:44:58,151 - INFO - Guardada comparación entre Negro de carbón.txt y Declaración de los Derechos de la Mujer y de la Ciudadana.txt con 13.09% de similitud.
2025-08-09 00:44:58,155 - INFO - Guardada comparación entre Negro de carbón.txt y Convención Marco de las Naciones Unidas sobre el Cambio Climático.txt con 13.83% de similitud.
2025-08-09 00:44:58,158 - INFO - Guardada comparación entre Negro de carbón.txt y Oswald Pohl.txt con 16.43% de similitud.
2025-08-09 00:44:58,161 - INFO - Guardada comparación entre Negro de carbón.txt y Empresa Nacional Siderúrgica.txt con 14.35% de similitud.
2025-08-09 00:44:58,165 - INFO - Guardada comparación entre Negro de carbón.txt y Teletón El Salvador.txt con 15.09% de similitud.
2025-08-09 00:44:58,168 - INFO - Guardada comparación entre Negro de carbón.txt y Antônio de Sousa Neto.txt con 14.14% de similitud.
2025-08-09 00:44:58,173 - INFO - Guardada comparación entre Negro de carbón.txt y Unión Ortodoxa.txt con 16.45% de similitud.
2025-08-09 00:44:58,176 - INFO - Guardada comparación entre Negro de carbón.txt y Efecto cis.txt con 16.22% de similitud.
2025-08-09 00:44:58,180 - INFO - Guardada comparación entre Negro de carbón.txt y Sanción.txt con 2.86% de similitud.
2025-08-09 00:44:58,183 - INFO - Guardada comparación entre Negro de carbón.txt y Saúl Luciano Lliuya.txt con 13.32% de similitud.
2025-08-09 00:44:58,187 - INFO - Guardada comparación entre Negro de carbón.txt y Antiprotestantismo.txt con 14.66% de similitud.
2025-08-09 00:44:58,191 - INFO - Guardada comparación entre Microsoft Anti-Virus.txt y Desigualdad de ingreso en Estados Unidos.txt con 6.88% de similitud.
2025-08-09 00:44:58,195 - INFO - Guardada comparación entre Microsoft Anti-Virus.txt y Club Deportivo La Equidad (Femenino).txt con 9.47% de similitud.
2025-08-09 00:44:58,198 - INFO - Guardada comparación entre Microsoft Anti-Virus.txt y Dirección General de Atención a las Víctimas y Promoción de la Memoria Democrática.txt con 9.23% de similitud.
2025-08-09 00:44:58,202 - INFO - Guardada comparación entre Microsoft Anti-Virus.txt y Asesoría Jurídica Internacional.txt con 11.29% de similitud.
2025-08-09 00:44:58,206 - INFO - Guardada comparación entre Microsoft Anti-Virus.txt y Desarrollo de videojuegos independiente.txt con 3.19% de similitud.
2025-08-09 00:44:58,209 - INFO - Guardada comparación entre Microsoft Anti-Virus.txt y Ingeniería comercial.txt con 9.76% de similitud.
2025-08-09 00:44:58,212 - INFO - Guardada comparación entre Microsoft Anti-Virus.txt y Chevrolet Cobalt.txt con 6.39% de similitud.
2025-08-09 00:44:58,215 - INFO - Guardada comparación entre Microsoft Anti-Virus.txt y Código Unificado de Punto de Suministro.txt con 8.91% de similitud.
2025-08-09 00:44:58,218 - INFO - Guardada comparación entre Microsoft Anti-Virus.txt y Guerra de guerrillas en la península ibérica durante las guerras napoleónicas.txt con 6.19% de similitud.
2025-08-09 00:44:58,221 - INFO - Guardada comparación entre Microsoft Anti-Virus.txt y Estación de tratamiento de agua potable.txt con 12.68% de similitud.
2025-08-09 00:44:58,224 - INFO - Guardada comparación entre Microsoft Anti-Virus.txt y Militar.txt con 7.43% de similitud.
2025-08-09 00:44:58,228 - INFO - Guardada comparación entre Microsoft Anti-Virus.txt y Demografía de Canadá.txt con 5.29% de similitud.
2025-08-09 00:44:58,231 - INFO - Guardada comparación entre Microsoft Anti-Virus.txt y EToro.txt con 8.49% de similitud.
2025-08-09 00:44:58,234 - INFO - Guardada comparación entre Microsoft Anti-Virus.txt y Ambiente biofísico.txt con 11.35% de similitud.
2025-08-09 00:44:58,237 - INFO - Guardada comparación entre Microsoft Anti-Virus.txt y Juego ganar ganar.txt con 9.90% de similitud.
2025-08-09 00:44:58,241 - INFO - Guardada comparación entre Microsoft Anti-Virus.txt y Declaración de los Derechos de la Mujer y de la Ciudadana.txt con 5.22% de similitud.
2025-08-09 00:44:58,244 - INFO - Guardada comparación entre Microsoft Anti-Virus.txt y Convención Marco de las Naciones Unidas sobre el Cambio Climático.txt con 6.22% de similitud.
2025-08-09 00:44:58,247 - INFO - Guardada comparación entre Microsoft Anti-Virus.txt y Oswald Pohl.txt con 11.04% de similitud.
2025-08-09 00:44:58,250 - INFO - Guardada comparación entre Microsoft Anti-Virus.txt y Empresa Nacional Siderúrgica.txt con 6.63% de similitud.
2025-08-09 00:44:58,253 - INFO - Guardada comparación entre Microsoft Anti-Virus.txt y Teletón El Salvador.txt con 6.55% de similitud.
2025-08-09 00:44:58,256 - INFO - Guardada comparación entre Microsoft Anti-Virus.txt y Antônio de Sousa Neto.txt con 12.01% de similitud.
2025-08-09 00:44:58,259 - INFO - Guardada comparación entre Microsoft Anti-Virus.txt y Mercenarios (BattleTech).txt con 5.72% de similitud.
2025-08-09 00:44:58,263 - INFO - Guardada comparación entre Microsoft Anti-Virus.txt y Efecto cis.txt con 7.21% de similitud.
2025-08-09 00:44:58,266 - INFO - Guardada comparación entre Microsoft Anti-Virus.txt y Sanción.txt con 5.14% de similitud.
2025-08-09 00:44:58,269 - INFO - Guardada comparación entre Microsoft Anti-Virus.txt y Saúl Luciano Lliuya.txt con 11.93% de similitud.
2025-08-09 00:44:58,272 - INFO - Guardada comparación entre Microsoft Anti-Virus.txt y Antiprotestantismo.txt con 6.77% de similitud.
2025-08-09 00:44:58,275 - INFO - Guardada comparación entre Dirección General de Logística Informativa.txt y Desigualdad de ingreso en Estados Unidos.txt con 11.60% de similitud.
2025-08-09 00:44:58,278 - INFO - Guardada comparación entre Dirección General de Logística Informativa.txt y Club Deportivo La Equidad (Femenino).txt con 13.85% de similitud.
2025-08-09 00:44:58,281 - INFO - Guardada comparación entre Dirección General de Logística Informativa.txt y Dirección General de Atención a las Víctimas y Promoción de la Memoria Democrática.txt con 18.60% de similitud.
2025-08-09 00:44:58,284 - INFO - Guardada comparación entre Dirección General de Logística Informativa.txt y Asesoría Jurídica Internacional.txt con 17.80% de similitud.
2025-08-09 00:44:58,288 - INFO - Guardada comparación entre Dirección General de Logística Informativa.txt y Desarrollo de videojuegos independiente.txt con 4.54% de similitud.
2025-08-09 00:44:58,291 - INFO - Guardada comparación entre Dirección General de Logística Informativa.txt y Acuerdo de Prespa.txt con 13.00% de similitud.
2025-08-09 00:44:58,297 - INFO - Guardada comparación entre Dirección General de Logística Informativa.txt y Chevrolet Cobalt.txt con 6.85% de similitud.
2025-08-09 00:44:58,300 - INFO - Guardada comparación entre Dirección General de Logística Informativa.txt y Guerra de guerrillas en la península ibérica durante las guerras napoleónicas.txt con 8.87% de similitud.
2025-08-09 00:44:58,303 - INFO - Guardada comparación entre Dirección General de Logística Informativa.txt y Omaira Montoya Henao.txt con 15.45% de similitud.
2025-08-09 00:44:58,306 - INFO - Guardada comparación entre Dirección General de Logística Informativa.txt y Estación de tratamiento de agua potable.txt con 14.49% de similitud.
2025-08-09 00:44:58,309 - INFO - Guardada comparación entre Dirección General de Logística Informativa.txt y Militar.txt con 12.70% de similitud.
2025-08-09 00:44:58,313 - INFO - Guardada comparación entre Dirección General de Logística Informativa.txt y Demografía de Canadá.txt con 7.30% de similitud.
2025-08-09 00:44:58,316 - INFO - Guardada comparación entre Dirección General de Logística Informativa.txt y Roxana Campos.txt con 14.18% de similitud.
2025-08-09 00:44:58,319 - INFO - Guardada comparación entre Dirección General de Logística Informativa.txt y Ambiente biofísico.txt con 13.53% de similitud.
2025-08-09 00:44:58,322 - INFO - Guardada comparación entre Dirección General de Logística Informativa.txt y Juego ganar ganar.txt con 13.72% de similitud.
2025-08-09 00:44:58,325 - INFO - Guardada comparación entre Dirección General de Logística Informativa.txt y Declaración de los Derechos de la Mujer y de la Ciudadana.txt con 8.82% de similitud.
2025-08-09 00:44:58,328 - INFO - Guardada comparación entre Dirección General de Logística Informativa.txt y Convención Marco de las Naciones Unidas sobre el Cambio Climático.txt con 10.54% de similitud.
2025-08-09 00:44:58,331 - INFO - Guardada comparación entre Dirección General de Logística Informativa.txt y Oswald Pohl.txt con 16.05% de similitud.
2025-08-09 00:44:58,334 - INFO - Guardada comparación entre Dirección General de Logística Informativa.txt y Empresa Nacional Siderúrgica.txt con 10.27% de similitud.
2025-08-09 00:44:58,337 - INFO - Guardada comparación entre Dirección General de Logística Informativa.txt y Teletón El Salvador.txt con 10.78% de similitud.
2025-08-09 00:44:58,340 - INFO - Guardada comparación entre Dirección General de Logística Informativa.txt y Antônio de Sousa Neto.txt con 14.43% de similitud.
2025-08-09 00:44:58,343 - INFO - Guardada comparación entre Dirección General de Logística Informativa.txt y Mercenarios (BattleTech).txt con 8.08% de similitud.
2025-08-09 00:44:58,347 - INFO - Guardada comparación entre Dirección General de Logística Informativa.txt y Efecto cis.txt con 10.65% de similitud.
2025-08-09 00:44:58,350 - INFO - Guardada comparación entre Dirección General de Logística Informativa.txt y Demografía de la República Democrática del Congo.txt con 10.82% de similitud.
2025-08-09 00:44:58,353 - INFO - Guardada comparación entre Dirección General de Logística Informativa.txt y Desigualdad de ingreso.txt con 4.31% de similitud.
2025-08-09 00:44:58,357 - INFO - Guardada comparación entre Dirección General de Logística Informativa.txt y Terrorismo de extrema izquierda.txt con 4.85% de similitud.
2025-08-09 00:44:58,362 - INFO - Guardada comparación entre Criptografía híbrida.txt y Iberos.txt con 1.56% de similitud.
2025-08-09 00:44:58,365 - INFO - Guardada comparación entre Criptografía híbrida.txt y Dirección General de Atención a las Víctimas y Promoción de la Memoria Democrática.txt con 8.43% de similitud.
2025-08-09 00:44:58,368 - INFO - Guardada comparación entre Criptografía híbrida.txt y Censura internacional china.txt con 5.01% de similitud.
2025-08-09 00:44:58,372 - INFO - Guardada comparación entre Criptografía híbrida.txt y Alfarería en la provincia de Almería.txt con 4.71% de similitud.
2025-08-09 00:44:58,375 - INFO - Guardada comparación entre Criptografía híbrida.txt y Acuerdo de Prespa.txt con 10.82% de similitud.
2025-08-09 00:44:58,378 - INFO - Guardada comparación entre Criptografía híbrida.txt y Segunda Cumbre BRIC 2010.txt con 7.86% de similitud.
2025-08-09 00:44:58,381 - INFO - Guardada comparación entre Criptografía híbrida.txt y Santa Marina del Rey.txt con 10.34% de similitud.
2025-08-09 00:44:58,384 - INFO - Guardada comparación entre Criptografía híbrida.txt y Omaira Montoya Henao.txt con 10.04% de similitud.
2025-08-09 00:44:58,387 - INFO - Guardada comparación entre Criptografía híbrida.txt y Biodiversidad Virtual.txt con 8.47% de similitud.
2025-08-09 00:44:58,390 - INFO - Guardada comparación entre Criptografía híbrida.txt y Estudios de ciencia, tecnología y género.txt con 6.56% de similitud.
2025-08-09 00:44:58,393 - INFO - Guardada comparación entre Criptografía híbrida.txt y Representación (política).txt con 8.81% de similitud.
2025-08-09 00:44:58,395 - INFO - Guardada comparación entre Criptografía híbrida.txt y Roxana Campos.txt con 9.63% de similitud.
2025-08-09 00:44:58,399 - INFO - Guardada comparación entre Criptografía híbrida.txt y Reforma económica china.txt con 1.69% de similitud.
2025-08-09 00:44:58,403 - INFO - Guardada comparación entre Criptografía híbrida.txt y Alejandro VII.txt con 6.62% de similitud.
2025-08-09 00:44:58,406 - INFO - Guardada comparación entre Criptografía híbrida.txt y Violencia obstétrica.txt con 10.00% de similitud.
2025-08-09 00:44:58,409 - INFO - Guardada comparación entre Criptografía híbrida.txt y Torrente Gros.txt con 8.30% de similitud.
2025-08-09 00:44:58,412 - INFO - Guardada comparación entre Criptografía híbrida.txt y Guerra de Reforma.txt con 5.11% de similitud.
2025-08-09 00:44:58,416 - INFO - Guardada comparación entre Criptografía híbrida.txt y Certificate Signing Request.txt con 5.23% de similitud.
2025-08-09 00:44:58,419 - INFO - Guardada comparación entre Criptografía híbrida.txt y Katalin Bogyay.txt con 4.22% de similitud.
2025-08-09 00:44:58,422 - INFO - Guardada comparación entre Criptografía híbrida.txt y Unión Ortodoxa.txt con 7.73% de similitud.
2025-08-09 00:44:58,426 - INFO - Guardada comparación entre Criptografía híbrida.txt y Emisora móvil.txt con 3.69% de similitud.
2025-08-09 00:44:58,429 - INFO - Guardada comparación entre Criptografía híbrida.txt y Demografía de la República Democrática del Congo.txt con 6.86% de similitud.
2025-08-09 00:44:58,436 - INFO - Guardada comparación entre Criptografía híbrida.txt y Desigualdad de ingreso.txt con 2.72% de similitud.
2025-08-09 00:44:58,439 - INFO - Guardada comparación entre Ciclismo en los Juegos Europeos de Minsk 2019.txt y Desigualdad de ingreso en Estados Unidos.txt con 5.05% de similitud.
2025-08-09 00:44:58,442 - INFO - Guardada comparación entre Ciclismo en los Juegos Europeos de Minsk 2019.txt y Club Deportivo La Equidad (Femenino).txt con 7.00% de similitud.
2025-08-09 00:44:58,445 - INFO - Guardada comparación entre Ciclismo en los Juegos Europeos de Minsk 2019.txt y Dirección General de Atención a las Víctimas y Promoción de la Memoria Democrática.txt con 6.28% de similitud.
2025-08-09 00:44:58,448 - INFO - Guardada comparación entre Ciclismo en los Juegos Europeos de Minsk 2019.txt y Asesoría Jurídica Internacional.txt con 8.06% de similitud.
2025-08-09 00:44:58,451 - INFO - Guardada comparación entre Ciclismo en los Juegos Europeos de Minsk 2019.txt y Desarrollo de videojuegos independiente.txt con 1.98% de similitud.
2025-08-09 00:44:58,454 - INFO - Guardada comparación entre Ciclismo en los Juegos Europeos de Minsk 2019.txt y Acuerdo de Prespa.txt con 13.32% de similitud.
2025-08-09 00:44:58,457 - INFO - Guardada comparación entre Ciclismo en los Juegos Europeos de Minsk 2019.txt y Chevrolet Cobalt.txt con 7.43% de similitud.
2025-08-09 00:44:58,460 - INFO - Guardada comparación entre Ciclismo en los Juegos Europeos de Minsk 2019.txt y Código Unificado de Punto de Suministro.txt con 6.43% de similitud.
2025-08-09 00:44:58,463 - INFO - Guardada comparación entre Ciclismo en los Juegos Europeos de Minsk 2019.txt y Guerra de guerrillas en la península ibérica durante las guerras napoleónicas.txt con 3.81% de similitud.
2025-08-09 00:44:58,465 - INFO - Guardada comparación entre Ciclismo en los Juegos Europeos de Minsk 2019.txt y Estación de tratamiento de agua potable.txt con 8.87% de similitud.
2025-08-09 00:44:58,469 - INFO - Guardada comparación entre Ciclismo en los Juegos Europeos de Minsk 2019.txt y Militar.txt con 5.28% de similitud.
2025-08-09 00:44:58,472 - INFO - Guardada comparación entre Ciclismo en los Juegos Europeos de Minsk 2019.txt y Demografía de Canadá.txt con 3.39% de similitud.
2025-08-09 00:44:58,475 - INFO - Guardada comparación entre Ciclismo en los Juegos Europeos de Minsk 2019.txt y EToro.txt con 5.99% de similitud.
2025-08-09 00:44:58,478 - INFO - Guardada comparación entre Ciclismo en los Juegos Europeos de Minsk 2019.txt y Ambiente biofísico.txt con 6.93% de similitud.
2025-08-09 00:44:58,480 - INFO - Guardada comparación entre Ciclismo en los Juegos Europeos de Minsk 2019.txt y Juego ganar ganar.txt con 6.57% de similitud.
2025-08-09 00:44:58,484 - INFO - Guardada comparación entre Ciclismo en los Juegos Europeos de Minsk 2019.txt y Declaración de los Derechos de la Mujer y de la Ciudadana.txt con 3.37% de similitud.
2025-08-09 00:44:58,487 - INFO - Guardada comparación entre Ciclismo en los Juegos Europeos de Minsk 2019.txt y Convención Marco de las Naciones Unidas sobre el Cambio Climático.txt con 4.26% de similitud.
2025-08-09 00:44:58,489 - INFO - Guardada comparación entre Ciclismo en los Juegos Europeos de Minsk 2019.txt y Torrente Gros.txt con 5.86% de similitud.
2025-08-09 00:44:58,492 - INFO - Guardada comparación entre Ciclismo en los Juegos Europeos de Minsk 2019.txt y Oswald Pohl.txt con 8.37% de similitud.
2025-08-09 00:44:58,495 - INFO - Guardada comparación entre Ciclismo en los Juegos Europeos de Minsk 2019.txt y Empresa Nacional Siderúrgica.txt con 4.81% de similitud.
2025-08-09 00:44:58,498 - INFO - Guardada comparación entre Ciclismo en los Juegos Europeos de Minsk 2019.txt y Teletón El Salvador.txt con 4.34% de similitud.
2025-08-09 00:44:58,501 - INFO - Guardada comparación entre Ciclismo en los Juegos Europeos de Minsk 2019.txt y Antônio de Sousa Neto.txt con 9.71% de similitud.
2025-08-09 00:44:58,504 - INFO - Guardada comparación entre Ciclismo en los Juegos Europeos de Minsk 2019.txt y Mercenarios (BattleTech).txt con 3.74% de similitud.
2025-08-09 00:44:58,507 - INFO - Guardada comparación entre Ciclismo en los Juegos Europeos de Minsk 2019.txt y Efecto cis.txt con 4.61% de similitud.
2025-08-09 00:44:58,510 - INFO - Guardada comparación entre Ciclismo en los Juegos Europeos de Minsk 2019.txt y Demografía de la República Democrática del Congo.txt con 4.71% de similitud.
2025-08-09 00:44:58,514 - INFO - Guardada comparación entre Ciclismo en los Juegos Europeos de Minsk 2019.txt y Desigualdad de ingreso.txt con 1.70% de similitud.
2025-08-09 00:44:58,517 - INFO - Guardada comparación entre Ciclismo en los Juegos Europeos de Minsk 2019.txt y Terrorismo de extrema izquierda.txt con 1.95% de similitud.
2025-08-09 00:44:58,521 - INFO - Guardada comparación entre Relaciones España-Finlandia.txt y Club Deportivo La Equidad (Femenino).txt con 18.65% de similitud.
2025-08-09 00:44:58,524 - INFO - Guardada comparación entre Relaciones España-Finlandia.txt y Dirección General de Atención a las Víctimas y Promoción de la Memoria Democrática.txt con 19.35% de similitud.
2025-08-09 00:44:58,528 - INFO - Guardada comparación entre Relaciones España-Finlandia.txt y Asesoría Jurídica Internacional.txt con 17.87% de similitud.
2025-08-09 00:44:58,532 - INFO - Guardada comparación entre Relaciones España-Finlandia.txt y Desarrollo de videojuegos independiente.txt con 9.60% de similitud.
2025-08-09 00:44:58,535 - INFO - Guardada comparación entre Relaciones España-Finlandia.txt y Ingeniería comercial.txt con 19.27% de similitud.
2025-08-09 00:44:58,538 - INFO - Guardada comparación entre Relaciones España-Finlandia.txt y Chevrolet Cobalt.txt con 3.70% de similitud.
2025-08-09 00:44:58,541 - INFO - Guardada comparación entre Relaciones España-Finlandia.txt y Código Unificado de Punto de Suministro.txt con 16.43% de similitud.
2025-08-09 00:44:58,545 - INFO - Guardada comparación entre Relaciones España-Finlandia.txt y Guerra de guerrillas en la península ibérica durante las guerras napoleónicas.txt con 17.08% de similitud.
2025-08-09 00:44:58,548 - INFO - Guardada comparación entre Relaciones España-Finlandia.txt y Estación de tratamiento de agua potable.txt con 11.94% de similitud.
2025-08-09 00:44:58,552 - INFO - Guardada comparación entre Relaciones España-Finlandia.txt y Militar.txt con 18.72% de similitud.
2025-08-09 00:44:58,555 - INFO - Guardada comparación entre Relaciones España-Finlandia.txt y Demografía de Canadá.txt con 14.78% de similitud.
2025-08-09 00:44:58,558 - INFO - Guardada comparación entre Relaciones España-Finlandia.txt y EToro.txt con 19.12% de similitud.
2025-08-09 00:44:58,562 - INFO - Guardada comparación entre Relaciones España-Finlandia.txt y Ambiente biofísico.txt con 17.33% de similitud.
2025-08-09 00:44:58,565 - INFO - Guardada comparación entre Relaciones España-Finlandia.txt y Juego ganar ganar.txt con 16.06% de similitud.
2025-08-09 00:44:58,568 - INFO - Guardada comparación entre Relaciones España-Finlandia.txt y Declaración de los Derechos de la Mujer y de la Ciudadana.txt con 14.79% de similitud.
2025-08-09 00:44:58,572 - INFO - Guardada comparación entre Relaciones España-Finlandia.txt y Convención Marco de las Naciones Unidas sobre el Cambio Climático.txt con 17.52% de similitud.
2025-08-09 00:44:58,575 - INFO - Guardada comparación entre Relaciones España-Finlandia.txt y Oswald Pohl.txt con 18.15% de similitud.
2025-08-09 00:44:58,578 - INFO - Guardada comparación entre Relaciones España-Finlandia.txt y Empresa Nacional Siderúrgica.txt con 17.55% de similitud.
2025-08-09 00:44:58,582 - INFO - Guardada comparación entre Relaciones España-Finlandia.txt y Teletón El Salvador.txt con 17.44% de similitud.
2025-08-09 00:44:58,585 - INFO - Guardada comparación entre Relaciones España-Finlandia.txt y Antônio de Sousa Neto.txt con 14.52% de similitud.
2025-08-09 00:44:58,588 - INFO - Guardada comparación entre Relaciones España-Finlandia.txt y Unión Ortodoxa.txt con 18.93% de similitud.
2025-08-09 00:44:58,593 - INFO - Guardada comparación entre Relaciones España-Finlandia.txt y Emisora móvil.txt con 9.68% de similitud.
2025-08-09 00:44:58,596 - INFO - Guardada comparación entre Relaciones España-Finlandia.txt y Demografía de la República Democrática del Congo.txt con 16.85% de similitud.
2025-08-09 00:44:58,601 - INFO - Guardada comparación entre Relaciones España-Finlandia.txt y Desigualdad de ingreso.txt con 9.08% de similitud.
2025-08-09 00:44:58,604 - INFO - Guardada comparación entre Relaciones España-Finlandia.txt y Terrorismo de extrema izquierda.txt con 10.23% de similitud.

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,276 @@
import os
import re
import logging
from logging.handlers import RotatingFileHandler
from collections import Counter
from datetime import datetime
from pymongo import MongoClient
from tqdm import tqdm
from multiprocessing import Pool
import string
import nltk
from nltk.corpus import stopwords
# Descargar stopwords la primera vez
nltk.download('stopwords')
stop_words = set(stopwords.words('spanish'))
# Parámetros de configuración
SIMILARITY_THRESHOLD = 4.0
LOG_FILE = "pipeline_mongolo.log"
NUM_PROCESOS = 2 # Número de procesos para el Pool
BATCH_SIZE = 50 # Tamaño del lote para archivos
# Configuración de logging con rotación de archivos
logger = logging.getLogger()
logger.setLevel(logging.INFO)
handler = RotatingFileHandler(LOG_FILE, maxBytes=10*1024*1024, backupCount=5) # 10 MB por archivo, 5 archivos de respaldo
formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')
handler.setFormatter(formatter)
logger.addHandler(handler)
# Función para iniciar un cliente MongoDB
def init_mongo_client():
"""Inicializa un nuevo cliente MongoDB para cada proceso."""
return MongoClient('localhost', 27017)
# Función para preprocesar el texto
def preprocesar_texto(texto):
# Eliminar signos de puntuación
texto = texto.translate(str.maketrans('', '', string.punctuation))
# Convertir a minúsculas
texto = texto.lower()
# Eliminar stop words
palabras = texto.split()
palabras = [word for word in palabras if word not in stop_words]
return ' '.join(palabras)
# Función para asignar tema y subtema basado en el contenido del texto
def asignar_tema_y_subtema(texto):
tematicas = {
'inteligencia y seguridad': ['inteligencia', 'ciberseguridad', 'espionaje', 'seguridad nacional', 'contraterrorismo'],
'cambio climático': ['cambio climático', 'desastres naturales', 'conservación', 'energía renovable', 'escasez de agua'],
'guerra global': ['conflictos internacionales', 'guerras civiles', 'terrorismo', 'armas', 'alianzas militares'],
'demografía y sociedad': ['sobrepoblación', 'enfermedades', 'migraciones', 'urbanización', 'despoblación rural'],
'economía y corporaciones': ['economía global', 'corporaciones multinacionales', 'comercio internacional', 'organismos financieros', 'desigualdad económica']
}
texto_lower = texto.lower()
for tema, palabras_clave in tematicas.items():
for palabra_clave in palabras_clave:
if palabra_clave in texto_lower:
return tema, palabra_clave
return 'otros', 'general'
# Función para extraer la fecha del nombre del archivo
def extraer_fecha_de_nombre(nombre_archivo):
try:
fecha_str = re.search(r'\d{4}-\d{2}-\d{2}', nombre_archivo).group(0)
return datetime.strptime(fecha_str, '%Y-%m-%d')
except:
return None
# Función para contar palabras en un archivo tokenizado
def contar_palabras(nombre_archivo):
try:
with open(nombre_archivo, 'r', encoding='utf-8') as f:
palabras = f.read().split()
return Counter(palabras)
except Exception as e:
logging.error(f"Error al contar palabras en {nombre_archivo}: {e}")
return Counter()
# Función para comparar dos archivos y calcular el porcentaje de similitud
def comparar_archivos(archivo1, archivo2):
try:
conteo1 = contar_palabras(archivo1)
conteo2 = contar_palabras(archivo2)
palabras_comunes = set(conteo1.keys()) & set(conteo2.keys())
num_palabras_comunes = sum(min(conteo1[p], conteo2[p]) for p in palabras_comunes)
num_palabras_totales = sum(conteo1.values()) + sum(conteo2.values())
if num_palabras_totales == 0:
return 0
porcentaje_similitud = (num_palabras_comunes / num_palabras_totales) * 100
return porcentaje_similitud
except Exception as e:
logging.error(f"Error al comparar archivos {archivo1} y {archivo2}: {e}", exc_info=True)
return 0 # Retornar 0 en caso de error
# Función paralelizada para manejar las comparaciones
def manejar_comparacion_multiproceso(pair):
archivo1, archivo2 = pair
try:
# Inicia MongoDB dentro del proceso
client = init_mongo_client()
db = client['FLUJOS_DATOS']
comparaciones_collection = db['comparaciones']
nombre_archivo1 = os.path.basename(archivo1)
nombre_archivo2 = os.path.basename(archivo2)
porcentaje = comparar_archivos(archivo1, archivo2)
comparacion = {
'noticia1': nombre_archivo1,
'noticia2': nombre_archivo2,
'porcentaje_similitud': porcentaje
}
comparaciones_collection.insert_one(comparacion)
logging.info(f"Guardada comparación entre {nombre_archivo1} y {nombre_archivo2} con {porcentaje:.2f}% de similitud.")
except Exception as e:
logging.error(f"Error al manejar comparación {archivo1} vs {archivo2}: {e}", exc_info=True)
finally:
client.close()
# Función para verificar si el documento ya fue procesado
def documento_ya_subido(nombre_archivo, collection):
return collection.find_one({"archivo": nombre_archivo}) is not None
# Función para subir documentos a MongoDB
def subir_documento_a_mongodb(nombre_archivo, tema, subtema, fecha, texto, collection):
documento = {
'archivo': nombre_archivo,
'tema': tema,
'subtema': subtema,
'fecha': fecha,
'texto': texto # Subimos el texto original
}
try:
collection.insert_one(documento)
logging.info(f"Subido documento: {nombre_archivo} con tema: {tema}, subtema: {subtema}.")
except Exception as e:
logging.error(f"Error al subir documento {nombre_archivo}: {e}")
# Función para procesar documentos y subirlos a MongoDB
def procesar_documentos(directorio, collection):
archivos = [os.path.join(directorio, f) for f in os.listdir(directorio)]
print(f"Procesando {len(archivos)} archivos en el directorio: {directorio}")
# Subir documentos a MongoDB
with tqdm(total=len(archivos), desc=f"Subiendo documentos a MongoDB ({collection.name})", ncols=100) as pbar:
for archivo in archivos:
nombre_archivo = os.path.basename(archivo)
if documento_ya_subido(nombre_archivo, collection):
logging.info(f"Saltando {nombre_archivo}, ya está subido.")
pbar.update(1)
continue
fecha = extraer_fecha_de_nombre(nombre_archivo)
try:
with open(archivo, 'r', encoding='utf-8') as f:
texto_original = f.read()
texto_preprocesado = preprocesar_texto(texto_original)
tema, subtema = asignar_tema_y_subtema(texto_preprocesado)
subir_documento_a_mongodb(nombre_archivo, tema, subtema, fecha, texto_original, collection)
except Exception as e:
logging.error(f"Error al procesar archivo {archivo}: {e}")
pbar.update(1)
# Función mejorada para manejar las comparaciones con menor uso de RAM
def manejar_comparaciones_multiproceso(directorios_tokenized):
try:
archivos_tokenizados = []
for directorio in directorios_tokenized:
archivos_directorio = [os.path.join(directorio, f) for f in os.listdir(directorio)]
archivos_tokenizados.append(archivos_directorio)
total_pairs = 0
# Procesar combinaciones para reducir el uso de memoria
for i in range(len(archivos_tokenizados)):
for j in range(i+1, len(archivos_tokenizados)):
archivos1 = archivos_tokenizados[i]
archivos2 = archivos_tokenizados[j]
num_archivos1 = len(archivos1)
num_archivos2 = len(archivos2)
logging.info(f"Comparando {num_archivos1} archivos de {directorios_tokenized[i]} con {num_archivos2} archivos de {directorios_tokenized[j]}")
# Procesar por bloques
for idx1 in range(0, num_archivos1, BATCH_SIZE):
batch_archivos1 = archivos1[idx1:idx1+BATCH_SIZE]
for idx2 in range(0, num_archivos2, BATCH_SIZE):
batch_archivos2 = archivos2[idx2:idx2+BATCH_SIZE]
# Usar un generador para los pares
def pair_generator():
for a1 in batch_archivos1:
for a2 in batch_archivos2:
yield (a1, a2)
total_pairs_in_batch = len(batch_archivos1) * len(batch_archivos2)
total_pairs += total_pairs_in_batch
logging.info(f"Procesando batch de {total_pairs_in_batch} pares")
with Pool(processes=NUM_PROCESOS) as pool:
list(tqdm(
pool.imap_unordered(manejar_comparacion_multiproceso, pair_generator()),
total=total_pairs_in_batch,
desc=f"Comparando archivos",
ncols=100
))
logging.info(f"Total de pares comparados: {total_pairs}")
except Exception as e:
logging.error(f"Error en manejar_comparaciones_multiproceso: {e}", exc_info=True)
def main():
try:
# Rutas absolutas de los archivos en formato txt
carpeta_noticias_txt = '/var/www/theflows.net/flujos/FLUJOS_DATOS/NOTICIAS/articulos'
carpeta_wikipedia_txt = '/var/www/theflows.net/flujos/FLUJOS_DATOS/WIKIPEDIA/articulos_wikipedia'
carpeta_torrents_txt = '/var/www/theflows.net/flujos/FLUJOS_DATOS/TORRENTS/TORRENTS_WIKILEAKS_COMPLETO/txt'
# Carpetas con los archivos tokenizados para hacer las comparaciones
carpeta_noticias_tokenized = '/var/www/theflows.net/flujos/FLUJOS_DATOS/NOTICIAS/tokenized'
carpeta_wikipedia_tokenized = '/var/www/theflows.net/flujos/FLUJOS_DATOS/WIKIPEDIA/articulos_tokenizados'
carpeta_torrents_tokenized = '/var/www/theflows.net/flujos/FLUJOS_DATOS/TORRENTS/TORRENTS_WIKILEAKS_COMPLETO/tokenized'
# Iniciar cliente MongoDB
client = init_mongo_client()
# Subir las noticias, artículos de Wikipedia y TORRENTS a MongoDB en formato txt
# print("Subiendo archivos originales de Noticias a MongoDB...")
# logging.info("Iniciando subida de noticias a MongoDB")
# procesar_documentos(carpeta_noticias_txt, client['FLUJOS_DATOS']['noticias'])
# logging.info("Finalizada subida de noticias a MongoDB")
#print("Subiendo archivos originales de Wikipedia a MongoDB...")
#logging.info("Iniciando subida de Wikipedia a MongoDB")
#procesar_documentos(carpeta_wikipedia_txt, client['FLUJOS_DATOS']['wikipedia'])
#logging.info("Finalizada subida de Wikipedia a MongoDB")
print("Subiendo archivos originales de TORRENTS a MongoDB...")
logging.info("Iniciando subida de TORRENTS a MongoDB")
procesar_documentos(carpeta_torrents_txt, client['FLUJOS_DATOS']['torrents'])
logging.info("Finalizada subida de TORRENTS a MongoDB")
# ==> Sólo comparaciones Wikipedia vs Wikipedia <==
print("Comparando textos tokenizados de Wikipedia entre sí...")
logging.info("Iniciando comparaciones sólo de Wikipedia")
manejar_comparaciones_multiproceso([
carpeta_wikipedia_tokenized,
carpeta_wikipedia_tokenized
])
logging.info("Finalizadas comparaciones de Wikipedia")
# print("Comparando textos tokenizados entre Noticias, Wikipedia y TORRENTS...")
# logging.info("Iniciando comparaciones entre textos tokenizados")
# manejar_comparaciones_multiproceso([carpeta_noticias_tokenized, carpeta_wikipedia_tokenized, carpeta_torrents_tokenized])
# logging.info("Finalizadas comparaciones entre textos tokenizados")
except Exception as e:
logging.error(f"Error en la ejecución del script: {e}", exc_info=True)
if __name__ == "__main__":
main()

View file

@ -0,0 +1,7 @@
transformers==4.10.0
tensorflow==2.17.0
scikit-learn==0.24.2
pandas==1.3.2
numpy==1.19.5
elasticsearch==7.13.4
nltk==3.6.2

69
FLUJOS_DATOS/DOCS/ELASTIC.txt Executable file
View file

@ -0,0 +1,69 @@
PROYECTO FLUJOS: DOCUMENTACIÓN
===================================================================================================
1. BASE DE DATOS (ELASTICSEARCH)
a. Instalación:
# Sigue las instrucciones de la página oficial para descargar e instalar Elasticsearch y Kibana.
b. Configuración de Elasticsearch:
# AÑADE O MODIFICA las siguientes líneas en el archivo elasticsearch.yml con tu editor de texto preferido, por ejemplo:
nano config/elasticsearch.yml
network.host: localhost
http.port: 9200
c. Inicio de Elasticsearch:
# Desde la carpeta de Elasticsearch, ejecuta:
bin/elasticsearch
d. Verificación:
# Ejecuta el siguiente comando para verificar:
curl -X GET "http://localhost:9200/"
===================================================================================================
2. SCRAPER (scraper.py)
a. Ejecución:
# Asegúrate de estar en el directorio correcto y ejecuta:
python3 scraper.py
===================================================================================================
3. PROCESAMIENTO Y GUARDADO (guardar_datos.py)
a. Ejecución:
# Asegúrate de estar en el directorio correcto y ejecuta:
python3 guardar_datos.py
===================================================================================================
4. KIBANA
a. Configuración:
# AÑADE O MODIFICA las siguientes líneas en el archivo kibana.yml con tu editor de texto preferido, por ejemplo:
nano config/kibana.yml
elasticsearch.hosts: ["http://localhost:9200"]
b. Inicio de Kibana:
# Desde la carpeta de Kibana, ejecuta:
bin/kibana
c. Acceso a Kibana:
# Abre tu navegador y ve a:
http://localhost:5601
===================================================================================================
sito@SIT0:~/PROGRAMACION/FLUJOS_TODO/FLUJOS_DATOS/elasticsearch-8.10.0/bin$ ./elasticsearch-reset-password -u elastic
This tool will reset the password of the [elastic] user to an autogenerated value.
The password will be printed in the console.
Please confirm that you would like to continue [y/N]Y
Password for the [elastic] user successfully reset.
New value: VFe09fj6X*jqSZpyqZrb
sito@SIT0:~/PROGRAMACION/FLUJOS_TODO/FLUJOS_DATOS/elasticsearch-8.10.0/bin$

112
FLUJOS_DATOS/DOCS/LEEME.txt Executable file
View file

@ -0,0 +1,112 @@
=============================================================================
DOCUMENTACIÓN DEL PROYECTO FLUJOS
=============================================================================
INTRODUCCIÓN:
-------------
El proyecto FLUJOS es una aplicación web diseñada para unir noticias y eventos del pasado para entender la historia como una sucesion de eventos .
Combatir la desinformacion es el principal objetivo del proeycto .
ESTRUCTURA DEL PROYECTO:
-------------------------
El proyecto FLUJOS está organizado de la siguiente manera:
- /flujos: Carpeta principal del proyecto.
- /BACK: Contiene los archivos y scripts relacionados con la parte del servidor y la base de datos.
- /FRONT: Contiene los archivos de la aplicación web del lado del cliente.
- /TENSOR_FLOW: Carpeta que alberga los componentes relacionados con TensorFlow y la inteligencia artificial.
- /DOCUMENTACIÓN: Documentación técnica y de usuario.
INSTALACIÓN:
------------
Para configurar y ejecutar el proyecto FLUJOS, sigue estos pasos:
1. Clona el repositorio desde GitLab:
git clone https://gitlab.com/tu-usuario/flujos.git
2. Crea y activa un entorno virtual:
python3 -m venv env
source env/bin/activate
3. Instala las dependencias:
pip install -r requirements.txt
4. Configura la base de datos y realiza las migraciones:
python manage.py migrate
5. Crea un superusuario para administrar la aplicación:
python manage.py createsuperuser
EJECUCIÓN:
----------
Para ejecutar el proyecto FLUJOS en un entorno de desarrollo local, utiliza el siguiente comando:
python manage.py runserver
El proyecto estará disponible en http://localhost:8000/.
ESTRUCTURA DEL PROYECTO (DETALLES):
-------------------------------------
- /BACK: Esta carpeta contiene la lógica del servidor Django y se encarga de la autenticación de usuarios y la gestión de la base de datos.
- /FRONT: Aquí se encuentran los archivos estáticos y la interfaz de usuario de la aplicación web.
- /TENSOR_FLOW: Carpeta dedicada a las implementaciones de TensorFlow y el procesamiento de datos relacionado con la inteligencia artificial.
AUTENTICACIÓN DE USUARIOS:
--------------------------
El sistema de autenticación de usuarios permite a los usuarios registrarse, iniciar sesión y gestionar sus cuentas de usuario. Los datos se almacenan en una base de datos Elasticsearch.
ENVÍO DE CORREOS ELECTRÓNICOS:
-------------------------------
El proyecto FLUJOS incluye un sistema de envío de correos electrónicos para funciones como verificación de correo electrónico y recuperación de contraseñas.
SEGURIDAD Y PRIVACIDAD:
-----------------------
El proyecto FLUJOS se preocupa por la seguridad y privacidad de los usuarios y emplea medidas de seguridad estándar.
IMPLEMENTACIÓN DE PGP:
----------------------
El proyecto utiliza PGP para garantizar la seguridad de las comunicaciones entre periodistas y la aplicación web.
PRUEBAS:
--------
Para ejecutar las pruebas unitarias y de integración, utiliza el siguiente comando:
python manage.py test
DESPLEGUE:
----------
El despliegue del proyecto FLUJOS en un entorno de producción requiere [Instrucciones y mejores prácticas para desplegar el proyecto en un entorno de producción real].
CONTRIBUCIONES:
---------------
¡Agradecemos las contribuciones! Si deseas contribuir al proyecto, sigue las pautas en [Enlace a las pautas de contribución en GitLab].
CONTACTO:
---------
Para obtener ayuda o más información, comunícate con [Información de contacto].
LICENCIA:
---------
Este proyecto se distribuye bajo la licencia [Nombre de la licencia]. Consulta el archivo LICENSE para más detalles.
=============================================================================

33
FLUJOS_DATOS/DOCS/MANIFEST.txt Executable file
View file

@ -0,0 +1,33 @@
Since the beginning of the human era , we have had access to information , by asking , by reading , by watching .
But wasnt until the greedinesh of a few that appeard , that this access to information was limited .
What you denny submits you , what you accept transforms you .
Public information should be free to everybody .
Private information should be protected , so that no goverment or person cant apply to much power .
Dont trust the authority or the authority will eat your privileges .
One image talks more than 1000 words .
One graph relates more than 1000 talks .
The ability to correlate actions with speeches and vice versa
gives you the power to know about the past .
He who controls the past controls the future .
He who controls the present controls the past .
LOS GIGANTES VISTOS EN PERSPECTIVA
PARECEN MARIONETAS
Lo que hay que tener es una premisa bien clara :
Sin miedo no hay limites y sin limites no hay control.
Sin control no hay limities y sin limites no hay miedo .
La cuestion no es cuando , la cuestion es como
Sabes , que hay debajo del asfalto ?
EL MAR .

View file

@ -0,0 +1,108 @@
┌──────────────────────────────────────────────────────────────────────────────────────────┐
│ FLUJOS_APP.js /api/data │
└──────────────────────────────────────────────────────────────────────────────────────────┘
▲ ▲
│ │
│ │
HTTP GET MongoDB
/api/data?tema=… Collections
│ ┌─────────────┐
│ │ noticias │
│ ├─────────────┤
│ │ wikipedia │
│ ├─────────────┤
│ │ torrents │
│ ├─────────────┤
│ │ comparaciones│
│ └─────────────┘
│ │
│ │
▼ ▼
┌───────────────────────────────┐ ┌────────────────────────────────┐
│ 1) Construcción de nodesQuery │ │ 3) Construcción de linksQuery │
├───────────────────────────────┤ ├────────────────────────────────┤
│ let nodesQuery = { │ │ let linksQuery = { │
│ tema: <tema>, │ │ porcentaje_similitud: { │
│ ...(subtematica?) │──┐ │ $gte: <complejidadMin> │
│ ...(palabraClave?) │ │ │ }, │
│ ...(fechaInicio/fechaFin?) │ │ │ noticia1: { $in: nodeIds }, │
│ } │ │ │ noticia2: { $in: nodeIds } │
└───────────────────────────────┘ │ └────────────────────────────────┘
│ │ │
│ │ │
│ │ │
▼ │ ▼
┌──────────────────────────────────────────────────────────────────────────────────────────┐
│ 2) Búsqueda de nodos (Promise.all) │
├──────────────────────────────────────────────────────────────────────────────────────────┤
│ const [wN, nN, tN] = await Promise.all([ │
│ wikipedia.find(nodesQuery).limit(nodosLimit), // → hasta N wikis │
│ noticias.find(nodesQuery).limit(nodosLimit), // → hasta N noticias │
│ torrents.find(nodesQuery).limit(nodosLimit) // → hasta N torrents │
│ ]); │
│ │
│ // Formateo a “Graph Nodes”: │
│ formattedNodes = [...wN, ...nN, ...tN].map(doc ⇒ ({ │
│ id: doc.archivo.trim(), // identificador único │
│ group: doc.subtema || 'sinSub', // color/agrupación visual │
│ tema: doc.tema, // metadato │
│ content: doc.texto, // para mostrar al hacer clic │
│ fecha: doc.fecha // filtrado por fecha │
│ })); │
└──────────────────────────────────────────────────────────────────────────────────────────┘
│ // Extraer lista de IDs de nodos
│ nodeIds = formattedNodes.map(n ⇒ n.id)
┌──────────────────────────────────────────────────────────────────────────────────────────┐
│ 4) Búsqueda de enlaces (comparaciones.find) │
├──────────────────────────────────────────────────────────────────────────────────────────┤
│ const links = await comparaciones.find(linksQuery).toArray(); │
│ │
│ // linksQuery: │
│ // { porcentaje_similitud: {$gte:Min}, noticia1:{$in:nodeIds}, noticia2:{$in:nodeIds} } │
│ │
│ // Formateo a “Graph Links”: │
│ formattedLinks = links.map(l ⇒ ({ │
│ source: l.noticia1.trim(), // coincide con node.id │
│ target: l.noticia2.trim(), // idem │
│ value: l.porcentaje_similitud // grosor de la arista │
│ })); │
└──────────────────────────────────────────────────────────────────────────────────────────┘
┌──────────────────────────────────────────────────────────────────────────────────────────┐
│ 5) Respuesta al cliente │
├──────────────────────────────────────────────────────────────────────────────────────────┤
│ res.json({ │
│ nodes: formattedNodes, // array de {id, group, tema, content, fecha} │
│ links: formattedLinks // array de {source, target, value} │
│ }); │
└──────────────────────────────────────────────────────────────────────────────────────────┘
fetch('/api/data?...')
┌──────────────────────────────────────────────────────────────────────────────────────────┐
│ output_glob_war_prueba.js │
├──────────────────────────────────────────────────────────────────────────────────────────┤
│ • Inicializa ForceGraph3D (contenedor DOM) │
│ • getData(paramsObj) │
│ └─ construye URL: '/api/data?tema=guerra%20global&...' │
│ └─ fetch → recibe {nodes,links} │
│ └─ filtra enlaces erróneos (source/target no existentes) │
│ • graph.graphData(data) // renderiza nodos + enlaces │
│ • UI: onNodeClick → showNodeContent(), sidebar form → re-getData() │
└──────────────────────────────────────────────────────────────────────────────────────────┘

View file

@ -0,0 +1,12 @@
========================
INICIAR MONGODB
========================
sudo systemctl start mongo
========================
INICIAR FLUJOS
=======================
node /flujos/FLUJOS/BACK_BACK/FLUJOS_APP.js

View file

@ -0,0 +1,26 @@
import pandas as pd
def txt_to_csv(filename):
with open(filename, 'r') as f:
headlines_and_summaries = f.read().split('\n')[:-1] # Elimina la última línea vacía
# Separa los titulares y los resúmenes en dos listas
headlines = headlines_and_summaries[::2]
summaries = headlines_and_summaries[1::2]
# Crea un DataFrame
df = pd.DataFrame({
'headline': headlines,
'summary': summaries
})
# Guarda el DataFrame como CSV
df.to_csv('news.csv', index=False)
url = "https://www.bbc.com/news" # Cambia esto por la URL que quieras
news = get_news(url)
save_to_txt(news, 'news.txt')
txt_to_csv('news.txt')

View file

@ -0,0 +1,31 @@
import requests
from bs4 import BeautifulSoup
def get_news(url):
# Obtén la página
response = requests.get(url)
# Parsea la página con BeautifulSoup
soup = BeautifulSoup(response.text, 'html.parser')
# Encuentra los artículos (en este caso, los artículos de noticias están en divs con la clase 'gs-c-promo-body')
articles = soup.find_all('div', class_='gs-c-promo-body')
news = []
# Itera sobre los artículos y extrae el texto
for article in articles:
headline = article.find('h3').text
summary = article.find('p').text
news.append((headline, summary))
return news
def save_to_txt(news, filename):
with open(filename, 'w') as f:
for headline, summary in news:
f.write(headline + '\n')
f.write(summary + '\n')

View file

@ -0,0 +1,45 @@
import requests
from bs4 import BeautifulSoup
from elasticsearch import Elasticsearch
# Inicializar conexión a Elasticsearch con autenticación y usando https
es = Elasticsearch(
hosts=[{'host': 'localhost', 'port': 9200, 'scheme': 'https'}],
basic_auth=('jesucristo_garcia', 'JESUCRISTO_/garcia'),
verify_certs=False # Si no tienes un certificado SSL válido, desactiva la verificación
)
def scrape_wikipedia(url):
response = requests.get(url)
if response.status_code == 200:
soup = BeautifulSoup(response.content, 'html.parser')
title = soup.find('title').text
paragraphs = soup.find_all('p')
text = " ".join(paragraph.text for paragraph in paragraphs)
return title, text
else:
print(f'Failed to retrieve {url}')
return None, None
# URLs de las páginas de Wikipedia a scrapear
wikipedia_urls = [
'https://en.wikipedia.org/wiki/OpenAI',
# ... añade más URLs aquí
]
for url in wikipedia_urls:
title, text = scrape_wikipedia(url)
if title and text:
document = {
'title': title,
'text': text,
'source': 'Wikipedia',
'url': url
}
try:
# Indexar en Elasticsearch
es.index(index='documents', document=document)
except Exception as e:
print(f"Error al indexar documento: {e}")
print('Scraping completado.')

View file

@ -0,0 +1,96 @@
Contexto y Objetivo del Proyecto
El proyecto en el que hemos estado trabajando tiene como objetivo procesar, analizar y almacenar noticias mediante un flujo de trabajo automatizado, utilizando tecnologías como Django, Keras/TensorFlow, Elasticsearch, y Flask. Este flujo incluye la ingesta de noticias, su procesamiento mediante un modelo de aprendizaje automático, y el almacenamiento de las relaciones encontradas entre las noticias en Elasticsearch, todo para ser posteriormente visualizado y consultado a través de un servidor Express con ForceGraph3D.
Pasos Clave Desarrollados
Configuración del Entorno de Desarrollo:
Entorno Virtual: Configuración de un entorno virtual utilizando venv para aislar las dependencias del proyecto.
Instalación de Dependencias: Instalación de las bibliotecas necesarias como transformers, pandas, tensorflow, elasticsearch, entre otras, para poder desarrollar y ejecutar los scripts.
Scripts Desarrollados:
entrada.py:
Funcionalidad: Permite la entrada manual de noticias, guarda cada noticia en un archivo .txt.
Mejora: Se integró una función de preprocesamiento para limpiar las noticias (eliminar puntuación, convertir a minúsculas, eliminar stopwords) antes de guardarlas.
procesador_txt.py:
Funcionalidad: Preprocesa y tokeniza los textos usando NLTK y el tokenizador BERT en español.
Mejora: Procesa todos los archivos .txt en un directorio y guarda los textos tokenizados en un archivo CSV, manejando errores como la falta de archivos para procesar.
train_model.py:
Funcionalidad: Define y entrena un modelo de red neuronal con Keras utilizando los datos tokenizados guardados en un CSV.
Mejora: Se añadió manejo de errores para problemas con los datos de entrada, y se aseguraron las longitudes de las secuencias para un entrenamiento adecuado.
guardar_datos.py:
Funcionalidad: Calcula las relaciones entre las noticias basadas en la similitud de sus representaciones incrustadas, y guarda estas relaciones en Elasticsearch.
Mejora: Manejo de errores para problemas de conexión con Elasticsearch y otros posibles problemas durante la ejecución.
run_all.py:
Funcionalidad: Orquesta la ejecución de los otros scripts en un orden secuencial, con manejo de errores en cada paso.
Mejora: Incluye capturas de excepciones detalladas para cada parte del flujo, asegurando que los errores sean reportados adecuadamente.
Estructura del Proyecto:
Se sugirió y documentó una estructura organizada para el proyecto que incluye directorios para los scripts (KERAS/), modelos (TENSOR_FLOW/models/), datos (DATA/), y configuraciones (flask_api/, elasticsearch-7.15.0/).
Automatización del Flujo de Trabajo:
Automatización: Se desarrolló run_all.py como un script maestro que ejecuta todos los otros scripts de manera secuencial.
Pruebas: Se realizaron pruebas para asegurarse de que cada paso del proceso funcione correctamente y con un manejo de errores robusto.
Integración y Pruebas:
Se probaron las funcionalidades principales del flujo de trabajo, desde la ingesta y procesamiento de noticias hasta el almacenamiento de los resultados en Elasticsearch.
Resumen de los Scripts
entrada.py:
Propósito: Entrada manual de noticias y preprocesamiento.
Funciones Principales:
guardar_noticia(noticia, nombre_archivo): Guarda la noticia en un archivo .txt.
limpiar_noticia(noticia): Realiza el preprocesamiento de la noticia.
main(): Orquesta la entrada y guardado de noticias.
procesador_txt.py:
Propósito: Preprocesamiento y tokenización de noticias.
Funciones Principales:
tokenize_file(filename): Tokeniza un archivo de texto usando BERT.
tokenize_all_files_in_directory(directory_path): Procesa todos los archivos .txt en un directorio.
save_tokenized_texts_to_csv(tokenized_texts, output_file): Guarda los textos tokenizados en un archivo CSV.
main(): Orquesta el proceso de tokenización y guardado en CSV.
train_model.py:
Propósito: Entrenamiento del modelo de red neuronal.
Funciones Principales:
Cargar datos tokenizados desde un CSV.
Definir, compilar y entrenar el modelo con Keras.
Guardar el modelo entrenado.
guardar_datos.py:
Propósito: Calcular similitudes entre noticias y guardarlas en Elasticsearch.
Funciones Principales:
Cargar el modelo entrenado y los datos.
Calcular similitudes utilizando cosine_similarity.
Guardar los resultados en Elasticsearch.
run_all.py:
Propósito: Orquestar todo el flujo de trabajo.
Funciones Principales:
Ejecutar secuencialmente los scripts anteriores.
Manejar errores y excepciones en cada paso.
Próximos Pasos
Continuar con las Pruebas:
Asegurarse de que todos los pasos se ejecutan correctamente, especialmente la integración final con Elasticsearch.
Documentación:
Documentar todo el flujo de trabajo, incluyendo instrucciones de uso, configuraciones necesarias y posibles errores.
Despliegue en Producción:
Preparar el proyecto para su despliegue en un entorno de producción, incluyendo la configuración del servidor Flask/Express, la base de datos en Elasticsearch y las conexiones necesarias.
Visualización con ForceGraph3D:
Implementar la integración con ForceGraph3D en el servidor Express para visualizar las relaciones entre las noticias almacenadas en Elasticsearch.

View file

@ -0,0 +1,28 @@
FLUJOS_DATOS/ # Directorio raíz del proyecto
|-- elasticsearch-8.10.0/ # Directorio de Elasticsearch
|-- myenv/ # Entorno virtual
|-- FLUJOS_DATOS/ # Proyecto Django
| |-- manage.py # Script de gestión de Django
| |-- FLUJOS/ # App Django principal
| | |-- DATA/ # Código para scrapear y obtener datos
| | |-- keras/ # Código para procesar datos con Keras
| | |-- ...
| |-- noticias/ # App Django para gestionar noticias
| | |-- ...
|-- ...
RECUERDA QUE PARA PODER INICIAR LA BASE DE DATOS DEBES DE
HACER ./bin/elasticsearch dentro de la carpeta de elastic
Esto iniciará Elasticsearch en tu máquina local. Por defecto, Elasticsearch se ejecutará en el puerto 9200.
brutal como se a creado :
ROGRAMACION/FLUJOS_DATOS$ curl -u elastic:zozbw4RjMvJcurl -u elastic:zozbw4RjMvJGOBs3VFUt -k -X POST "https://localhost:9200/_security/user/jesucristo_garcia" -H 'Content-Type: application/json' -d'
{
"password" : "JESUCRISTO_/garcia",
"roles" : [ "superuser"],
"full_name" : "Jesucristo García"
}
'
{"created":true}punchf

View file

@ -0,0 +1,7 @@
tensorflow_hub
numpy
scikit-learn
nltk
beautifulsoup4
requests
elasticsearch

View file

@ -0,0 +1,75 @@
import re
from transformers import BertTokenizer
from collections import Counter
# Lista de palabras comunes en español (stopwords)
stopwords = [
"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", "", "porque", "esta", "son", "entre", "cuando", "muy", "sin", "sobre", "también", "me",
"hasta", "hay", "donde", "quien", "desde", "todo", "nos", "durante", "todos", "uno", "les", "ni",
"contra", "otros", "ese", "eso", "ante", "ellos", "e", "esto", "", "antes", "algunos", "qué",
"unos", "yo", "otro", "otras", "otra", "él", "tanto", "esa", "estos", "mucho", "quienes", "nada",
"muchos", "cual", "poco", "ella", "estar", "estas", "algunas", "algo", "nosotros", "mi", "mis",
"", "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"
]
# Función para limpiar el texto
def limpiar_texto(texto):
texto = texto.lower()
texto = re.sub(r'[^\w\s]', '', texto) # Elimina signos de puntuación
palabras = texto.split()
palabras_limpias = [palabra for palabra in palabras if palabra not in stopwords]
return ' '.join(palabras_limpias)
# Tokenizer BERT
tokenizer = BertTokenizer.from_pretrained('dccuchile/bert-base-spanish-wwm-cased')
# Función para tokenizar y guardar en archivo
def tokenizar_y_guardar(texto, nombre_archivo):
tokens = tokenizer.tokenize(texto)
with open(nombre_archivo, 'w') as f:
for token in tokens:
f.write(token + '\n')
return tokens
# Leer noticias desde archivos de texto
with open('noticia1.txt', 'r') as f:
noticia1 = f.read()
with open('noticia2.txt', 'r') as f:
noticia2 = f.read()
# Paso 1: Limpiar textos
noticia1_limpia = limpiar_texto(noticia1)
noticia2_limpia = limpiar_texto(noticia2)
# Paso 2: Tokenizar y guardar en archivos
tokens_noticia1 = tokenizar_y_guardar(noticia1_limpia, 'tokens_noticia1.txt')
tokens_noticia2 = tokenizar_y_guardar(noticia2_limpia, 'tokens_noticia2.txt')
# Paso 3: Contar palabras y comparar similitud
def contar_palabras(nombre_archivo):
with open(nombre_archivo, 'r') as f:
palabras = f.read().split() # Lee el archivo y divide el texto en palabras
return Counter(palabras) # Cuenta la frecuencia de cada palabra y la devuelve como un Counter
conteo_noticia1 = contar_palabras('tokens_noticia1.txt')
conteo_noticia2 = contar_palabras('tokens_noticia2.txt')
palabras_comunes = set(conteo_noticia1.keys()) & set(conteo_noticia2.keys())
num_palabras_comunes = sum(min(conteo_noticia1[p], conteo_noticia2[p]) for p in palabras_comunes)
num_palabras_totales = sum(conteo_noticia1.values()) + sum(conteo_noticia2.values())
# Paso 4: Calcular porcentaje de similitud
porcentaje_similitud = (num_palabras_comunes / num_palabras_totales) * 100
print(f"Porcentaje de similitud: {porcentaje_similitud:.2f}%")

View file

@ -0,0 +1,25 @@
El PP propone al PSOE cambiar el modelo de elección y renovar el CGPJ «de forma simultánea»
Feijóo: "El objetivo de Sánchez no es renovar el CGPJ sino controlarlo"
El líder del PP, Alberto Núñez Feijóo, ha mostrado su disposición a llegar a un acuerdo con el PSOE para renovar el Consejo General del Poder Judicial (CGPJ). Pero Feijóo pone una condición: tramitar de forma simultánea en el Congreso la futura ley de este órgano judicial para incidir en su independencia. «Se puede hacer de forma simultánea. La pelota de la renovación del Consejo lleva en el Gobierno desde hace un año», ha defendido.
«Hagamos la ley y renovemos el Consejo de forma simultánea. Firmemos un pacto, presentemos a la sociedad y tramitemos la ley. Esto es lo que pretendemos», ha sostenido Feijóo este martes en una entrevista concedida a la Cadena Cope. El presidente del PP aboga por esta medida «en consonancia con lo que reclama la UE» y en respuesta al compromiso de la formación de Feijóo con la «regeneración institucional» del país.
El líder de los populares propone esta medida debido que, a su juicio, el objetivo del presidente del Gobierno, Pedro Sánchez, «no es renovar el Consejo General del Poder Judicial, sino controlar a los miembros del Consejo». «Mi objetivo es acabar con el control político de las instituciones. Renovación sí; control político, no», ha recalcado.
«Creo en la independencia judicial. Voy a hacer todo lo posible por la regeneración institucional de mi país. Es necesario y, después de Sánchez, imprescindible», ha apostillado.
«Bolaños mintió»
Alberto Núñez Feijóo ha acusado también al ministro de Presidencia y Justicia, Félix Bolaños, de «mentir de forma descarada» en las negociaciones que mantuvieron en su momento para renovar el CGPJ debido a que, mientras tanto, pactó con los partidos separatistas la derogación del delito de sedición y la rebaja del de malversación. «Verle como notario mayor del Reino no tranquiliza a nadie», ha remarcado.
El líder del PP le trasladó esta cuestión a Pedro Sánchez, que «se calló». Además, critica al Ejecutivo por acusar al PP de «boicotear» la renovación del órgano de gobierno del Poder Judicial.
«Por lo tanto, este montaje ahora de decir que el PP no quiere renovar el CGPJ es falso, absolutamente falso. Lo que no queremos obviamente es que el Consejo cabe como la Fiscalía General del Estado, como el Tribunal Constitucional, como el Consejo de Estado, es decir, con un control político de las instituciones», ha advertido. «El objetivo de Sánchez no es renovar el Consejo General del Poder Judicial, sino controlar los miembros del Consejo, que es una cosa absolutamente distinta», ha reiterado.
«Impunidad judicial»
Alberto Núñez Feijóo considera que el PSOE recurre a su «argumentario» habitual para criticar al PP en torno a la renovación del CGPJ para intentar tapar la crisis diplomática con Israel o el doble varapalo judicial que sufrió la semana pasada: la anulación del Tribunal Supremo del nombramiento de la presidenta del Consejo de Estado, Magdalena Valerio, y la declaración «no idónea» de Álvaro García Ortiz como fiscal general del Estado.
«El Gobierno de Sánchez ha comprado siete votos a cambio de la impunidad judicial, siendo una amoralidad y una desvergüenza, y que está sustentado sobre la mentira electoral del no a la amnistía», ha señalado. «La España en que nacimos y crecimos se mantenga como Estado; con un régimen de libertades y separación de poderes, en el que rija la concordia, gobernado por un Ejecutivo honesto y decente», ha zanjado.

View file

@ -0,0 +1,45 @@
Finiquitado el ciclo electoral con las europeas del pasado domingo, el presidente del Gobierno ha retomado este miércoles la enquistada renovación del Consejo General del Poder Judicial. Después de cinco años y medio persistiendo en el bloqueo, con mediación europea incluida, el Partido Popular —primero con Pablo Casado y ahora con Alberto Núñez Feijóo—no ha renunciado a ninguna de sus condiciones para renovar un CGPJ que controla y Pedro Sánchez parece haber tomado la firme decisión —ya amagó con ello en 2020— de dar un paso al frente si no hay un acuerdo con los de Feijóo en las próximas dos semanas.
Así lo ha dicho este miércoles. En el PP lo han interpretado como un "ultimátun inaceptable", un "chantaje" y una "bravuconada", que no busca el acuerdo, dicen, sino cambiar la conversación pública para "tapar sus derrotas en las elecciones y en las Cortes Generales". Las formas no han gustado nada a los populares, pero sobre el fondo de la alternativa que Sánchez ha puesto encima de la mesa hay menos rotundidad en la respuesta.
Lo que Sánchez ha esbozado durante una entrevista concedida a RTVE es que está dispuesto a impulsar su propia reforma "para acabar con esta situación inaceptable" en el CGPJ. Si bien no ha aterrizado cómo, el presidente del Gobierno ha querido darle pistas al PP: "El incentivo perverso que tiene el PP para bloquear es la facultad que tiene esa institución para nombrar a magistrados que van al Supremo o a los tribunales superiores de justicia. Deberíamos revisar esa facultad para hacerla más objetiva y más transparente y menos politizada", señaló.
Cuando el PP rechazó la vía Guilarte
En el mes de diciembre, el presidente en funciones del CGPJ, Vicente Guilarte, firmó una columna de opinión en el diario El País en la que planteaba una fórmula no explorada hasta entonces por los partidos que, a su juicio, podría facilitar la renovación. Guilarte exponía entonces que si recortaban las competencias del órgano de gobierno de los jueces para que no pueda realizar nombramientos discrecionales de altos cargos judiciales, los partidos perderían interés en él.
Guilarte acabó enviando su propuesta al Congreso, a título personal, en el mes de abril. El PP la rechazó así: "Todo mi respeto, pero la realidad es que estamos en conversaciones con el PSOE y nuestra postura no ha cambiado: renovación del CGPJ y, al mismo tiempo, renovación de la norma que nos permite profundizar en la despolitización del Poder Judicial", afirmaba Miguel Tellado, portavoz del partido en el Congreso.
Esas conversaciones a las que se refería Tellado incluían también a la Comisión Europea, pero ya estaban congeladas. Hubo tres encuentros entre Félix Bolaños, por la parte socialista, Esteban González Pons, por la popular, y el comisario de Justicia de la Unión Europa, Didier Reynders, que les dio dos meses para llegar a un acuerdo en enero. El acuerdo sigue lejos ahora y han pasado seis meses.
¿Y la Comisión Europea?
Pero el PP, que, como contó este medio, hace tiempo ha dado por fracasada esa mediación que ellos mismos forzaron, insiste en implicar a las instituciones europeas. Este miércoles, Bolaños ha enviado un mensaje a Pons para reunirse el viernes e intentar llegar a un acuerdo sobre el CGPJ.
Varias horas después de este contacto, fuentes del PP informaban de que Pons se había dirigido a la vicepresidenta de la Comisión Europea, Věra Jourová, "para informarle del intento del presidente del Gobierno de desestabilizar la negociación mantenida con el Partido Popular y con la supervisión del Gobierno comunitario para la mejora del modelo judicial de nuestro país" y pedirle "un encuentro a tres con carácter urgente".
Ante esta respuesta, fuentes del PSOE destacan su "alegría" porque el PP vuelva a querer reunirse con ellos para renovar el CGPJ. "Es una gran noticia", apuntaban. Pero en Ferraz recuerdan que los socialistas llevan solicitando a la Comisión Europea y al PP que se celebre una nueva reunión desde que el PP canceló el encuentro propuesto por el comisario Reynders y acordado por los dos partidos para el 27 de marzo en Madrid.
Placa a la entrada de la sede del Consejo general del Poder Judicial, en el edificio del Tribunal Supremo, en Madrid. EUROPA PRESS/Fernando Sánchez
Un grupo de jueces usa el CGPJ para enviar una guía contra la amnistía
Concretamente, apuntan que se han dirigido a la Comisión y al PP para celebrar una reunión los días 11 de abril, 3 de mayo y 22 de mayo. "Además, ha habido otros intentos de reunión bilateral PSOE-PP, a iniciativa siempre del PSOE", añade. "Sin embargo, en estos casi tres meses, el PP se ha negado a avanzar en el diálogo estructurado para la renovación del CGPJ", destacan.
Y para cerrar el día, fuentes gubernamentales informaban sobre un nuevo contacto. El de Bolaños con Jourová. El objetivo ha sido "trasladarle su voluntad de celebrar una reunión con el PP para reanudar las negociaciones para desbloquear la renovación del CGPJ este próximo viernes en Madrid si se puede desplazar o la próxima semana en Bruselas".
En Génova insisten en que no confían en el ministro de Presidencia, Justicia y Relaciones con las Cortes y por eso quieren las instituciones europeas presencien el diálogo. Hace un par de meses desde el Gobierno sí que trasladaron que la Comisión Europea debería emitir algún tipo de mensaje sobre las negociaciones. Algo que hasta la fecha no ha sucedido y los socialistas han decidido dar un paso adelante.
Miembros de la dirección nacional del PP reconocen a este medio que la propuesta de Guilarte —es decir, la que Sánchez ha puesto ahora sobre la mesa— sí podría "ir en la dirección de despolitizar la justicia" que ellos han defendido, pero también insisten en que es imprescindible reformar el sistema de elección de los jueces. Y aquí es donde los populares permanecen enrocados.
Las excusas del PP
En el PSOE están decididos a dar este paso si el PP no cede. El lunes, la portavoz socialista, Esther Peña, insistió en que a los populares se les han acabado las "excusas", una vez han pasado las elecciones europeas. Pero al mismo tiempo son conscientes de que el partido que lidera Feijóo no tiene voluntad para llegar a ningún acuerdo. Las excusas dadas en los últimos cinco años se cifran en Moncloa en prácticamente una treintena.
Realmente Sánchez ya había dejado la puerta abierta a estudiar el modelo que propone Guilarte sobre el CGPJ hace unos cuantos meses. Concretamente a principios de diciembre, en el marco de las celebraciones del Día de la Constitución. En ese contexto, el presidente usó además unas palabras similares a las de este jueves. "El PP tiene ese incentivo para tener secuestrado al poder judicial", destacó entonces. Poco después llamaría a Feijóo para una reunión en la que el CGPJ estuvo sobre la mesa y desembocó en la mediación de Bruselas.
El hartazgo de los socialistas con ciertas maniobras judiciales, tanto sobre el entorno familiar de Sánchez como con la próxima aplicación de la amnistía, es mayúsculo. Han reaccionado de forma directa, especialmente contra el juez Peinado, que investiga a la esposa del líder socialista, Begoña Gómez. Algo que no ha sido bien recibido por el CGPJ pero que fue contestado de nuevo por el PSOE pidiéndoles que "no hagan política".
La cuestión ahora es si el PP decide descolgarse definitivamente de la renovación del CGPJ y permite —de llegar a producirse—que se elimine su competencia de hacer nombramientos. O, por otra parte, si Feijóo acepta llegar a un acuerdo con Sánchez que llegó a estar prácticamente hecho y se frustró por unas presiones internas que solo han ido a más.

View file

@ -0,0 +1,425 @@
pp
propone
ps
##oe
cambiar
modelo
elección
renovar
c
##g
##p
##j
forma
simultánea
fe
##ij
##ó
##o
objetivo
##n
##chez
renovar
c
##g
##p
##j
sino
controlar
##lo
líder
pp
alber
##to
n
##ú
##ñez
fe
##ij
##ó
##o
mostrado
disposición
llegar
acuerdo
ps
##oe
renovar
consejo
general
poder
judicial
c
##g
##p
##j
fe
##ij
##ó
##o
pone
condición
trami
##tar
forma
simultánea
congreso
futura
ley
órgano
judicial
inci
##dir
independencia
puede
hacer
forma
simultánea
pelota
renovación
consejo
lleva
gobierno
hace
año
defendido
hagamos
ley
renov
##emos
consejo
forma
simultánea
firme
##mos
pacto
presente
##mos
sociedad
trami
##temos
ley
pretende
##mos
sostenido
fe
##ij
##ó
##o
martes
entrevista
concedida
cadena
co
##pe
presidente
pp
abo
##ga
medida
consonancia
reclam
##a
u
##e
respuesta
compromiso
formación
fe
##ij
##ó
##o
regeneración
institucional
país
líder
populares
propone
medida
debido
juicio
objetivo
presidente
gobierno
ped
##ro
##n
##chez
renovar
consejo
general
poder
judicial
sino
controlar
miembros
consejo
objetivo
acabar
control
político
instituciones
renovación
control
político
recal
##cado
creo
independencia
judicial
voy
hacer
posible
regeneración
institucional
país
necesario
después
##n
##chez
imprescindible
apos
##tilla
##do
bola
##ños
mintió
alber
##to
n
##ú
##ñez
fe
##ij
##ó
##o
acusado
ministro
presidencia
justicia
##li
##x
bola
##ños
mentir
forma
descar
##ada
negociaciones
mantuvieron
momento
renovar
c
##g
##p
##j
debido
mientras
pac
##tó
partidos
separa
##tistas
deroga
##ción
delito
sedi
##ción
reba
##ja
mal
##versa
##ción
verle
notar
##io
mayor
reino
tranquiliz
##a
nadie
rema
##r
##cado
líder
pp
trasladó
cuestión
ped
##ro
##n
##chez
cal
##ló
además
critic
##a
ejecutivo
acusa
##r
pp
bo
##ico
##tear
renovación
órgano
gobierno
poder
judicial
montaje
ahora
decir
pp
quiere
renovar
c
##g
##p
##j
falso
absolutamente
falso
queremos
obviamente
consejo
cabe
fiscalía
general
tribunal
constitucional
consejo
decir
control
político
instituciones
adver
##tido
objetivo
##n
##chez
renovar
consejo
general
poder
judicial
sino
controlar
miembros
consejo
cosa
absolutamente
distinta
reitera
##do
impunidad
judicial
alber
##to
n
##ú
##ñez
fe
##ij
##ó
##o
considera
ps
##oe
recur
##re
argument
##ario
habitual
criticar
pp
torno
renovación
c
##g
##p
##j
intentar
tapa
##r
crisis
diplomática
israel
doble
var
##apa
##lo
judicial
sufrió
semana
pasada
anulación
tribunal
supremo
nombramiento
presidenta
consejo
mag
##dalena
valer
##io
declaración
idón
##ea
ál
##var
##o
gar
##cía
or
##tiz
fiscal
general
gobierno
##n
##chez
comprado
siete
votos
cambio
impunidad
judicial
siendo
amor
##alidad
[UNK]
sustent
##ado
mentira
electoral
am
##nistía
señalado
españ
##a
naci
##mos
cre
##cimos
mantenga
régimen
libertades
separación
poderes
ri
##ja
concord
##ia
gobern
##ado
ejecutivo
honesto
decente
zan
##jado

View file

@ -0,0 +1,891 @@
fin
##i
##quita
##do
ciclo
electoral
europeas
pasado
domingo
presidente
gobierno
retom
##ado
miércoles
en
##quista
##da
renovación
consejo
general
poder
judicial
después
cinco
años
medio
persist
##iendo
bloqueo
mediación
europea
incluida
partido
popular
primero
pa
##bl
##o
casado
ahora
alber
##to
n
##ú
##ñez
fe
##ij
##ó
##ono
renuncia
##do
ninguna
condiciones
renovar
c
##g
##p
##j
controla
ped
##ro
##n
##chez
parece
haber
tomado
firme
decisión
ama
##gó
ello
2020
dar
paso
frente
si
acuerdo
fe
##ij
##ó
##o
próximas
dos
semanas
así
dicho
miércoles
pp
han
interpretado
ulti
##má
##tu
##n
inaceptable
chantaje
bra
##v
##uco
##na
##da
busca
acuerdo
dicen
sino
cambiar
conversación
pública
tapa
##r
derrotas
elecciones
cortes
generales
formas
han
gustado
populares
fondo
alternativa
##n
##chez
puesto
encima
mesa
menos
rot
##undi
##dad
respuesta
##n
##chez
esbo
##zado
entrevista
concedida
r
##t
##ve
dispuesto
impulsar
propia
reforma
acabar
situación
inaceptable
c
##g
##p
##j
si
bien
aterri
##zado
cómo
presidente
gobierno
querido
darle
pistas
pp
incentivo
per
##verso
tiene
pp
bloquear
facultad
tiene
institución
nombrar
magistrados
van
supremo
tribunales
superiores
justicia
deberíamos
revisar
facultad
hacerla
objetiva
transparente
menos
poli
##tizada
señaló
pp
rechazó
vía
gui
##lar
##te
mes
diciembre
presidente
funciones
c
##g
##p
##j
vice
##n
##te
gui
##lar
##te
firmó
columna
opinión
diario
país
plantea
##ba
fórmula
explor
##ada
entonces
partidos
juicio
podría
facilitar
renovación
gui
##lar
##te
expon
##ía
entonces
si
recor
##taban
competencias
órgano
gobierno
jueces
pueda
realizar
nombramientos
discre
##cionales
altos
cargos
judiciales
partidos
perdería
##n
interés
gui
##lar
##te
acabó
enviando
propuesta
congreso
título
personal
mes
abril
pp
rechazó
así
respeto
realidad
conversaciones
ps
##oe
postura
cambiado
renovación
c
##g
##p
##j
mismo
tiempo
renovación
norma
permite
profundizar
despo
##li
##tización
poder
judicial
afirma
##ba
mi
##gue
##l
tel
##lado
portavoz
partido
congreso
conversaciones
refería
tel
##lado
incluían
comisión
europea
congel
##adas
hubo
tres
encuentros
##li
##x
bola
##ños
parte
socialista
este
##ban
go
##n
##zá
##lez
pon
##s
popular
comisario
justicia
unión
euro
##pa
did
##ier
rey
##n
##ders
dio
dos
meses
llegar
acuerdo
enero
acuerdo
sigue
lejos
ahora
han
pasado
seis
meses
comisión
europea
pp
contó
medio
hace
tiempo
dado
fracas
##ada
mediación
mismos
forzar
##on
insiste
implica
##r
instituciones
europeas
miércoles
bola
##ños
enviado
mensaje
pon
##s
reunirse
viernes
intentar
llegar
acuerdo
c
##g
##p
##j
varias
horas
después
contacto
fuentes
pp
informa
##ban
pon
##s
había
dirigido
vicepres
##identa
comisión
europea
[UNK]
jo
##uro
##vá
informar
##le
intento
presidente
gobierno
desestabili
##zar
negociación
manten
##ida
partido
popular
supervisión
gobierno
comunitario
mejora
modelo
judicial
país
pedirle
encuentro
tres
carácter
urgente
respuesta
fuentes
ps
##oe
destacan
alegría
pp
vuelva
querer
reunirse
renovar
c
##g
##p
##j
gran
noticia
apunta
##ban
fer
##ra
##z
recuerdan
socialistas
llevan
solicitando
comisión
europea
pp
celebre
nueva
reunión
pp
cancel
##ó
encuentro
propuesto
comisario
rey
##n
##ders
acordado
dos
partidos
2
##7
marzo
madri
##d
placa
entrada
sede
consejo
general
poder
judicial
edificio
tribunal
supremo
madri
##d
euro
##pa
pres
##s
##fer
##nan
##do
##n
##chez
grupo
jueces
usa
c
##g
##p
##j
enviar
guía
am
##nistía
concretamente
apuntan
han
dirigido
comisión
pp
celebrar
reunión
días
11
abril
3
mayo
22
mayo
además
habido
intentos
reunión
bilateral
ps
##oe
##pp
iniciativa
siempre
ps
##oe
añade
embargo
casi
tres
meses
pp
negado
avanzar
diálogo
estructurado
renovación
c
##g
##p
##j
destacan
cerrar
día
fuentes
gubernamentales
informa
##ban
nuevo
contacto
bola
##ños
jo
##uro
##vá
objetivo
sido
trasladar
##le
voluntad
celebrar
reunión
pp
reanudar
negociaciones
desb
##loque
##ar
renovación
c
##g
##p
##j
próximo
viernes
madri
##d
si
puede
desplaz
##ar
próxima
semana
brus
##elas
gén
##ova
insiste
##n
confía
##n
ministro
presidencia
justicia
relaciones
cortes
quieren
instituciones
europeas
presenci
##en
diálogo
hace
par
meses
gobierno
trasladar
##on
comisión
europea
debería
emitir
algún
tipo
mensaje
negociaciones
fecha
sucedido
socialistas
han
decidido
dar
paso
adelante
miembros
dirección
nacional
pp
reconocen
medio
propuesta
gui
##lar
##te
decir
##n
##chez
puesto
ahora
mesa
podría
ir
dirección
despo
##li
##tizar
justicia
han
defendido
insiste
##n
imprescindible
reformar
sistema
elección
jueces
aquí
populares
permanecen
enro
##cados
excusas
pp
ps
##oe
decidido
##s
dar
paso
si
pp
ce
##de
lunes
portavoz
socialista
est
##her
pe
##ña
insistió
populares
han
acabado
excusas
vez
han
pasado
elecciones
europeas
mismo
tiempo
conscientes
partido
lidera
fe
##ij
##ó
##o
tiene
voluntad
llegar
ningún
acuerdo
excusas
dadas
últimos
cinco
años
cifra
##n
mon
##clo
##a
prácticamente
tre
##inten
##a
realmente
##n
##chez
había
dejado
puerta
abierta
estudiar
modelo
propone
gui
##lar
##te
c
##g
##p
##j
hace
cuantos
meses
concretamente
principios
diciembre
marco
celebraciones
día
constitución
contexto
presidente
usó
además
unas
palabras
similares
jueves
pp
tiene
incentivo
tener
secuestrado
poder
judicial
destacó
entonces
después
llamaría
fe
##ij
##ó
##o
reunión
c
##g
##p
##j
mesa
desembo
##có
mediación
brus
##elas
harta
##zgo
socialistas
ciertas
maniobras
judiciales
entorno
familiar
##n
##chez
próxima
aplicación
am
##nistía
may
##ús
##culo
han
reaccion
##ado
forma
directa
especialmente
juez
pe
##inado
investiga
esposa
líder
socialista
be
##go
##ña
g
##ómez
sido
bien
recibido
c
##g
##p
##j
contesta
##do
nuevo
ps
##oe
pidi
##éndoles
hagan
política
cuestión
ahora
si
pp
decide
desc
##ol
##garse
definitivamente
renovación
c
##g
##p
##j
permite
llegar
producirse
##que
elimin
##e
competencia
hacer
nombramientos
parte
si
fe
##ij
##ó
##o
acepta
llegar
acuerdo
##n
##chez
llegó
prácticamente
hecho
frust
##ró
unas
presiones
internas
solo
han
ido

View file

@ -0,0 +1 @@
Esta noticia consistira en una noticia de prueba , sobre pedro sanchez y feijo , hoy estamos a veinti cinco de septiembre de el 2023 y parece que pedro sanchez esta intentando negociar la amnistia con puigdemond y compañia , parece que van a acavar sacando el gobierno a delante , todo el mundo quiere elecciones nuevas porque claro se han dado cuenta que esto es una liada importante , y no todo puede funcionar para hacer que tus objetivos salgan para adelante , en fin me gustaria saber que pasa por lacabeza de algunos activistas ahora mismo ya que parece que si este paso de la amnistia va para adelante , tanto el independentismo vasco como el independentismo catalan podran llegar a buen puerto .

View file

@ -0,0 +1,78 @@
import os
import re
from collections import Counter
# Lista de palabras comunes en español (stopwords)
stopwords = [
"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", "", "porque", "esta", "son", "entre", "cuando", "muy", "sin", "sobre", "también", "me",
"hasta", "hay", "donde", "quien", "desde", "todo", "nos", "durante", "todos", "uno", "les", "ni",
"contra", "otros", "ese", "eso", "ante", "ellos", "e", "esto", "", "antes", "algunos", "qué",
"unos", "yo", "otro", "otras", "otra", "él", "tanto", "esa", "estos", "mucho", "quienes", "nada",
"muchos", "cual", "poco", "ella", "estar", "estas", "algunas", "algo", "nosotros", "mi", "mis",
"", "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"
]
# Función para limpiar el texto
def limpiar_texto(texto):
texto = texto.lower()
texto = re.sub(r'[^\w\s]', '', texto) # Elimina signos de puntuación
palabras = texto.split()
palabras_limpias = [palabra for palabra in palabras if palabra not in stopwords]
return ' '.join(palabras_limpias)
# Función para contar palabras en un archivo
def contar_palabras(nombre_archivo):
with open(nombre_archivo, 'r') as f:
palabras = f.read().split()
return Counter(palabras)
# Función para comparar dos archivos y calcular el porcentaje de similitud
def comparar_archivos(archivo1, archivo2):
conteo1 = contar_palabras(archivo1)
conteo2 = contar_palabras(archivo2)
palabras_comunes = set(conteo1.keys()) & set(conteo2.keys())
num_palabras_comunes = sum(min(conteo1[p], conteo2[p]) for p in palabras_comunes)
num_palabras_totales = sum(conteo1.values()) + sum(conteo2.values())
porcentaje_similitud = (num_palabras_comunes / num_palabras_totales) * 100
return porcentaje_similitud
# Función para comparar todos los archivos entre carpetas y guardar los resultados
def comparar_carpetas(carpeta1, carpeta2, carpeta_comparaciones, nombre_comparacion):
archivos1 = [os.path.join(carpeta1, f) for f in os.listdir(carpeta1) if f.endswith('.txt')]
archivos2 = [os.path.join(carpeta2, f) for f in os.listdir(carpeta2) if f.endswith('.txt')]
with open(os.path.join(carpeta_comparaciones, f"{nombre_comparacion}.txt"), 'w') as f_out:
for archivo1 in archivos1:
for archivo2 in archivos2:
porcentaje = comparar_archivos(archivo1, archivo2)
nombre_archivo1 = os.path.basename(archivo1)
nombre_archivo2 = os.path.basename(archivo2)
f_out.write(f"{nombre_archivo1} vs {nombre_archivo2}: {porcentaje:.2f}% de similitud\n")
# Rutas a las carpetas
ruta_base = '/home/sito/PROGRAMACION/FLUJOS_TODO/FLUJOS_DATOS'
carpeta_comparaciones = os.path.join(ruta_base, 'COMPARACIONES')
carpeta_wikipedia = os.path.join(ruta_base, 'WIKIPEDIA', 'articulos_tokenizados')
carpeta_torrents = os.path.join(ruta_base, 'TORRENTS', 'TORRENTS_WIKILEAKS_COMPLETO', 'tokenized')
carpeta_noticias = os.path.join(ruta_base, 'NOTICIAS', 'tokenized')
# Crear la carpeta de comparaciones si no existe
os.makedirs(carpeta_comparaciones, exist_ok=True)
# Comparar las carpetas y guardar los resultados
comparar_carpetas(carpeta_wikipedia, carpeta_noticias, carpeta_comparaciones, 'wikipedia_vs_noticias')
comparar_carpetas(carpeta_wikipedia, carpeta_torrents, carpeta_comparaciones, 'wikipedia_vs_torrents')
comparar_carpetas(carpeta_torrents, carpeta_noticias, carpeta_comparaciones, 'torrents_vs_noticias')

View file

@ -0,0 +1,34 @@
import os
def preprocess_input(text):
"""
Limpia la entrada del usuario: elimina espacios adicionales, saltos de línea y convierte a texto con formato uniforme.
"""
cleaned_text = ' '.join(text.split())
return cleaned_text
def guardar_noticia(data, nombre_archivo):
with open(nombre_archivo, 'w', encoding='utf-8') as file:
for key, value in data.items():
file.write(f"{key}: {value}\n")
def main():
while True:
noticia_data = {}
noticia = input("Introduce la noticia (escribe 'salir' o presiona Enter para terminar): ")
if not noticia.strip() or noticia.lower() == 'salir':
break
noticia_data["content"] = preprocess_input(noticia)
noticia_data["title"] = preprocess_input(input("Introduce el título de la noticia: "))
noticia_data["theme"] = preprocess_input(input("Introduce la temática de la noticia: "))
noticia_data["author"] = preprocess_input(input("Introduce el autor de la noticia: "))
noticia_data["timestamp"] = preprocess_input(input("Introduce la fecha de publicación (DD-MM-AAAA): "))
nombre_archivo = input("Introduce el nombre del archivo para guardar (incluyendo .txt): ")
guardar_noticia(noticia_data, nombre_archivo)
print(f"Noticia guardada en {nombre_archivo}")
if __name__ == "__main__":
main()

View file

@ -0,0 +1,79 @@
import numpy as np
import pandas as pd
import os
import logging
from sklearn.metrics.pairwise import cosine_similarity
from tensorflow.keras.models import load_model
from elasticsearch import Elasticsearch, ElasticsearchException
def main():
# Configuración básica de logging
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
# Verificar si el modelo entrenado existe
if not os.path.exists("my_model.h5"):
logging.error("El modelo 'my_model.h5' no existe. Asegúrate de ejecutar 'train_model.py' primero.")
return
# Cargar el modelo entrenado
model = load_model("my_model.h5")
# Verificar si el archivo 'salida.csv' existe
if not os.path.exists('salida.csv'):
logging.error("El archivo 'salida.csv' no existe. Asegúrate de ejecutar 'procesador_txt.py' primero.")
return
# Cargar datos tokenizados desde el archivo CSV
df = pd.read_csv('salida.csv')
# Verificar que las columnas esperadas existen
if 'texto_procesado' not in df.columns or 'texto_original' not in df.columns:
logging.error("El archivo 'salida.csv' no tiene las columnas esperadas.")
return
sequences = [list(map(int, str(seq).split(','))) for seq in df['texto_procesado']]
# Obtener las representaciones incrustadas para todas las noticias
embeddings = model.predict(np.array(sequences))
# Inicializar el cliente de Elasticsearch
es = Elasticsearch(
hosts=[{'host': 'localhost', 'port': 9200}],
http_auth=('usuario', 'contraseña'), # Cambia a tus propias credenciales
)
# Umbral de similitud del coseno
SIMILARITY_THRESHOLD = 0.75 # Ajusta este valor según tus necesidades
# Iterar sobre cada noticia para calcular y guardar las relaciones
for i, current_news in enumerate(sequences):
similarities = cosine_similarity(embeddings[i].reshape(1, -1), embeddings)[0]
# Obtenemos noticias con similitud por encima del umbral (excluyendo la noticia actual)
related_indices = [idx for idx in range(len(similarities)) if similarities[idx] > SIMILARITY_THRESHOLD and idx != i]
related_news = [{"id": idx, "score": similarities[idx]} for idx in related_indices]
document = {
"id": i,
"content": df['texto_original'].iloc[i],
"related_news": related_news,
# Añade tus nuevos campos aquí
"title": df.get('title', 'N/A').iloc[i], # Sustituye 'N/A' por un valor por defecto apropiado si 'title' no existe
"theme": df.get('theme', 'General').iloc[i], # Asume 'General' si 'theme' no existe
"author": df.get('author', 'Anonymous').iloc[i], # Asume 'Anonymous' si 'author' no existe
"timestamp": df.get('timestamp', 'Unknown').iloc[i], # Asume 'Unknown' si 'timestamp' no existe
}
try:
# Guardar el documento en Elasticsearch
es.index(index="news", body=document)
except ElasticsearchException as e:
logging.error(f"Error al indexar el documento en Elasticsearch: {e}")
except Exception as e:
logging.error(f"Something is fucked up Sorry about that . {e}")
logging.info("B-) Todo a ido como la seda , muchas gracias por tu aportaciòn <3 . ")
if __name__ == "__main__":
main()

View file

@ -0,0 +1,74 @@
from transformers import BertTokenizer
import nltk
import string
import os
import pandas as pd
from nltk.corpus import stopwords
# Descargar recursos de NLTK
nltk.download('punkt')
nltk.download('stopwords')
# Preprocesamiento de texto
def preprocess_text(text):
"""
Preprocesa el texto: convierte a minúsculas, elimina signos de puntuación y elimina las stopwords.
"""
# Convierte el texto a minúsculas
text = text.lower()
# Elimina signos de puntuación
text = ''.join([char for char in text if char not in string.punctuation])
# Elimina stopwords
words = text.split()
filtered_words = [word for word in words if word not in stopwords.words('spanish')]
return ' '.join(filtered_words)
# Función para tokenizar el contenido de un archivo
def tokenize_file(file_path):
"""
Tokeniza el contenido de un archivo usando el tokenizer de BERT y preprocesamiento básico.
"""
with open(file_path, 'r', encoding='utf-8') as file:
content = file.read()
preprocessed_content = preprocess_text(content)
tokenizer = BertTokenizer.from_pretrained('bert-base-uncased')
tokens = tokenizer.tokenize(preprocessed_content)
return tokens
# Tokenización de todos los archivos en un directorio
def tokenize_all_files_in_directory(directory_path='.'):
"""
Lee y procesa todos los archivos de texto en el directorio proporcionado.
Devuelve una lista de textos tokenizados.
"""
tokenized_texts = []
filenames = [f for f in os.listdir(directory_path) if f.endswith('.txt')]
for filename in filenames:
path = os.path.join(directory_path, filename)
tokenized_text = tokenize_file(path)
tokenized_texts.append(tokenized_text)
return tokenized_texts
# Guardar los textos tokenizados en un archivo CSV
def save_tokenized_texts_to_csv(tokenized_texts, output_file='salida.csv'):
"""
Guarda los textos tokenizados en un archivo CSV.
"""
df = pd.DataFrame({'texto_procesado': tokenized_texts})
df.to_csv(output_file, index=False)
def main():
tokenized_texts = tokenize_all_files_in_directory()
if not tokenized_texts:
print("Error: No se encontraron archivos .txt para procesar.")
return
save_tokenized_texts_to_csv(tokenized_texts)
print(f"{len(tokenized_texts)} textos tokenizados y guardados en salida.csv")
if __name__ == "__main__":
main()

View file

@ -0,0 +1,30 @@
from elasticsearch import Elasticsearch
from FLUJOS_DATOS.TENSOR_FLOW.generate_embeddings import get_embeddings
# Configura la conexión a Elasticsearch
es = Elasticsearch([{'host': 'localhost', 'port': 9200, 'scheme': 'http'}])
def save_embedding(text, embeddings):
body = {
"text": text,
"embedding": embeddings.tolist() # Convertir el embedding (numpy array) a lista
}
response = es.index(index="text_embeddings", body=body)
return response
def retrieve_embedding(text):
query = {
"query": {
"match": {
"text": text
}
}
}
response = es.search(index="text_embeddings", body=query)
if response['hits']['total']['value'] > 0:
return response['hits']['hits'][0]['_source']['embedding']
else:
return None

View file

@ -0,0 +1,58 @@
import entrada
import procesador_txt
import train_model
import guardar_datos
def main():
try:
# 1. Introduce y guarda noticias
print("Iniciando el proceso de introducción y guardado de noticias...")
entrada.main()
except FileNotFoundError:
print("Error: No se encontró el archivo especificado durante la introducción de noticias.")
return
except Exception as e:
print(f"Error inesperado durante la introducción de noticias: {e}")
return
try:
# 2. Procesa y tokeniza las noticias
print("Iniciando el proceso de tokenización de noticias...")
procesador_txt.main() # Asegúrate de que esta función exista en tu script procesador_txt.py
except FileNotFoundError:
print("Error: No se encontró el archivo especificado durante la tokenización de noticias.")
return
except Exception as e:
print(f"Error inesperado durante la tokenización de noticias: {e}")
return
try:
# 3. Entrena el modelo
print("Iniciando el proceso de entrenamiento del modelo...")
train_model.main() # Asegúrate de que esta función exista en tu script train_model.py
except ValueError:
print("Error: Hay un problema con los datos utilizados para entrenar el modelo.")
return
except Exception as e:
print(f"Error inesperado durante el entrenamiento del modelo: {e}")
return
try:
# 4. Guarda datos en Elasticsearch
print("Iniciando el proceso de guardado de datos en Elasticsearch...")
guardar_datos.main() # Asegúrate de que esta función exista en tu script guardar_datos.py
except ConnectionError:
print("Error: No se pudo conectar a Elasticsearch. Asegúrate de que el servicio esté ejecutándose y de que las credenciales sean correctas.")
return
except Exception as e:
print(f"Error inesperado durante el guardado de datos en Elasticsearch: {e}")
return
print("Todos los procesos han sido completados exitosamente.")
if __name__ == "__main__":
main()

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,90 @@
from transformers import BertModel, BertTokenizer
import torch
def main():
# Cargar el tokenizador y el modelo BERT preentrenado
tokenizer = BertTokenizer.from_pretrained('bert-base-multilingual-cased')
model = BertModel.from_pretrained('bert-base-multilingual-cased')
# Aquí debes cargar tus datos (noticias). Supongamos que 'noticias' es una lista de textos de noticias.
noticias = ["Introduce aquí la primera noticia", "Introduce aquí la segunda noticia"] # etc.
embeddings = []
for texto in noticias:
# Codificar texto
inputs = tokenizer(texto, padding=True, truncation=True, return_tensors="pt")
# Obtener la salida del modelo
with torch.no_grad():
outputs = model(**inputs)
# Tomar sólo la salida del último layer del clasificador (representación del texto completo)
embeddings.append(outputs.last_hidden_state[:,0,:])
# 'embeddings' es ahora una lista de tensores de PyTorch, uno por cada texto de noticia.
# Puedes convertir esto a una lista de vectores y luego seguir con tu lógica de almacenamiento y similitud.
if __name__ == "__main__":
main()
#============================================================================================================
#CODIGO PARA ENTRENAR AL MODELO SENCILLO
#============================================================================================================
# import numpy as np
# import pandas as pd
# import os
# from tensorflow.keras.models import Sequential
# from tensorflow.keras.layers import Embedding, Flatten, Dense
# def main():
# # Verificar si el archivo 'salida.csv' existe
# if not os.path.exists('salida.csv'):
# print("Error: El archivo 'salida.csv' no existe. Asegúrate de ejecutar 'procesador_txt.py' primero.")
# return
# # 1. Cargar datos tokenizados desde el archivo CSV
# df = pd.read_csv('salida.csv')
# # Verificar que las columnas esperadas existen
# if 'texto_procesado' not in df.columns or 'labels' not in df.columns:
# print("Error: El archivo 'salida.csv' no tiene las columnas esperadas.")
# return
# # Convertir datos tokenizados a listas de enteros
# sequences = [list(map(int, str(seq).split(','))) for seq in df['texto_procesado']]
# labels = df['labels'].values
# # 2. Definir el modelo
# vocab_size = 10000 # Ajusta esto según tu dataset
# embedding_dim = 16
# max_length = len(sequences[0]) # longitud del primer elemento, asumiendo que todos tienen la misma longitud
# model = Sequential([
# Embedding(vocab_size, embedding_dim, input_length=max_length),
# Flatten(),
# Dense(6, activation='relu'),
# Dense(1, activation='sigmoid') # Cambia esto si tienes más clases
# ])
# # 3. Compilar el modelo
# model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
# # 4. Entrenar el modelo
# model.fit(np.array(sequences), labels, epochs=10)
# # 5. Guardar el modelo entrenado
# model.save("my_model.h5")
# print("Modelo entrenado y guardado.")
# if __name__ == "__main__":
# main()

View file

@ -0,0 +1,47 @@
El club, conferencia, grupo o foro Bilderberg es una reunión anual a la que asisten aproximadamente las 130 personas más influyentes del mundo, mediante invitación. Los miembros de este grupo se reúnen en complejos de lujo ubicados en Europa, Norteamérica y Asia, donde la prensa no tiene ningún tipo de acceso, y sus oficinas están en Leiden (Países Bajos). El nombre de este club procede del hotel en el que tuvo lugar la primera reunión, en los Países Bajos.
Henri de Castries, presidente del Grupo Bilderberg desde 2011.
Historia
El 29 de mayo de 1954 tuvo lugar la primera reunión, propuesta por el exiliado consejero político polaco Józef Retinger. Este, preocupado por el antiamericanismo que estaba causando el Plan Marshall en Europa, decidió reunir a los líderes europeos y norteamericanos para promover el entendimiento entre ellos. Entre los invitados estuvieron el príncipe neerlandés Bernardo, que decidió promover la idea, David Rockefeller, quien financió la reunión, y el primer ministro belga Paul van Zeeland. La idea era que los invitados fueran dos de cada país, uno conservador y el otro progresista.
El éxito del encuentro animó a los organizadores a preparar una conferencia anual. Se creó un comité de dirección y Retinger fue designado su secretario permanente. Al igual que organizaba la conferencia, el comité de dirección también mantenía un registro de los nombres de los asistentes y detalles de contacto, con el objetivo de crear una red informal de individuos que se podrían invitar unos a otros en privado. El propósito declarado del Grupo Bilderberg era «hacer un nudo alrededor de una línea política común entre Estados Unidos y Europa en oposición a Rusia y al comunismo». El economista neerlandés Ernst van der Beugel sustituyó a Retinger en el puesto en 1960, tras la muerte de este. El príncipe Bernardo fue presidente de la reunión hasta su muerte, en 2004.
El club Bilderberg y la crisis económica de 2008
En 2009 la reunión tuvo lugar en el municipio costero de Vouliagmeni (Atenas) y asistieron, entre otros, los ministros griegos de finanzas y de asuntos exteriores, así como el gobernador del Banco Nacional griego y Vladímir Putin. Un año más tarde la reunión giró, de nuevo, en torno a la difícil situación que vivían Grecia, Portugal y España. Al parecer, siendo presidente del gobierno español, José Luis Rodríguez Zapatero, asistió para tranquilizar a los inversores internacionales ante el vencimiento de grandes cantidades de deuda española.12
La reunión de Sitges, en 2010
Tuvo lugar el 3 de junio en el Hotel Dolce.3 Asistió el entonces presidente del gobierno José Luis Rodríguez Zapatero, invitado por el club por tradición y dispuesto a convencer de la solvencia económica del Estado.4 Además del presidente asistieron otros cargos empresariales y políticos españoles que acuden habitualmente a la convocatoria, como el consejero delegado del grupo PRISA, Juan Luis Cebrián, el presidente de Acciona, José Manuel Entrecanales, y el ex ministro de Economía Pedro Solbes. También la reina de España, Sofía, quien ya había asistido, como oyente, a otras reuniones anteriores.
Bill Gates, fundador de Microsoft criticó al finalizar la reunión las restricciones económicas que el gobierno español acababa de promover.5
Algunos asistentes
Artículo principal: Anexo:Participantes en el Grupo Bilderberg
Banqueros, políticos, miembros de la realeza, financieros internacionales o dueños de los principales medios de comunicación, son ejemplos de los miembros del club Bilderberg. Entre ellos están el español Juan Luis Cebrián, quien fuera presidente ejecutivo del grupo Prisa, el estadounidense Donald Rumsfeld, antiguo secretario de defensa de su país,6 el irlandés Peter Sutherland, entre otros cargos presidente de Goldman Sachs y British Petroleum,7 el estadounidense Paul Wolfowitz, antiguo presidente del Banco Mundial, David Rockefeller, los Ford o el belga Étienne Davignon, antiguo vicepresidente de la Comisión Europea y expresidente del grupo.891011 Como curiosidad, cabe destacar que los anteriormente nombrados Rumsfeld y Sutherland fueron compañeros en la compañía de energía ABB.12
En 2009, entre otros, participaron la reina Sofía,13 Ana Botín (Banco Santander), José Manuel Entrecanales (Acciona), Alberto Ruiz-Gallardón y Pedro Solbes.14 Por primera vez, dos periódicos británicos de tirada nacional se hicieron eco en noticias escuetas de la Conferencia del Grupo Bilderberg. Uno de ellos fue The Guardian, que envió a uno de sus corresponsales y cuyas crónicas únicamente fueron publicadas en la edición digital del periódico. Durante seis días, el periodista documentó cómo fue sometido a diversos seguimientos y finalmente arrestado por la policía griega.15 Tras esta reciente exposición a la opinión pública, ahora han publicado en su web una breve referencia a los temas tratados en los últimos tres años y una lista oficial de participantes.16
Teorías de conspiración
El mayor atractivo de estas reuniones es que sus participantes tienen la oportunidad de debatir abiertamente entre ellos y saber qué opinan las personas más poderosas del mundo.17
Étienne Davignon, presidente del Club Bilderberg
El grupo es acusado de conspirar para imponer un gobierno mundial, un dominio capitalista y/o una economía planificada.18171920212223
Se trata de una lista exclusiva de figuras de influencia global que ha captado el interés de una red internacional de conspiracionistas, quienes durante décadas han visto al grupo Bilderberg como un esquema globalista-corporativo y están convencidos de que una élite poderosa está moviendo al planeta hacia un nuevo orden mundial oligárquico. 24
Kenneth P. Vogel, vocero
Miles de videos sobre el grupo Bilderberg pueden verse en YouTube24 y entre los defensores de esta teoría de conspiración están la derechista Sociedad John Birch,2325 la activista política Phyllis Schlafly,25 el escritor Jim Tucker,26 el activista Lyndon LaRouche,27 el locutor de radio Alex Jones,28 el político Jesse Ventura, quien hizo del grupo Bilderberg un episodio en su serie televisiva Conspiracy Theory with Jesse Ventura,29 o el escritor ruso-canadiense Daniel Estulin.30
Decir que estamos luchando por un gobierno mundial es exagerado, pero no completamente desacertado. Nosotros pensamos que no podemos seguir luchando para siempre unos contra otros para nada y matando a gente o dejándola sin hogar. Por ello, creemos que una comunidad única a lo largo del mundo sería algo positivo.31
Denis Healey, miembro fundador del Grupo Bilderberg.
En el reportaje La derecha corteja a la izquierda (1994), el periodista argumenta que las teorías conspirativas del populismo de derechas se remontan a 1964: en el libro A choice, not an echo, Phyllis Schlafly argumenta que el Partido Republicano fue secretamente controlado por intelectuales de la élite, dominados por miembros del grupo Bilderberg, cuyas políticas internacionalistas pavimentaron el camino hacia el comunismo mundial.3233
Es inevitable y no importa. Siempre habrá personas que crean en conspiraciones, pero las cosas suceden de una manera mucho más incoherente. Cuando la gente dice que este grupo es un gobierno secreto mundial, yo digo que si lo fuéramos, deberíamos estar avergonzados de nosotros mismos.21
Etiénne Davignon, presidente del Club Bilderberg
El investigador y profesor en Psicología y Sociología G. William Domhoff cree que el rol de los foros de relaciones internacionales y los clubes sociales, como el club Bilderberg, no es nada más que un medio para discutir ideas, conseguir consenso y crear cohesión social dentro de la élite. Opina que el rumor de la teoría conspirativa puede ser perjudicial y que puede evitar la asistencia de ciertas personas a ellos. Para él, son más o menos la misma gente que pertenece a otros clubes, pero colocados en roles más importantes como el de capitalista o líder político, visibles y fáciles de combatir.34
Siniestras camarillas y los lobistas de Bilderberg manipulan al público para instalar un gobierno mundial que no conoce fronteras y que no rinde cuentas ante nadie, salvo a sí mismo.22
Fidel Castro, expresidente de Cuba
El escritor James McConnachie comenta que los teóricos de la conspiración tienen un punto a su favor, pero fallan en comunicarlo efectivamente.35 Para él, el grupo Bilderberg actúa en una forma consistente con una conspiración global, pero lo hace sin un grado de atrocidad, algo que no entienden los teóricos de la conspiración. Según McConnachie, los conspiracionistas ven al Club Bilderberg como el mal absoluto.28
Ocasionalmente tienes que darle crédito a los teóricos de la conspiración, los cuales plantean cuestiones que los medios principales han ignorado. Es reciente que los medios han cubierto al Club Bilderberg, pero ¿escribirían los medios si no estuvieran estas acusaciones?28
James McConnachie, escritor
Su objetivo final es el control de absolutamente todo el mundo, en todos los sentidos de la palabra. Actúan como si fueran Dios en la Tierra.22

View file

@ -0,0 +1,16 @@
"""
ASGI config for FLUJOS_DATOS project.
It exposes the ASGI callable as a module-level variable named ``application``.
For more information on this file, see
https://docs.djangoproject.com/en/4.2/howto/deployment/asgi/
"""
import os
from django.core.asgi import get_asgi_application
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'FLUJOS_DATOS.settings')
application = get_asgi_application()

View file

@ -0,0 +1,124 @@
"""
Django settings for FLUJOS_DATOS project.
Generated by 'django-admin startproject' using Django 4.2.5.
For more information on this file, see
https://docs.djangoproject.com/en/4.2/topics/settings/
For the full list of settings and their values, see
https://docs.djangoproject.com/en/4.2/ref/settings/
"""
from pathlib import Path
# Build paths inside the project like this: BASE_DIR / 'subdir'.
BASE_DIR = Path(__file__).resolve().parent.parent
# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/4.2/howto/deployment/checklist/
# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = 'django-insecure-5sme-l68=#wv#h75ga3yf+@0-mc!@aoytv!eq*5i-t41aqso(-'
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True
ALLOWED_HOSTS = []
# Application definition
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'noticias',
]
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
ROOT_URLCONF = 'FLUJOS_DATOS.urls'
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
WSGI_APPLICATION = 'FLUJOS_DATOS.wsgi.application'
# Database
# https://docs.djangoproject.com/en/4.2/ref/settings/#databases
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db.sqlite3',
}
}
# Password validation
# https://docs.djangoproject.com/en/4.2/ref/settings/#auth-password-validators
AUTH_PASSWORD_VALIDATORS = [
{
'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
},
]
# Internationalization
# https://docs.djangoproject.com/en/4.2/topics/i18n/
LANGUAGE_CODE = 'en-us'
TIME_ZONE = 'UTC'
USE_I18N = True
USE_TZ = True
# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/4.2/howto/static-files/
STATIC_URL = 'static/'
# Default primary key field type
# https://docs.djangoproject.com/en/4.2/ref/settings/#default-auto-field
DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'

View file

@ -0,0 +1,27 @@
"""
URL configuration for FLUJOS_DATOS project.
The `urlpatterns` list routes URLs to views. For more information please see:
https://docs.djangoproject.com/en/4.2/topics/http/urls/
Examples:
Function views
1. Add an import: from my_app import views
2. Add a URL to urlpatterns: path('', views.home, name='home')
Class-based views
1. Add an import: from other_app.views import Home
2. Add a URL to urlpatterns: path('', Home.as_view(), name='home')
Including another URLconf
1. Import the include() function: from django.urls import include, path
2. Add a URL to urlpatterns: path('blog/', include('blog.urls'))
"""
from django.contrib import admin
from django.urls import path
from noticias.views import get_text_embedding
urlpatterns = [
path('admin/', admin.site.urls),
path('get-embedding/', get_text_embedding, name='get-embedding'),
]

View file

@ -0,0 +1,16 @@
"""
WSGI config for FLUJOS_DATOS project.
It exposes the WSGI callable as a module-level variable named ``application``.
For more information on this file, see
https://docs.djangoproject.com/en/4.2/howto/deployment/wsgi/
"""
import os
from django.core.wsgi import get_wsgi_application
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'FLUJOS_DATOS.settings')
application = get_wsgi_application()

View file

@ -0,0 +1,22 @@
#!/usr/bin/env python
"""Django's command-line utility for administrative tasks."""
import os
import sys
def main():
"""Run administrative tasks."""
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'FLUJOS_DATOS.settings')
try:
from django.core.management import execute_from_command_line
except ImportError as exc:
raise ImportError(
"Couldn't import Django. Are you sure it's installed and "
"available on your PYTHONPATH environment variable? Did you "
"forget to activate a virtual environment?"
) from exc
execute_from_command_line(sys.argv)
if __name__ == '__main__':
main()

View file

View file

@ -0,0 +1,3 @@
from django.contrib import admin
# Register your models here.

View file

@ -0,0 +1,6 @@
from django.apps import AppConfig
class NoticiasConfig(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = 'noticias'

View file

@ -0,0 +1,23 @@
# Generated by Django 4.2.5 on 2023-09-16 21:51
from django.db import migrations, models
class Migration(migrations.Migration):
initial = True
dependencies = [
]
operations = [
migrations.CreateModel(
name='Noticia',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('titulo', models.CharField(max_length=255)),
('contenido', models.TextField()),
('fecha_publicacion', models.DateTimeField(auto_now_add=True)),
],
),
]

View file

@ -0,0 +1,6 @@
from django.db import models
class Noticia(models.Model):
titulo = models.CharField(max_length=255)
contenido = models.TextField()
fecha_publicacion = models.DateTimeField(auto_now_add=True)

View file

@ -0,0 +1,3 @@
from django.test import TestCase
# Create your tests here.

View file

@ -0,0 +1,16 @@
from django.shortcuts import render
# Create your views here.
from django.http import JsonResponse
def get_text_embedding(request):
text = request.GET.get('text', '')
existing_embedding = retrieve_embedding(text)
if existing_embedding:
embeddings = existing_embedding
else:
embeddings = get_embeddings([text])[0].numpy().tolist() # Ajustado para obtener el embedding y convertirlo a lista
save_embedding(text, embeddings)
return JsonResponse({"embeddings": embeddings})

View file

@ -0,0 +1,497 @@
┌───────────────────────────────────────────────────┐
│ main() │
└──────────────┬────────────────────────────────────┘
Lista de URLs de medios y leaks
┌───────────────────────────────────────────────────────────────┐
│ register_processed_notifications(base_folder, urls) │
│ - Crea/lee processed_articles.txt │
│ - Filtra duplicados │
└──────────────┬───────────────────────────────────────────────┘
│ urls_to_process
┌─────────────────┴───────────────────────────┐
│ │
▼ ▼
┌──────────────────────────────┐ ┌──────────────────────────────┐
│ explore_and_extract_articles │ │ explore_wayback_machine │
│ (crawling + extracción) │ │ (consulta Wayback y extrae) │
└────────────┬─────────────────┘ └────────────┬─────────────────┘
│ │
│ guarda │ guarda
▼ ▼
┌────────────────────┐ ┌────────────────────┐
│ articulos/ (txt) │ │ articulos/ (txt) │
└────────────────────┘ └────────────────────┘
▲ ▲
│ │
▼ ▼
┌────────────────────┐ ┌────────────────────┐
│ archivos/ (bin) │ ← descarga │ (no aplica) │
└────────────────────┘ └────────────────────┘
┌────────────────────────────────────────────────┐
│ process_files(archivos/ → tokenized/) │
│ tokenize_all_articles(articulos/ → tokenized/) │
└──────────────┬─────────────────────────────────┘
┌────────────────────┐
│ tokenized/ (ids) │ ← ids BERT (máx 512)
└────────────────────┘
┌──────────────────────────┐
│ get_folder_info + logs │
└──────────────────────────┘
Entrada: url raíz, folders, processed_urls, size_limit, depth=0..6
┌──────────────────────────┐
│ HTMLSession().get(url) │
│ response.html.render() │ ← render JS (headless)
└─────────────┬────────────┘
Conjunto de absolute_links
┌────────────────┴─────────────────┐
│ │
Si extensión conocida Si página HTML genérica
(.pdf .csv .txt .xlsx .docx (sin extensión/otra cosa)
.html .md .zip) │
│ ▼
▼ ┌──────────────────────────────┐
┌──────────────────────────┐ │ extract_and_save_article() │
│ download_and_save_file() │ │ - parse <title>, <p> │
│ → archivos/ │ │ - translate → clean → txt │
└───────────┬──────────────┘ │ - guardar en articulos/ │
│ └──────────────┬───────────────┘
│ (tras cada acción) │
▼ ▼ (recursivo)
get_folder_info(articulos/, archivos/) explore_and_extract_articles(link, depth+1)
¿total_size >= 50GB? ──► Sí: detener │ No: continuar
archivos/ ──────────────────────────────────────────────────────┐
Para cada archivo según extensión:
┌─────────────────────────────────────────────────────────────┐
│ .pdf → read_pdf() → texto │
│ .csv → read_csv() → texto │
│ .txt → open().read() → texto │
│ .docx → read_docx() → texto │
│ .xlsx → read_xlsx() → texto │
│ .zip → read_zip() → texto concatenado │
│ .html/.md → read_html_md() → format_content()(*) → texto │
└─────────────────────────────────────────────────────────────┘
translate_text(deep_translator → 'es')
clean_text( BeautifulSoup strip + minúsculas
+ quita URLs + solo letras/espacios
+ colapsa espacios + STOPWORDS_ES )
tokenize_and_save(texto_limpio, filename, tokenized/)
tokenized/ contiene IDs BERT (máx 512)
(*) Nota: `format_content()` está vacío en tu snippet; hoy actúa como no-op.
articulos/ (txt limpios/es) ─────► para cada .txt:
tokenizer.encode(text, max_length=512, add_special_tokens=True)
'id id id ...' → escribe en tokenized/ con
mismo nombre de archivo
clean_filename(name)
- reemplaza \ / * ? : " < > | por "_"
- espacios → '_'
- corta a 100 chars
register_processed_notifications(base_folder, urls)
- lee base_folder/processed_articles.txt (si existe)
- devuelve solo URLs no vistas
- añade nuevas al final (append)
explore_wayback_machine(url)
- GET http://archive.org/wayback/available?url=...
- si hay 'closest' → extract_and_save_article(archive_url)
translate_text(text) ──► GoogleTranslator(auto→'es') ──► texto_en_es
clean_text():
1) quita CDATA variantes: <! [ CDATA [ ... ] ] >
2) BeautifulSoup → .get_text()
3) lower()
4) elimina URLs (regex http\S+)
5) deja solo letras españolas y espacio (regex)
6) colapsa espacios
7) filtra STOPWORDS (lista extensa ES)
/var/www/theflows.net/flujos/FLUJOS_DATOS/NOTICIAS/
├── articulos/ (txt limpios en ES, de páginas HTML/Wayback)
├── archivos/ (descargas crudas: pdf, csv, xlsx, docx, zip, html, md, txt)
├── tokenized/ (mismos nombres, contenido = IDs BERT separados por espacio)
└── processed_articles.txt (histórico de URLs procesadas)
logging.basicConfig(level=INFO)
- Traza etapas (descarga, extracción, tokenización)
- Resumen final:
* nº ficheros en articulos/, archivos/, tokenized/
* tamaños totales (MB)
- Cortafuegos de tamaño: 50 GB entre articulos/ + archivos/
[ main() ]
register_processed_notifications()
│ → filtra URLs ya procesadas
+---------------------------+
| urls_to_process (nuevas) |
+---------------------------+
explore_and_extract_articles()
├─► Si enlace a archivo (.pdf, .csv, .txt, .xlsx, .docx, .html, .md, .zip)
│ └─► download_and_save_file() → guarda en /archivos
├─► Si enlace HTML → extract_and_save_article()
│ ├─ traduce (translate_text)
│ ├─ limpia (clean_text)
│ └─ guarda .txt en /articulos
└─► Recursivo hasta max_depth o límite 50 GB
explore_wayback_machine() → descarga versión archivada si existe
process_files(/archivos → /tokenized)
│ ├─ read_pdf/csv/docx/xlsx/zip/html_md/txt
│ ├─ translate_text()
│ ├─ clean_text()
│ └─ tokenize_and_save() con BERT
tokenize_all_articles(/articulos → /tokenized)
│ └─ encode con BERT en IDs separados por espacio
get_folder_info() → logs resumen final
===========================================================
Flujo simplificado de procesamiento de un archivo
===========================================================
archivo descargado
read_*() según extensión
translate_text() → GoogleTranslator(auto→es)
clean_text()
├─ elimina CDATA y HTML
├─ minúsculas, sin URLs, solo letras/es
├─ colapsa espacios
└─ filtra stopwords ES
tokenize_and_save()
├─ tokenizer.encode(max 512 tokens)
└─ guarda IDs BERT en /tokenized
===========================================================
Estructura de carpetas
===========================================================
NOTICIAS/
├── articulos/ ← .txt limpios en español
├── archivos/ ← binarios crudos descargados
├── tokenized/ ← tokens BERT (IDs)
└── processed_articles.txt ← historial de URLs
===========================================================
Control y límites
===========================================================
- Profundidad máxima de crawling: max_depth = 6
- Tamaño combinado artículos+archivos: límite 50 GB
- Evita duplicados con processed_articles.txt
- Logs detallados en consola
████████████████████████████████████ FLUJOS: ESQUEMA TÉCNICO (ASCII) ████████████████████████████████████
[ ENTORNO / DEPENDENCIAS ]
- GoogleTranslator (deep_translator) → API web de Google Translate (auto→es)
- requests / requests_html.HTMLSession → HTTP + renderizado JS (chromium/headless)
- BeautifulSoup (bs4) → Parseo HTML, extracción de texto
- PyPDF2.PdfReader → Extracción texto de PDFs (si embebido/copiable)
- openpyxl → Lectura de .xlsx
- python-docx (docx) → Lectura de .docx
- zipfile → Descompresión y lectura (texto) de ficheros en ZIP
- html2text (no usado aquí en format_content)→ [placeholder]
- transformers.BertTokenizer → Tokenizador BERT ES (dccuchile/bert-base-spanish-wwm-cased)
- tqdm, logging, os, re, json, time, csv, hashlib, urllib.parse (urlparse/urljoin) → utilidades
[ ESTRUCTURA DE CARPETAS (I/O) ]
/var/www/theflows.net/flujos/FLUJOS_DATOS/NOTICIAS/
├── articulos/ (TXT limpios en español, derivados de HTML/Wayback)
├── archivos/ (descargas crudas: .pdf .csv .txt .xlsx .docx .html .md .zip)
├── tokenized/ (TXT con IDs de tokens BERT, máx 512 tokens por archivo)
└── processed_articles.txt (histórico de URLs ya procesadas → evita duplicados)
=============================================================================================================
[ main() ]
- Inicializa: URLs objetivo, rutas base, límite de 50GB, carpetas si no existen
- Flujo:
1) urls_to_process = register_processed_notifications(base_folder, urls)
2) Para url en urls_to_process:
a) explore_and_extract_articles(url, articulos/, archivos/, processed_urls, size_limit)
b) explore_wayback_machine(url, articulos/)
3) process_files(archivos/ → tokenized/)
4) tokenize_all_articles(articulos/ → tokenized/)
5) get_folder_info() sobre cada carpeta y logging resumen
- Side effects: Escritura en articulos/, archivos/, tokenized/, processed_articles.txt; logs INFO
=============================================================================================================
[ register_processed_notifications(base_folder, urls) ]
- Lee/crea processed_articles.txt
- Devuelve: lista de URLs no presentes (nuevas)
- Efectos:
* append de nuevas URLs al fichero
- Riesgos:
* Fichero grande con el tiempo (puede optimizarse a DB/Set persistente)
* No bloquea concurrencia (carreras si hay procesos paralelos)
=============================================================================================================
[ explore_and_extract_articles(url, articulos/, archivos/, processed_urls, size_limit, depth=0..6) ]
- Hace GET + render JS:
session = HTMLSession(); response = session.get(url); response.html.render()
- Obtiene absolute_links (con JS resuelto)
- Para cada link:
* Si ya está en processed_urls → skip
* Marca link como procesado (set in-memory)
* Detecta extensión: [.pdf .csv .txt .xlsx .docx .html .md .zip]
- Coincide → download_and_save_file(link, archivos/)
- mailto:/tel: → ignora
- Otro/HTML → extract_and_save_article(link, articulos/); recursión depth+1
- Control de tamaño:
* get_folder_info(articulos/) + get_folder_info(archivos/) → si ≥ 50GB → cortar
- Notas:
* render() requiere Chromium instalado y recursos; costoso en CPU/RAM
* Cuidado con sitios SPA/anti-bot; timeouts (30s)
* max_depth=6 limita explosión de enlaces; se puede poner filtro de dominio
=============================================================================================================
[ download_and_save_file(url, archivos/) ]
- Descarga streaming (chunk 8192) con requests.get(url, stream=True, timeout=30)
- Filename = clean_filename(último segmento URL) || 'archivo_descargado'
- Escribe binario en archivos/
- Errores:
* response.status_code != 200 → log
* timeouts/conexión → log
- Seguridad:
* No ejecuta nada; sólo guarda
* Riesgo: HTML/JS guardado como .html/.md puede contener scripts (pero se procesa como texto después)
=============================================================================================================
[ extract_and_save_article(url, articulos/) ]
- GET simple (requests.get, timeout=30)
- Parse HTML: <title> y todos los <p> → concatena texto
- Procesa:
* translate_text() (auto→es)
* clean_text()
- Nombre archivo:
* title → clean_filename(title) + '.txt'
* fallback: último segmento de path URL + '.txt'
- Guarda .txt en articulos/
- Riesgos:
* Páginas con contenido en divs/aria/role no capturado por <p> → menos texto
* Limitaciones del traductor (cuotas, longitudes, errores temporales)
* Si content vacío → log y skip
=============================================================================================================
[ explore_wayback_machine(url, articulos/) ]
- Consulta API: http://archive.org/wayback/available?url={url}
- Si hay 'closest' → archive_url → extract_and_save_article(archive_url)
- Usos:
* Resiliencia ante 404/robots o contenido rotativo
- Riesgos:
* No todas las páginas están archivadas
* Rate limits
=============================================================================================================
[ process_files(archivos/, tokenized/) ]
- Itera archivos descargados por extensión:
.pdf → read_pdf() (PdfReader.extract_text por página)
.csv → read_csv() (csv.reader → " ".join(row))
.txt → open().read() (texto tal cual)
.docx → read_docx() (docx.Document → concat párrafos)
.xlsx → read_xlsx() (openpyxl → concat celdas por fila)
.zip → read_zip() (abre cada entrada, decode utf-8 ignore)
.html/.md → read_html_md() → format_content() [*format_content está vacía → no-op]
- Para cada contenido (si hay texto):
translate_text() → clean_text() → tokenize_and_save(cleaned, filename, tokenized/)
- Notas:
* Archivos binarios dentro del ZIP no-UTF8 se ignoran por decode errors (ignore)
* PDF sin capa de texto → extract_text() puede devolver None
* XLSX grande → memoria/tiempo; iter_rows() es razonable
=============================================================================================================
[ tokenize_all_articles(articulos/, tokenized/) ]
- Para cada .txt en articulos/:
tokenizer.encode(text, truncation=True, max_length=512, add_special_tokens=True)
→ 'ids' separados por espacio → guarda con mismo filename en tokenized/
- Notas:
* Truncation a 512 tokens: se pierde contenido largo (considerar sliding windows)
* add_special_tokens=True añade [CLS]/[SEP]
=============================================================================================================
[ tokenize_and_save(text, filename, tokenized/) ]
- Encapsula la llamada a tokenizer.encode(...) con truncation=512
- Crea tokenized/ si no existe
- Escribe "id id id ..." en archivo de salida
- Riesgos:
* Diferente encoding de entrada → normalizado por clean_text()
* Si filename colisiona con otro (mismo nombre) → se sobrescribe
=============================================================================================================
[ translate_text(text) ]
- GoogleTranslator(source='auto', target='es').translate(text)
- Devuelve texto traducido o el original si error (catch + log)
- Limitaciones:
* Longitudes excesivas → errores (“Text length need to be between 0 and 5000”)
- Solución futura: fragmentar en bloques y recomponer
* Rate limits/cambios API
=============================================================================================================
[ clean_text(text) ]
1) Quita CDATA: regex '<!\[\s*CDATA\s*\[.*?\]\]>' con flags=re.S
2) BeautifulSoup(text, 'html.parser').get_text(separator=" ")
3) lower()
4) Elimina URLs: regex r'http\S+'
5) Deja sólo letras españolas y espacios: r'[^a-záéíóúñü\s]' → ''
6) Colapsa espacios: r'\s+' → ' ' + strip()
7) Filtra STOPWORDS (set ES) palabra a palabra
- Resulta en texto normalizado listo para BERT
- Notas:
* Pierde números, signos y acentos raros fuera de set
* STOPWORDS puede ajustarse por dominio (noticias vs. técnico)
=============================================================================================================
[ read_pdf(pdf_path) ]
- Abre en binario, PdfReader(f)
- Recorre páginas → page.extract_text() → concat + '\n'
- Devuelve string (puede estar vacío)
- Limitaciones:
* PDFs escaneados → sin OCR (no texto)
* Layouts complejos → texto desordenado
[ read_csv(csv_path) ]
- csv.reader → por cada fila ' '.join(row) + '\n'
- Simple y robusto; no maneja tipos/formato especial
[ read_docx(docx_path) ]
- docx.Document → concat paragraph.text + '\n'
- Pierde estilos/tablas; conserva sólo texto base
[ read_xlsx(xlsx_path) ]
- openpyxl.load_workbook → por cada hoja → por cada fila
- ' '.join(str(cell.value or '')) + '\n'
- Pierde formato/tipos; sólo valores en orden de fila
[ read_zip(zip_path) ]
- zipfile.ZipFile → recorre cada entry
- z.open(filename).read().decode('utf-8', errors='ignore')
- Concatena todo a un sólo string
- Peligros: ZIP enorme → memoria; entries binarias → ignoradas por decode
[ read_html_md(file_path) ]
- open(file, 'utf-8', errors='replace').read()
- Retorna string crudo (sin limpieza HTML aquí)
- format_content() se invoca después (actualmente vacío)
[ format_content(html_content) ]
- [PLACEHOLDER] En el snippet está sin implementar.
- Potencial:
* html2text → Markdown plano
* Limpieza de scripts/estilos/menus
* Normalización de espacios/entidades
- Hoy actúa como NO-OP (debería rellenarse)
=============================================================================================================
[ get_page_title(url) ]
- GET(url, timeout=10) → BeautifulSoup → <title>.text.strip()
- Devuelve None si falla o no hay <title>
- Usado para nombrar archivos de artículos
[ clean_filename(name) ]
- Reemplaza caracteres prohibidos [\/*?:"<>|] por "_"
- Espacios → "_"; corta a 100 chars
- Evita errores en FS; normaliza nombres
[ get_folder_info(path) ]
- Recorre recursivo → suma tamaño de ficheros y cuenta
- Devuelve (total_size_bytes, total_files)
- Usado para métricas y para detener por límite
=============================================================================================================
[ LOGGING / MÉTRICAS / LÍMITES ]
- logging.INFO por etapas (descargar, extraer, traducir, limpiar, tokenizar)
- Límite de tamaño: 50GB (archivos + artículos) → detiene crawling
- Resumen final:
* Artículos descargados (# y MB)
* Archivos descargados (# y MB)
* Archivos tokenizados (# y MB)
- Sugerencias:
* Añadir manejo de reintentos/backoff a requests
* Cache de traducciones por hash (ahorro de coste/tiempo)
* Paralelización controlada (cola + límites I/O/CPU)
* Particionar tokenized/ por subcarpetas si #ficheros crece
=============================================================================================================
[ DATA FLOW (RESUMEN) ]
URLs ──► register_processed_notifications ──► explore_* (HTMLSession/render/links)
└────────► extract_and_save_article ──► translate_text ─► clean_text ─► articulos/*.txt
└────────► download_and_save_file ─────────────────────────────────────► archivos/*
archivos/* ──► process_files (read_* → translate → clean → tokenize) ──► tokenized/*
articulos/*.txt ──► tokenize_all_articles ───────────────────────────────► tokenized/*
tokenized/*, articulos/*, archivos/* ──► get_folder_info + logs
████████████████████████████████████████████████████████████████████████████████████

111
FLUJOS_DATOS/NOTICIAS/docs.txt Executable file
View file

@ -0,0 +1,111 @@
# Descripción del Proyecto
Este proyecto se encarga de extraer, limpiar, y tokenizar artículos y archivos de diversas fuentes web. El programa realiza las siguientes tareas principales:
1. **Extracción de artículos**: Extrae contenido de artículos desde sitios web especificados.
2. **Descarga de archivos**: Descarga archivos en diferentes formatos como PDF, CSV, TXT, XLSX, DOCX, HTML, MD, y ZIP.
3. **Procesamiento de archivos**: Lee el contenido de los archivos descargados y los prepara para la tokenización.
4. **Tokenización**: Tokeniza el contenido de los artículos y archivos para su posterior análisis.
# Estructura del Proyecto
- `main_noticias.py`: Script principal que coordina todas las tareas.
- `noticias_utils.py`: Contiene las funciones auxiliares para la extracción, descarga, limpieza, lectura, procesamiento y tokenización de los archivos.
- `articulos/`: Directorio donde se guardan los artículos extraídos.
- `archivos/`: Directorio donde se guardan los archivos descargados.
# Paquetes Necesarios
Para que este proyecto funcione correctamente, se deben instalar los siguientes paquetes de Python:
- `requests`
- `beautifulsoup4`
- `transformers`
- `PyPDF2`
- `docx`
- `openpyxl`
- `urllib3`
# Comandos para Instalar los Paquetes
Primero, asegúrate de tener pip actualizado:
```bash
pip install --upgrade pip
pip install requests beautifulsoup4 transformers PyPDF2 python-docx openpyxl urllib3
Luego, instala los paquetes necesarios:
bash
pip install requests beautifulsoup4 transformers PyPDF2 python-docx openpyxl urllib3
Creación y Activación del Entorno Virtual
Dado que ya existe un entorno virtual llamado myenv en la carpeta FLUJOS_DATOS, puedes activarlo para evitar conflictos. Aquí están los pasos para crear y activar un entorno virtual, si es necesario.
Creación del Entorno Virtual
Si necesitas crear un nuevo entorno virtual, sigue estos pasos:
bash
cd ~/PROGRAMACION/FLUJOS_TODO/FLUJOS_DATOS
python3 -m venv myenv
Activación del Entorno Virtual
Para activar el entorno virtual myenv, utiliza los siguientes comandos:
En Linux/MacOS:
bash
source ~/PROGRAMACION/FLUJOS_TODO/FLUJOS_DATOS/myenv/bin/activate
En Windows (cmd):
cmd
myenv\Scripts\activate
En Windows (PowerShell):
powershell
myenv\Scripts\Activate.ps1
Una vez activado el entorno virtual, podrás instalar los paquetes necesarios y ejecutar los scripts.
Ejecución del Programa
Asegúrate de que el entorno virtual está activado.
Navega hasta la carpeta NOTICIAS:
bash
cd ~/PROGRAMACION/FLUJOS_TODO/FLUJOS_DATOS/NOTICIAS
Ejecuta el script principal:
bash
python main_noticias.py
El programa extraerá, descargará, procesará y tokenizará los artículos y archivos según las fuentes web especificadas en el script.
Notas Adicionales
Asegúrate de que las carpetas articulos y archivos existen antes de ejecutar el script.
Puedes modificar las URLs y las configuraciones en main_noticias.py y noticias_utils.py según tus necesidades específicas.
Contacto
Para cualquier duda o problema con el script, por favor, contacta con el administrador del proyecto.
r
Este `docs.txt` proporciona una guía clara y detallada sobre cómo configurar y ejecutar el proyecto, incluyendo todos los comandos necesarios para instalar los paquetes y configurar el entorno virtual.
digo la parte del entorno virtual y todos estos pasos

View file

@ -0,0 +1,625 @@
from deep_translator import GoogleTranslator
from deep_translator import GoogleTranslator
import os
import re
import hashlib
import requests
import json
import time
import logging
from requests_html import HTMLSession
from bs4 import BeautifulSoup
from PyPDF2 import PdfReader
import csv
import docx
import openpyxl
import zipfile
import html2text
from transformers import BertTokenizer
from tqdm import tqdm
from urllib.parse import urlparse, urljoin
# Configuración de logging para mostrar información en la terminal
logging.basicConfig(level=logging.INFO)
# Inicializar el tokenizador de BERT en español
tokenizer = BertTokenizer.from_pretrained('dccuchile/bert-base-spanish-wwm-cased')
# Lista de stopwords en español
STOPWORDS = set([
"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", "", "porque",
"esta", "son", "entre", "cuando", "muy", "sin", "sobre", "también", "me",
"hasta", "hay", "donde", "quien", "desde", "todo", "nos", "durante",
"todos", "uno", "les", "ni", "contra", "otros", "ese", "eso", "ante",
"ellos", "e", "esto", "", "antes", "algunos", "qué", "unos", "yo",
"otro", "otras", "otra", "él", "tanto", "esa", "estos", "mucho",
"quienes", "nada", "muchos", "cual", "poco", "ella", "estar", "estas",
"algunas", "algo", "nosotros", "mi", "mis", "", "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"
])
def translate_text(text):
"""
Traduce el texto completo usando deep-translator.
"""
try:
return GoogleTranslator(source='auto', target='es').translate(text)
except Exception as e:
logging.error(f"Error al traducir con deep-translator: {e}")
return text
def clean_text(text):
"""
Limpia el texto eliminando bloques CDATA (incluso con espacios extra),
luego HTML, puntuación y stopwords.
"""
# 1) Eliminar cualquier variante de CDATA (p. ej. '<![ CDATA [ ... ]]>')
text = re.sub(r'<\!\[\s*CDATA\s*\[.*?\]\]>', '', text, flags=re.S)
# 2) Parsear HTML
soup = BeautifulSoup(text, 'html.parser')
text = soup.get_text(separator=" ")
# 3) Minúsculas
text = text.lower()
# 4) Eliminar URLs
text = re.sub(r'http\S+', '', text)
# 5) Quitar todo menos letras y espacios
text = re.sub(r'[^a-záéíóúñü\s]', '', text)
# 6) Unir múltiples espacios
text = re.sub(r'\s+', ' ', text).strip()
# 7) Eliminar stopwords
words = text.split()
filtered = [w for w in words if w not in STOPWORDS]
return ' '.join(filtered)
def tokenize_and_save(text, filename, destination_folder):
# → Tu lógica de tokenización con el tokenizer BERT
tokens = tokenizer.encode(
text,
truncation=True,
max_length=512,
add_special_tokens=True
)
tokens_str = ' '.join(map(str, tokens))
# Nos aseguramos de que el directorio destino existe
os.makedirs(destination_folder, exist_ok=True)
# Usamos filename **tal cual** para el fichero de salida
out_path = os.path.join(destination_folder, filename)
with open(out_path, 'w', encoding='utf-8') as f:
f.write(tokens_str)
def tokenize_all_articles(articles_folder, destination_folder):
"""
Tokeniza todos los artículos en la carpeta especificada.
"""
if not os.path.exists(destination_folder):
os.makedirs(destination_folder)
logging.info("Iniciando proceso de tokenización...")
total_articles = 0
total_size = 0
for root, dirs, files in os.walk(articles_folder):
for file in files:
if file.endswith('.txt'):
file_path = os.path.join(root, file)
with open(file_path, 'r', encoding='utf-8') as f:
content = f.read()
tokenize_and_save(content, file, destination_folder)
total_articles += 1
total_size += os.path.getsize(file_path)
total_size_mb = total_size / (1024 * 1024)
logging.info(f"Tokenización completada para {total_articles} artículos.")
logging.info(f"Tamaño total de artículos tokenizados: {total_size_mb:.2f} MB.")
def read_pdf(pdf_path):
"""
Lee y extrae texto de un archivo PDF.
"""
content = ''
try:
with open(pdf_path, 'rb') as f:
pdf_reader = PdfReader(f)
for page in pdf_reader.pages:
text = page.extract_text()
if text:
content += text + '\n'
except Exception as e:
logging.error(f"Error al leer PDF {pdf_path}: {e}")
return content
def read_csv(csv_path):
"""
Lee y extrae texto de un archivo CSV.
"""
content = ''
try:
with open(csv_path, 'r', encoding='utf-8') as f:
reader = csv.reader(f)
for row in reader:
content += ' '.join(row) + '\n'
except Exception as e:
logging.error(f"Error al leer CSV {csv_path}: {e}")
return content
def read_docx(docx_path):
"""
Lee y extrae texto de un archivo DOCX.
"""
content = ''
try:
doc = docx.Document(docx_path)
for paragraph in doc.paragraphs:
content += paragraph.text + '\n'
except Exception as e:
logging.error(f"Error al leer DOCX {docx_path}: {e}")
return content
def read_xlsx(xlsx_path):
"""
Lee y extrae texto de un archivo XLSX.
"""
content = ''
try:
wb = openpyxl.load_workbook(xlsx_path)
for sheet in wb.sheetnames:
ws = wb[sheet]
for row in ws.iter_rows():
row_text = ' '.join([str(cell.value) if cell.value is not None else '' for cell in row])
content += row_text + '\n'
except Exception as e:
logging.error(f"Error al leer XLSX {xlsx_path}: {e}")
return content
def read_zip(zip_path):
"""
Lee y extrae texto de un archivo ZIP.
"""
content = ''
try:
with zipfile.ZipFile(zip_path, 'r') as z:
for filename in z.namelist():
with z.open(filename) as f:
file_content = f.read().decode('utf-8', errors='ignore')
content += file_content + '\n'
except Exception as e:
logging.error(f"Error al leer ZIP {zip_path}: {e}")
return content
def read_html_md(file_path):
"""
Lee y extrae texto de un archivo HTML o Markdown.
"""
content = ''
try:
with open(file_path, 'r', encoding='utf-8', errors='replace') as f:
content = f.read()
except Exception as e:
logging.error(f"Error al leer HTML/MD {file_path}: {e}")
return content
def format_content(html_content):
"""
Convierte contenido HTML a texto plano.
"""
h = html2text.HTML2Text()
h.ignore_links = True
h.ignore_images = True
text = h.handle(html_content)
return text
def process_files(files_folder, destination_folder):
"""
Procesa y tokeniza todos los archivos en la carpeta especificada.
"""
if not os.path.exists(destination_folder):
os.makedirs(destination_folder)
logging.info("Procesando archivos descargados...")
total_files = 0
total_size = 0
for root, dirs, files in os.walk(files_folder):
for file in files:
file_path = os.path.join(root, file)
content = ''
if file.endswith('.pdf'):
content = read_pdf(file_path)
elif file.endswith('.csv'):
content = read_csv(file_path)
elif file.endswith('.txt'):
try:
with open(file_path, 'r', encoding='utf-8') as f:
content = f.read()
except Exception as e:
logging.error(f"Error al leer TXT {file_path}: {e}")
elif file.endswith('.docx'):
content = read_docx(file_path)
elif file.endswith('.xlsx'):
content = read_xlsx(file_path)
elif file.endswith('.zip'):
content = read_zip(file_path)
elif file.endswith('.html') or file.endswith('.md'):
content = read_html_md(file_path)
content = format_content(content)
else:
logging.info(f"Formato de archivo no soportado: {file}")
continue
if content:
translated_text = translate_text(content)
cleaned_text = clean_text(translated_text)
tokenize_and_save(cleaned_text, file, destination_folder)
total_files += 1
total_size += os.path.getsize(file_path)
total_size_mb = total_size / (1024 * 1024)
logging.info(f"Procesamiento completado para {total_files} archivos.")
logging.info(f"Tamaño total de archivos procesados: {total_size_mb:.2f} MB.")
def download_and_save_file(url, destination_folder):
"""
Descarga y guarda un archivo desde la URL especificada.
"""
try:
logging.info(f"Descargando archivo: {url}")
response = requests.get(url, stream=True, timeout=30)
if response.status_code == 200:
filename = clean_filename(url.split('/')[-1])
if not filename:
filename = 'archivo_descargado'
file_path = os.path.join(destination_folder, filename)
with open(file_path, 'wb') as f:
for chunk in response.iter_content(chunk_size=8192):
f.write(chunk)
logging.info(f"Archivo descargado: {file_path}")
else:
logging.info(f"Error al descargar {url}: Código de estado {response.status_code}")
except Exception as e:
logging.error(f"Error al descargar {url}: {e}")
def extract_and_save_article(url, articles_folder):
"""
Extrae y guarda el contenido de un artículo desde la URL especificada.
"""
try:
logging.info(f"Extrayendo artículo: {url}")
response = requests.get(url, timeout=30)
if response.status_code == 200:
soup = BeautifulSoup(response.content, 'html.parser')
title_tag = soup.find('title')
title = title_tag.get_text().strip() if title_tag else None
paragraphs = soup.find_all('p')
content = ' '.join([para.get_text() for para in paragraphs])
if content.strip():
translated_text = translate_text(content)
cleaned_text = clean_text(translated_text)
if title:
filename = clean_filename(title) + '.txt'
else:
parsed_url = urlparse(url)
filename = clean_filename(parsed_url.path.split('/')[-1]) + '.txt'
file_path = os.path.join(articles_folder, filename)
with open(file_path, 'w', encoding='utf-8') as f:
f.write(cleaned_text)
logging.info(f"Artículo guardado: {file_path}")
else:
logging.info(f"No se encontró contenido en {url}")
else:
logging.info(f"Error al acceder a {url}: Código de estado {response.status_code}")
except Exception as e:
logging.error(f"Error al extraer artículo de {url}: {e}")
def get_page_title(url):
"""
Obtiene el título de la página web desde la URL especificada.
"""
try:
response = requests.get(url, timeout=10)
if response.status_code == 200:
soup = BeautifulSoup(response.content, 'html.parser')
title_tag = soup.find('title')
return title_tag.get_text().strip() if title_tag else None
else:
return None
except Exception as e:
logging.error(f"Error al obtener el título de la página {url}: {e}")
return None
def clean_filename(name):
"""
Limpia el nombre del archivo eliminando caracteres no permitidos.
"""
if name is None:
return 'sin_nombre'
name = re.sub(r'[\\/*?:"<>|]', "_", name)
name = re.sub(r'\s+', '_', name)
return name[:100]
def register_processed_notifications(base_folder, urls):
"""
Registra las URLs ya procesadas para evitar duplicados.
"""
if not os.path.exists(base_folder):
os.makedirs(base_folder)
txt_path = os.path.join(base_folder, "processed_articles.txt")
processed_urls = set()
if os.path.exists(txt_path):
with open(txt_path, 'r') as f:
processed_urls = set(f.read().splitlines())
urls_to_process = [url for url in urls if url not in processed_urls]
with open(txt_path, 'a') as f:
for url in urls_to_process:
f.write(url + "\n")
if processed_urls:
logging.info(f"Artículos ya procesados: {len(processed_urls)}")
else:
logging.info("No hay artículos procesados previamente.")
return urls_to_process
def explore_wayback_machine(url, articles_folder):
"""
Explora la Wayback Machine para obtener versiones archivadas de la URL.
"""
try:
logging.info(f"Explorando Wayback Machine para: {url}")
api_url = f"http://archive.org/wayback/available?url={url}"
response = requests.get(api_url, timeout=10)
data = response.json()
if 'archived_snapshots' in data and 'closest' in data['archived_snapshots']:
archive_url = data['archived_snapshots']['closest']['url']
logging.info(f"Descargando desde Wayback Machine: {archive_url}")
extract_and_save_article(archive_url, articles_folder)
else:
logging.info(f"No se encontró versión archivada para {url}")
except Exception as e:
logging.error(f"Error al explorar Wayback Machine para {url}: {e}")
def get_folder_info(path):
"""
Obtiene información de la carpeta: tamaño total y número de archivos.
"""
total_size = 0
total_files = 0
for dirpath, dirnames, filenames in os.walk(path):
for f in filenames:
fp = os.path.join(dirpath, f)
total_size += os.path.getsize(fp)
total_files += 1
return total_size, total_files
def explore_and_extract_articles(url, articles_folder, files_folder, processed_urls, size_limit, depth=0, max_depth=6):
"""
Explora y extrae artículos y archivos desde la URL especificada.
"""
if depth > max_depth:
return
logging.info(f"Explorando {url} en profundidad {depth}...")
try:
session = HTMLSession()
response = session.get(url, timeout=30)
response.html.render(timeout=30, sleep=1)
links = response.html.absolute_links
session.close()
except Exception as e:
logging.error(f"Error al acceder a {url}: {e}")
return
for link in links:
if link in processed_urls:
continue
processed_urls.add(link)
parsed_link = urlparse(link)
file_extension = os.path.splitext(parsed_link.path)[1].lower()
if file_extension in ['.pdf', '.csv', '.txt', '.xlsx', '.docx', '.html', '.md', '.zip']:
download_and_save_file(link, files_folder)
elif 'mailto:' in link or 'tel:' in link:
continue
else:
extract_and_save_article(link, articles_folder)
explore_and_extract_articles(link, articles_folder, files_folder, processed_urls, size_limit, depth + 1, max_depth)
total_size_articles, _ = get_folder_info(articles_folder)
total_size_files, _ = get_folder_info(files_folder)
total_size = total_size_articles + total_size_files
if total_size >= size_limit:
logging.info("Se ha alcanzado el límite de tamaño de 50 GB. Deteniendo exploración.")
return
def main():
logging.info("Función: main")
urls = [
'https://reactionary.international/database/',
'https://aleph.occrp.org/',
'https://offshoreleaks.icij.org/',
'https://www.publico.es/',
'https://www.elsaltodiario.com/',
'https://www.nytimes.com/',
'https://www.theguardian.com/',
'https://www.lemonde.fr/',
'https://www.spiegel.de/',
'https://elpais.com/',
'https://www.repubblica.it/',
'https://www.scmp.com/',
'https://www.smh.com.au/',
'https://www.globo.com/',
'https://timesofindia.indiatimes.com/',
'https://www.asahi.com/',
'https://www.washingtonpost.com/',
'https://www.aljazeera.com/',
'https://www.folha.uol.com.br/',
'https://www.telegraph.co.uk/',
'https://www.corriere.it/',
'https://www.clarin.com/',
'https://www.eluniversal.com.mx/',
'https://www.welt.de/',
'https://www.lanacion.com.ar/',
'https://www.bbc.com/',
'https://www.elconfidencial.com/',
'https://www.expansion.com/',
'https://www.lavanguardia.com/',
'https://www.elperiodico.com/',
'https://www.abc.es/',
'https://www.elespanol.com/',
'https://www.lainformacion.com/',
'https://www.elcorreo.com/',
'https://www.canarias7.es/',
'https://www.diariovasco.com/',
'https://www.farodevigo.es/',
'https://www.lavozdegalicia.es/',
'https://www.marca.com/',
'https://www.mundodeportivo.com/',
'https://www.elmundo.es/',
'https://www.cnbc.com/',
'https://www.bloomberg.com/',
'https://www.forbes.com/',
'https://www.economist.com/',
'https://www.ft.com/',
'https://www.wsj.com/',
'https://www.technologyreview.com/',
'https://www.cyberdefensemagazine.com/',
'https://www.securityweek.com/',
'https://www.darkreading.com/',
'https://www.infosecurity-magazine.com/',
'https://www.helpnetsecurity.com/',
'https://www.computerweekly.com/',
'https://www.csoonline.com/',
'https://www.zdnet.com/',
'https://www.itpro.co.uk/',
'https://www.theregister.com/',
'https://www.datacenterdynamics.com/',
'https://www.scmagazine.com/',
'https://www.teiss.co.uk/',
'https://www.tripwire.com/',
'https://www.infoworld.com/',
'https://www.cnet.com/',
'https://www.tomsguide.com/',
'https://www.theverge.com/',
'https://www.arstechnica.com/',
'https://www.engadget.com/',
'https://www.gizmodo.com/',
'https://www.wired.com/',
'https://www.vice.com/',
'https://www.politico.com/',
'https://www.theatlantic.com/',
'https://www.newyorker.com/',
'https://www.rollingstone.com/',
'https://www.thedailybeast.com/',
'https://www.salon.com/',
'https://www.slate.com/',
'https://www.huffpost.com/',
'https://www.vox.com/',
'https://www.bbc.co.uk/news',
'https://www.dailymail.co.uk/home/index.html',
'https://www.independent.co.uk/',
'https://www.irishtimes.com/',
'https://www.thejournal.ie/',
'https://www.thetimes.co.uk/',
'https://www.thesun.co.uk/',
'https://www.telegraph.co.uk/',
'https://www.euronews.com/',
'https://www.reuters.com/',
'https://www.dw.com/',
'https://www.france24.com/',
'https://www.lefigaro.fr/',
'https://www.lemonde.fr/',
'https://www.derstandard.at/',
'https://www.nzz.ch/',
'https://www.eldiario.es/',
'https://www.rtve.es/',
'https://www.rt.com/',
'https://www.elciudadano.com/',
'https://www.apnews.com/',
'https://www.univision.com/',
'https://www.televisa.com/',
'https://www.bbc.com/',
'https://www.cnn.com/',
'https://www.foxnews.com/',
'https://www.aljazeera.com/',
'https://www.trtworld.com/',
'https://www.newsweek.com/',
'https://www.time.com/',
'https://www.spectator.co.uk/'
]
base_folder = '/var/www/theflows.net/flujos/FLUJOS_DATOS/NOTICIAS'
articles_folder = os.path.join(base_folder, 'articulos')
files_folder = os.path.join(base_folder, 'archivos')
tokenized_folder = os.path.join(base_folder, 'tokenized')
for folder in [articles_folder, files_folder, tokenized_folder]:
if not os.path.exists(folder):
os.makedirs(folder)
FOLDER_SIZE_LIMIT = 50 * 1024 * 1024 * 1024 # 50 GB
urls_to_process = register_processed_notifications(base_folder, urls)
processed_urls = set()
for url in urls_to_process:
logging.info(f"\nProcesando URL: {url}")
explore_and_extract_articles(url, articles_folder, files_folder, processed_urls, FOLDER_SIZE_LIMIT)
explore_wayback_machine(url, articles_folder)
process_files(files_folder, tokenized_folder)
tokenize_all_articles(articles_folder, tokenized_folder)
total_size_articles, total_files_articles = get_folder_info(articles_folder)
total_size_files, total_files_files = get_folder_info(files_folder)
total_size_tokenized, total_files_tokenized = get_folder_info(tokenized_folder)
logging.info("\nResumen del proceso:")
logging.info(f"Artículos descargados: {total_files_articles}")
logging.info(f"Tamaño total de artículos: {total_size_articles / (1024 * 1024):.2f} MB")
logging.info(f"Archivos descargados: {total_files_files}")
logging.info(f"Tamaño total de archivos: {total_size_files / (1024 * 1024):.2f} MB")
logging.info(f"Archivos tokenizados: {total_files_tokenized}")
logging.info(f"Tamaño total de archivos tokenizados: {total_size_tokenized / (1024 * 1024):.2f} MB.")
if __name__ == "__main__":
main()

View file

@ -0,0 +1,5 @@
https://aleph.occrp.org/
https://offshoreleaks.icij.org/
https://reactionary.international/database/
https://www.elsaltodiario.com/
https://www.publico.es/

View file

@ -0,0 +1,196 @@
https://reactionary.international/database/
https://aleph.occrp.org/
https://offshoreleaks.icij.org/
https://www.publico.es/
https://www.elsaltodiario.com/
https://www.nytimes.com/
https://www.theguardian.com/
https://www.lemonde.fr/
https://www.spiegel.de/
https://elpais.com/
https://www.repubblica.it/
https://www.scmp.com/
https://www.smh.com.au/
https://www.globo.com/
https://timesofindia.indiatimes.com/
https://www.asahi.com/
https://www.washingtonpost.com/
https://www.aljazeera.com/
https://www.folha.uol.com.br/
https://www.telegraph.co.uk/
https://www.corriere.it/
https://www.clarin.com/
https://www.eluniversal.com.mx/
https://www.welt.de/
https://www.lanacion.com.ar/
https://www.bbc.com/
https://www.elconfidencial.com/
https://www.expansion.com/
https://www.lavanguardia.com/
https://www.elperiodico.com/
https://www.abc.es/
https://www.elespanol.com/
https://www.lainformacion.com/
https://www.elcorreo.com/
https://www.canarias7.es/
https://www.diariovasco.com/
https://www.farodevigo.es/
https://www.lavozdegalicia.es/
https://www.marca.com/
https://www.mundodeportivo.com/
https://www.elmundo.es/
https://www.wired.com/
https://www.techcrunch.com/
https://www.cybersecurity-insiders.com/
https://www.darkreading.com/
https://www.hackread.com/
https://www.theregister.com/
https://www.csoonline.com/
https://www.scmagazine.com/
https://www.securityweek.com/
https://www.infosecurity-magazine.com/
https://www.hackaday.com/
https://www.economist.com/
https://www.ft.com/
https://www.bloomberg.com/
https://www.wsj.com/
https://www.forbes.com/
https://www.businessinsider.com/
https://www.reuters.com/
https://www.cnbc.com/
https://www.nbcnews.com/
https://www.cbsnews.com/
https://www.abcnews.go.com/
https://www.vox.com/
https://www.politico.com/
https://www.euronews.com/
https://www.france24.com/
https://www.rt.com/
https://www.al-monitor.com/
https://www.jpost.com/
https://www.haaretz.com/
https://www.middleeasteye.net/
https://www.indiatoday.in/
https://www.chinadaily.com.cn/
https://www.japantimes.co.jp/
https://www.koreatimes.co.kr/
https://www.thehindu.com/
https://www.nikkei.com/
https://www.manilatimes.net/
https://www.bangkokpost.com/
https://www.theaustralian.com.au/
https://www.nzherald.co.nz/
https://www.theglobeandmail.com/
https://www.torontostar.com/
https://www.ctvnews.ca/
https://www.globalnews.ca/
https://www.thehill.com/
https://www.breitbart.com/
https://www.nationalreview.com/
https://www.slate.com/
https://www.newyorker.com/
https://www.atlanticcouncil.org/
https://www.chathamhouse.org/
https://www.rand.org/
https://www.cfr.org/
https://www.brookings.edu/
https://www.carnegieendowment.org/
https://www.wilsoncenter.org/
https://www.hoover.org/
https://www.csis.org/
https://www.heritage.org/
https://www.aspi.org.au/
https://www.iiss.org/
https://www.rusi.org/
https://www.intelligenceonline.com/
https://www.sit.kb.gov.tr/
https://www.securitymagazine.com/
https://www.zdnet.com/
https://www.helpnetsecurity.com/
https://www.bankinfosecurity.com/
https://www.nsa.gov/
https://www.fbi.gov/
https://www.mi5.gov.uk/
https://www.mi6.gov.uk/
https://www.mss.gov.cn/
https://www.bnd.bund.de/
https://www.cni.es/
https://www.cis.es/
https://www.dni.gov/
https://www.mossad.gov.il/
https://www.afp.gov.au/
https://www.royalnavy.mod.uk/
https://www.gov.uk/government/organisations/foreign-commonwealth-office
https://www.cabinetoffice.gov.uk/
https://www.janes.com/
https://www.gov.uk/government/organisations/defence-intelligence
https://www.nato.int/
https://www.un.org/en/
https://www.worldbank.org/
https://www.imf.org/
https://www.weforum.org/
https://www.oecd.org/
https://www.wto.org/
https://www.unesco.org/
https://www.who.int/
https://www.icc-cpi.int/
https://www.eurojust.europa.eu/
https://www.europol.europa.eu/
https://www.dia.mil/
https://www.nro.gov/
https://www.cia.gov/
https://www.sis.gov.uk/
https://www.interpol.int/
https://www.intel.gov/
https://www.financialtimes.com/
https://www.wallstreetjournal.com/
https://www.fortune.com/
https://www.marketwatch.com/
https://www.barrons.com/
https://www.nasdaq.com/
https://www.sec.gov/
https://www.nyse.com/
https://www.isda.org/
https://www.technologyreview.com/
https://www.cyberdefensemagazine.com/
https://www.computerweekly.com/
https://www.itpro.co.uk/
https://www.datacenterdynamics.com/
https://www.teiss.co.uk/
https://www.tripwire.com/
https://www.infoworld.com/
https://www.cnet.com/
https://www.tomsguide.com/
https://www.theverge.com/
https://www.arstechnica.com/
https://www.engadget.com/
https://www.gizmodo.com/
https://www.vice.com/
https://www.theatlantic.com/
https://www.rollingstone.com/
https://www.thedailybeast.com/
https://www.salon.com/
https://www.huffpost.com/
https://www.bbc.co.uk/news
https://www.dailymail.co.uk/home/index.html
https://www.independent.co.uk/
https://www.irishtimes.com/
https://www.thejournal.ie/
https://www.thetimes.co.uk/
https://www.thesun.co.uk/
https://www.dw.com/
https://www.lefigaro.fr/
https://www.derstandard.at/
https://www.nzz.ch/
https://www.eldiario.es/
https://www.rtve.es/
https://www.elciudadano.com/
https://www.apnews.com/
https://www.univision.com/
https://www.televisa.com/
https://www.cnn.com/
https://www.foxnews.com/
https://www.trtworld.com/
https://www.newsweek.com/
https://www.time.com/
https://www.spectator.co.uk/

View file

@ -0,0 +1,101 @@
#!/usr/bin/env python3
import time
import shutil
from pymongo import MongoClient
def print_header(title):
width = shutil.get_terminal_size().columns
print("\n" + title.center(width, "") + "\n")
def draw_bar(progress, total, length=40):
"""Dibuja una barra de progreso de longitud `length`."""
proportion = progress / total if total else 0
filled = int(proportion * length)
bar = "[" + "#" * filled + "-" * (length - filled) + "]"
return f"{bar} {progress}/{total} ({proportion*100:5.1f}%)"
def main():
# ─────────────────────────────────────────────────────────────────────────────
# 1) Conexión y estado general
# ─────────────────────────────────────────────────────────────────────────────
print_header("Conexión a MongoDB")
t0 = time.perf_counter()
client = MongoClient('mongodb://localhost:27017')
admin = client.admin.command('serverStatus')
print(f" Ping: {client.admin.command('ping')['ok']}")
print(f" Uptime (s): {admin['uptime']:.0f}")
print(f" Conexiones actuales: {admin['connections']['current']}")
mem = admin.get('mem', {})
resident = mem.get('resident', 0)
print(f" Memoria resident (MB): {resident:.2f}")
db = client['FLUJOS_DATOS']
cols = db.list_collection_names()
print(f" Collections: {len(cols)}")
total_docs = sum(db[c].estimated_document_count() for c in cols)
print(f" Documents: {total_docs:,}")
print(f" Tiempo tramo: {(time.perf_counter()-t0):.2f} s")
# ─────────────────────────────────────────────────────────────────────────────
# 2) Estadísticas por colección y por tema
# ─────────────────────────────────────────────────────────────────────────────
collections = ['noticias','wikipedia','torrents']
for idx, col in enumerate(collections, start=1):
print_header(f"{idx}) Estadísticas de «{col.upper()}»")
t1 = time.perf_counter()
coll = db[col]
cnt = coll.estimated_document_count()
stats = db.command("collStats", col)
size_mb = stats['size'] / (1024*1024)
idx_mb = stats['totalIndexSize'] / (1024*1024)
total_mb = size_mb + idx_mb
print(f" Total documentos : {cnt:,}")
print(f" Tamaño data : {size_mb:8.1f} MB {draw_bar(size_mb, total_mb)}")
print(f" Tamaño índices : {idx_mb:8.1f} MB {draw_bar(idx_mb, total_mb)}")
temas = coll.distinct("tema")
for tema in temas:
n = coll.count_documents({"tema": tema})
print(f"{tema:>25}: {n:6,} {draw_bar(n, cnt)}")
print(f" Tiempo tramo : {(time.perf_counter()-t1):.2f} s")
# ─────────────────────────────────────────────────────────────────────────────
# 3) Enlaces Totales y buckets de porcentaje_similitud (con barra en vivo)
# ─────────────────────────────────────────────────────────────────────────────
print_header(f"{len(collections)+1}) Enlaces y Buckets de Similitud")
comp = db['comparaciones']
total_links = comp.estimated_document_count()
print(f" Total enlaces: {total_links:,}\n")
# Definimos los límites de los buckets
boundaries = [0, 1, 2, 5, 10, 20, 50]
labels = [f"{boundaries[i]}{boundaries[i+1]}%" for i in range(len(boundaries)-1)] + ["50%+"]
bucket_counts = []
t2 = time.perf_counter()
print(" Calculando buckets:")
for i, label in enumerate(labels):
low = boundaries[i]
high = boundaries[i+1] if i+1 < len(boundaries) else None
# Construimos la consulta para este bucket
if high is not None:
query = {"porcentaje_similitud": {"$gte": low, "$lt": high}}
else:
query = {"porcentaje_similitud": {"$gte": low}}
# Contamos documentos
count = comp.count_documents(query)
bucket_counts.append((label, count))
# Actualizamos barra de progreso
print("\r " + draw_bar(i+1, len(labels)), end="", flush=True)
print() # salto de línea tras la barra
# Mostramos resultados
for label, count in bucket_counts:
print(f"{label:>7}: {count:>10,} ({count/total_links*100:5.2f}%)")
print(f"\n Tiempo tramo: {(time.perf_counter()-t2):.2f} s")
client.close()
if __name__ == "__main__":
main()

View file

@ -0,0 +1,23 @@
# check_mismatches.py
from pymongo import MongoClient
client = MongoClient('mongodb://localhost:27017')
db = client['FLUJOS_DATOS']
# 1) Todos los nombres únicos que aparecen en comparaciones
comp = db.comparaciones.distinct('noticia1') + db.comparaciones.distinct('noticia2')
comp = set(comp)
# 2) Todos los nombres únicos en las colecciones de nodos
fuentes = ['noticias','wikipedia','torrents','leaks']
todos = set()
for col in fuentes:
if col in db.list_collection_names():
todos |= set(db[col].distinct('archivo'))
sólo_en_comparaciones = comp - todos
sólo_en_fuentes = todos - comp
print(f"Mismatches comparaciones→fuentes: {len(sólo_en_comparaciones)}")
print(f"Mismatches fuentes→comparaciones: {len(sólo_en_fuentes)}")
print("Ejemplos (up to 10):", list(sólo_en_comparaciones)[:10])

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,8 @@
========================================
Informe de procesamiento
========================================
Nuevos archivos procesados: 0
Archivos ya procesados (saltados): 0
Errores de procesamiento: 0
========================================

View file

@ -0,0 +1,359 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import os
import re
import hashlib
import subprocess
from transformers import BertTokenizer
from PyPDF2 import PdfReader
import csv
import docx
import openpyxl
import zipfile
from pptx import Presentation
import pytesseract
from PIL import Image
import sqlite3
from tqdm import tqdm
from bs4 import BeautifulSoup
# =========================
# Stopwords (ES)
# =========================
stopwords = [
"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", "", "porque", "esta", "son", "entre", "cuando", "muy", "sin", "sobre", "también", "me",
"hasta", "hay", "donde", "quien", "desde", "todo", "nos", "durante", "todos", "uno", "les", "ni",
"contra", "otros", "ese", "eso", "ante", "ellos", "e", "esto", "", "antes", "algunos", "qué",
"unos", "yo", "otro", "otras", "otra", "él", "tanto", "esa", "estos", "mucho", "quienes", "nada",
"muchos", "cual", "poco", "ella", "estar", "estas", "algunas", "algo", "nosotros", "mi", "mis",
"", "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"
]
# =========================
# Limpieza y utilidades
# =========================
def limpiar_texto(texto: str) -> str:
texto = texto.lower()
texto = re.sub(r'[^\w\s]', '', texto)
palabras = texto.split()
palabras_limpias = [palabra for palabra in palabras if palabra not in stopwords]
return ' '.join(palabras_limpias)
def limpiar_nombre_archivo(nombre: str) -> str:
# Sustituye caracteres peligrosos por "_"
nombre = re.sub(r'[\\/*?:"<>|]', "_", nombre)
return nombre
# =========================
# Tokenizer
# =========================
tokenizer = BertTokenizer.from_pretrained('dccuchile/bert-base-spanish-wwm-cased')
def tokenizar_y_guardar(texto: str, nombre_archivo: str):
tokens_ids = tokenizer.encode(
texto,
truncation=True,
max_length=512
)
tokens_str = ' '.join(map(str, tokens_ids))
with open(nombre_archivo, 'w', encoding='utf-8') as f:
f.write(tokens_str)
return tokens_ids
# =========================
# Lectores de formatos
# =========================
def leer_pdf(ruta_pdf):
contenido = ''
try:
with open(ruta_pdf, 'rb') as f:
lector_pdf = PdfReader(f)
for pagina in lector_pdf.pages:
contenido += pagina.extract_text() or ''
except Exception as e:
print(f"Error leyendo PDF {ruta_pdf}: {e}")
return contenido
def leer_csv(ruta_csv):
contenido = ''
try:
with open(ruta_csv, 'r', encoding='utf-8', errors='ignore') as f:
reader = csv.reader(f)
for fila in reader:
contenido += ' '.join(fila) + '\n'
except Exception as e:
print(f"Error leyendo CSV {ruta_csv}: {e}")
return contenido
def leer_docx(ruta_docx):
contenido = ''
try:
docx_doc = docx.Document(ruta_docx)
for parrafo in docx_doc.paragraphs:
contenido += parrafo.text + '\n'
except Exception as e:
print(f"Error leyendo DOCX {ruta_docx}: {e}")
return contenido
def leer_doc(ruta_doc):
contenido = ''
try:
# Requiere antiword instalado
resultado = subprocess.run(['antiword', ruta_doc], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
contenido = resultado.stdout.decode('utf-8', errors='ignore')
except Exception as e:
print(f"Error leyendo DOC {ruta_doc}: {e}")
return contenido
def leer_xlsx(ruta_xlsx):
contenido = ''
try:
wb = openpyxl.load_workbook(ruta_xlsx, data_only=True)
for sheet in wb.sheetnames:
ws = wb[sheet]
for row in ws.iter_rows():
contenido += ' '.join([str(cell.value) if cell.value is not None else '' for cell in row]) + '\n'
except Exception as e:
print(f"Error leyendo XLSX {ruta_xlsx}: {e}")
return contenido
def leer_xls(ruta_xls):
contenido = ''
try:
import xlrd
workbook = xlrd.open_workbook(ruta_xls)
for sheet in workbook.sheets():
for row in range(sheet.nrows):
contenido += ' '.join([str(sheet.cell(row, col).value) for col in range(sheet.ncols)]) + '\n'
except Exception as e:
print(f"Error leyendo XLS {ruta_xls}: {e}")
return contenido
def leer_zip(ruta_zip, _carpeta_destino_no_usada):
# Leemos solo .txt dentro del ZIP, sin extraer al disco
contenido = ''
try:
with zipfile.ZipFile(ruta_zip, 'r') as z:
for nombre_archivo in z.namelist():
if nombre_archivo.lower().endswith('.txt'):
with z.open(nombre_archivo) as f:
contenido += f.read().decode('utf-8', errors='ignore') + '\n'
except Exception as e:
print(f"Error leyendo ZIP {ruta_zip}: {e}")
return contenido
def leer_html(ruta_html):
contenido = ''
try:
with open(ruta_html, 'r', encoding='utf-8', errors='ignore') as f:
soup = BeautifulSoup(f, 'html.parser')
contenido = soup.get_text(separator=' ')
except Exception as e:
print(f"Error leyendo HTML {ruta_html}: {e}")
return contenido
def leer_pptx(ruta_pptx):
contenido = ''
try:
prs = Presentation(ruta_pptx)
for slide in prs.slides:
for shape in slide.shapes:
if hasattr(shape, "text"):
contenido += shape.text + '\n'
except Exception as e:
print(f"Error leyendo PPTX {ruta_pptx}: {e}")
return contenido
def leer_imagen(ruta_imagen):
contenido = ''
try:
texto = pytesseract.image_to_string(Image.open(ruta_imagen))
contenido = texto
except Exception as e:
print(f"Error leyendo Imagen {ruta_imagen}: {e}")
return contenido
def leer_db(ruta_db):
contenido = ''
try:
conn = sqlite3.connect(ruta_db)
cursor = conn.cursor()
cursor.execute("SELECT name FROM sqlite_master WHERE type='table';")
tablas = cursor.fetchall()
for tabla in tablas:
cursor.execute(f"SELECT * FROM {tabla[0]}")
filas = cursor.fetchall()
for fila in filas:
contenido += ' '.join(map(str, fila)) + '\n'
conn.close()
except Exception as e:
print(f"Error leyendo DB {ruta_db}: {e}")
return contenido
# =========================
# Log y control de procesados
# =========================
def archivo_procesado(carpeta_txt, archivo_limpio):
return os.path.exists(os.path.join(carpeta_txt, archivo_limpio))
def cargar_archivos_procesados(log_file):
if os.path.exists(log_file):
with open(log_file, 'r', encoding='utf-8', errors='ignore') as f:
return set(f.read().splitlines())
return set()
def actualizar_log(archivo, log_file):
with open(log_file, 'a', encoding='utf-8') as f:
f.write(archivo + '\n')
def guardar_informe_procesamiento(nuevos_procesados, procesados_saltados, errores, ruta_archivo_informe):
with open(ruta_archivo_informe, 'w', encoding='utf-8') as f:
f.write(f"{'='*40}\n")
f.write("Informe de procesamiento\n")
f.write(f"{'='*40}\n\n")
f.write(f"Nuevos archivos procesados: {nuevos_procesados}\n")
f.write(f"Archivos ya procesados (saltados): {procesados_saltados}\n")
f.write(f"Errores de procesamiento: {errores}\n")
f.write(f"{'='*40}\n")
# =========================
# Procesador principal
# =========================
def procesar_archivos(carpeta_archivos, carpeta_txt, log_file, ruta_archivo_informe):
archivos_procesados = cargar_archivos_procesados(log_file)
archivos = []
nuevos_procesados = 0
procesados_saltados = 0
errores = 0
for root, dirs, files in os.walk(carpeta_archivos):
for archivo in files:
archivos.append(os.path.join(root, archivo))
total_size = sum(os.path.getsize(archivo) for archivo in archivos if os.path.exists(archivo))
processed_size = 0
for archivo in tqdm(archivos, desc="Procesando archivos", unit="archivo"):
ruta_archivo = archivo
# Nombre limpio: ruta relativa (sanitizada) + sufijo _limpio.txt (PLANO en txt/)
rel = os.path.relpath(archivo, carpeta_archivos)
archivo_limpio = f"{limpiar_nombre_archivo(rel)}_limpio.txt"
if archivo_procesado(carpeta_txt, archivo_limpio) or archivo_limpio in archivos_procesados:
procesados_saltados += 1
print(f"Archivo {archivo} ya ha sido procesado. Saltando...")
continue
contenido = ''
try:
ext = os.path.splitext(archivo)[1].lower()
if ext == '.pdf':
contenido = leer_pdf(ruta_archivo)
elif ext == '.csv':
contenido = leer_csv(ruta_archivo)
elif ext == '.txt':
with open(ruta_archivo, 'r', encoding='utf-8', errors='ignore') as f:
contenido = f.read()
elif ext == '.docx':
contenido = leer_docx(ruta_archivo)
elif ext == '.doc':
contenido = leer_doc(ruta_archivo)
elif ext == '.xlsx':
contenido = leer_xlsx(ruta_archivo)
elif ext == '.xls':
contenido = leer_xls(ruta_archivo)
elif ext == '.zip':
contenido = leer_zip(ruta_archivo, carpeta_archivos)
elif ext in ('.html', '.htm'):
contenido = leer_html(ruta_archivo)
elif ext in ('.pptx', '.ppt'):
contenido = leer_pptx(ruta_archivo)
elif ext in ('.jpg', '.jpeg', '.png', '.bmp', '.tiff'):
contenido = leer_imagen(ruta_archivo)
elif ext == '.db':
contenido = leer_db(ruta_archivo)
else:
errores += 1
print(f"Tipo de archivo no soportado: {archivo}")
continue
if contenido:
texto_limpio = limpiar_texto(contenido)
nombre_txt_limpio = os.path.join(carpeta_txt, archivo_limpio)
with open(nombre_txt_limpio, 'w', encoding='utf-8') as f:
f.write(texto_limpio)
actualizar_log(archivo_limpio, log_file)
nuevos_procesados += 1
print(f"Procesado y guardado: {archivo}")
else:
# Si no hay contenido, igualmente lo contamos como error leve
errores += 1
print(f"Sin contenido extraído: {archivo}")
except Exception as e:
errores += 1
print(f"Error procesando archivo {archivo}: {e}")
if os.path.exists(ruta_archivo):
processed_size += os.path.getsize(ruta_archivo)
tqdm.write(f"Progreso: {processed_size / 1024 / 1024:.2f} MB de {total_size / 1024 / 1024:.2f} MB procesados")
guardar_informe_procesamiento(nuevos_procesados, procesados_saltados, errores, ruta_archivo_informe)
def tokenizar_todos_archivos(carpeta_txt, carpeta_tokenized):
import os
for root, _, files in os.walk(carpeta_txt):
for archivo in files:
# procesa solo .txt (o cambia a '_limpio.txt' si quieres acotar)
if not archivo.endswith('.txt'):
continue
src = os.path.join(root, archivo)
if not os.path.isfile(src):
continue
# misma ruta relativa y MISMO nombre exacto
rel = os.path.relpath(src, carpeta_txt)
dst = os.path.join(carpeta_tokenized, rel)
os.makedirs(os.path.dirname(dst), exist_ok=True)
if not os.path.exists(dst):
with open(src, 'r', encoding='utf-8', errors='ignore') as f:
contenido = f.read()
tokenizar_y_guardar(contenido, dst)
print(f"[TOK] {rel} -> {os.path.relpath(dst, carpeta_tokenized)}")
print("Tokenización completada para todos los archivos.")
# =========================
# Configuración de rutas
# =========================
ruta_base = os.path.dirname(__file__)
ruta_carpeta = os.path.join(ruta_base, 'files') # carpeta de entrada
carpeta_txt = os.path.join(ruta_base, 'txt') # salidas limpias
carpeta_tokenized = os.path.join(ruta_base, 'tokenized') # salidas tokenizadas
log_file = os.path.join(ruta_base, 'archivos_procesados.log')
ruta_archivo_informe = os.path.join(ruta_base, 'procesado_error.txt')
# =========================
# Main
# =========================
if __name__ == "__main__":
os.makedirs(carpeta_txt, exist_ok=True)
os.makedirs(carpeta_tokenized, exist_ok=True)
procesar_archivos(ruta_carpeta, carpeta_txt, log_file, ruta_archivo_informe)
tokenizar_todos_archivos(carpeta_txt, carpeta_tokenized)

View file

@ -0,0 +1,32 @@
#!/bin/bash
# URL de la página web que contiene los enlaces de torrents
URL="https://file.wikileaks.org/"
# Directorio donde se guardarán los torrents descargados
TORRENT_DIR="home/sito/PROGRAMACION/FLUJOS_TODO_FLUJOS_DATOS/TORRENTS/" # Cambia esta ruta al directorio donde quieras guardar los torrents
# Crear el directorio si no existe
mkdir -p "TORRENTS_WIKILEAKS_COMPLETO"
# Descargar la página web
curl -s "$URL" -o /tmp/page.html
# Extraer los enlaces de torrent (supone que los enlaces contienen ".torrent")
grep -oP 'href="\K[^"]+\.torrent' /tmp/page.html > /tmp/torrent_links.txt
# Descargar cada archivo torrent
while IFS= read -r link; do
# Asegurarse de que el enlace es absoluto
if [[ $link != http* ]]; then
link="${URL}${link}"
fi
# Descargar el archivo torrent
aria2c -d "TORRENTS_WIKILEAKS_COMPLETO" "$link"
done < /tmp/torrent_links.txt
# Limpiar archivos temporales
rm /tmp/page.html /tmp/torrent_links.txt
echo "Descarga de torrents completada."

92
FLUJOS_DATOS/WIKIPEDIA/docs.txt Executable file
View file

@ -0,0 +1,92 @@
# Crear un archivo llamado docs.txt y agregar el contenido necesario
echo "
# Descripción del Programa
Este programa descarga artículos de Wikipedia relacionados con diversas temáticas, limpia y tokeniza el contenido, y guarda los resultados en archivos de texto. También compara la similitud de las palabras entre los primeros dos artículos descargados y calcula un porcentaje de similitud. El programa detiene la descarga cuando el tamaño total de los archivos supera los 10 GB y entonces ejecuta la tokenización de los artículos.
# Paquetes Necesarios
- \`transformers\`: Para tokenización usando BERT.
- \`wikipedia-api\`: Para buscar y obtener el contenido de artículos de Wikipedia.
# Comandos para Instalar los Paquetes en Linux
Primero, asegúrate de tener \`pip\` instalado. Si no lo tienes, puedes instalarlo con:
\`\`\`bash
sudo apt update
sudo apt install python3-pip
\`\`\`
Luego, instala los paquetes necesarios:
\`\`\`bash
pip install transformers wikipedia-api
\`\`\`
# Crear y Activar el Entorno Virtual
Para evitar conflictos con otros proyectos y mantener el entorno limpio, se recomienda usar un entorno virtual. A continuación se muestran los pasos para crear y activar un entorno virtual:
1. **Crear el entorno virtual:**
Navega al directorio de tu proyecto y crea un entorno virtual llamado \`venv\`:
\`\`\`bash
python3 -m venv venv
\`\`\`
2. **Activar el entorno virtual:**
Para activar el entorno virtual, usa el siguiente comando:
\`\`\`bash
source venv/bin/activate
\`\`\`
Verás que el nombre del entorno virtual aparece antes del prompt de la terminal, indicando que el entorno virtual está activado.
3. **Instalar los paquetes en el entorno virtual:**
Una vez activado el entorno virtual, instala los paquetes necesarios:
\`\`\`bash
pip install transformers wikipedia-api
\`\`\`
# Ejecutar el Programa
Con el entorno virtual activado, puedes ejecutar el programa principal:
\`\`\`bash
python3 main.py
\`\`\`
# Estructura del Proyecto
Asegúrate de que tu proyecto tenga la siguiente estructura:
\`\`\`
proyecto/
├── main.py
├── wikipedia_utils.py
├── docs.txt
└── venv/
\`\`\`
- \`main.py\`: Contiene el código principal que descarga, limpia, tokeniza y compara los artículos de Wikipedia.
- \`wikipedia_utils.py\`: Contiene las funciones auxiliares para buscar y obtener contenido de Wikipedia.
- \`docs.txt\`: Este documento de información.
- \`venv/\`: El entorno virtual.
" > docs.txt
# Crear el entorno virtual y activar
python3 -m venv venv
source venv/bin/activate
# Instalar los paquetes necesarios
pip install transformers wikipedia-api
# Mostrar mensaje de finalización
echo "El entorno virtual se ha creado y los paquetes necesarios se han instalado. El contenido de docs.txt se ha generado."

293
FLUJOS_DATOS/WIKIPEDIA/main.py Executable file
View file

@ -0,0 +1,293 @@
import os
import re
import time
from transformers import BertTokenizer
from collections import Counter
from tqdm import tqdm
stopwords = [
"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", "", "porque", "esta", "son", "entre", "cuando", "muy", "sin", "sobre", "también", "me",
"hasta", "hay", "donde", "quien", "desde", "todo", "nos", "durante", "todos", "uno", "les", "ni",
"contra", "otros", "ese", "eso", "ante", "ellos", "e", "esto", "", "antes", "algunos", "qué",
"unos", "yo", "otro", "otras", "otra", "él", "tanto", "esa", "estos", "mucho", "quienes", "nada",
"muchos", "cual", "poco", "ella", "estar", "estas", "algunas", "algo", "nosotros", "mi", "mis",
"", "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"
]
def limpiar_texto(texto):
texto = texto.lower()
texto = re.sub(r'[^\w\s]', '', texto)
palabras = texto.split()
palabras_limpias = [palabra for palabra in palabras if palabra not in stopwords]
return ' '.join(palabras_limpias)
def limpiar_nombre_archivo(nombre):
nombre = re.sub(r'[\\/*?:"<>|]', "_", nombre)
return nombre
tokenizer = BertTokenizer.from_pretrained('dccuchile/bert-base-spanish-wwm-cased')
def tokenizar_y_guardar(texto, nombre_archivo):
tokens_ids = tokenizer.encode(
texto,
truncation=True,
max_length=512
)
tokens_str = ' '.join(map(str, tokens_ids))
with open(nombre_archivo, 'w', encoding='utf-8') as f:
f.write(tokens_str)
return tokens_ids
def obtener_info_carpeta(ruta):
total_size = 0
total_files = 0
for dirpath, dirnames, filenames in os.walk(ruta):
for f in filenames:
fp = os.path.join(dirpath, f)
total_size += os.path.getsize(fp)
total_files += 1
return total_size, total_files
LIMITE_TAMANIO_CARPETA = 100 * 1024 * 1024 * 1024
def TOKENIZER():
if not os.path.exists('articulos_tokenizados'):
os.makedirs('articulos_tokenizados')
archivos = os.listdir('articulos_wikipedia')
for archivo in tqdm(archivos, desc="Tokenizando artículos", unit="archivo"):
ruta_archivo = os.path.join('articulos_wikipedia', archivo)
with open(ruta_archivo, 'r', encoding='utf-8') as f:
contenido = f.read()
tokens_ids = tokenizer.encode(contenido, add_special_tokens=False)
nombre_tokens = os.path.join('articulos_tokenizados', archivo)
with open(nombre_tokens, 'w', encoding='utf-8') as f_tokens:
f_tokens.write(' '.join(map(str, tokens_ids)))
print("Tokenización completada para todos los artículos.")
temas = {
"inteligencia y seguridad": [
"inteligencia", "seguridad", "espionaje", "ciberseguridad", "NSA", "FBI", "CIA", "CNI",
"interpol", "operaciones encubiertas", "guerras proxy", "agencia", "contraterrorismo",
"criptografía", "vigilancia", "espionaje industrial", "ataques cibernéticos", "hackeo",
"información clasificada", "agente", "reclutamiento", "amenazas", "infraestructuras críticas",
"tecnologías de la información", "redes", "criptomonedas", "privacidad", "protección de datos",
"seguridad nacional", "terrorismo", "extremismo", "análisis de inteligencia", "ciberespionaje",
"ciberguerra", "ciberdelito", "criptografía", "phishing", "ransomware", "malware", "ingeniería social",
"ataques DDoS", "defensa cibernética", "vulnerabilidades", "parches de seguridad", "software de seguridad",
"firewalls", "antivirus", "seguridad en la nube", "seguridad móvil", "protección de identidad",
"autenticación multifactor", "ciberseguridad empresarial", "ciberseguridad gubernamental", "hacktivismo",
"forense digital", "resiliencia cibernética", "respuestas a incidentes", "gestión de riesgos", "infraestructura crítica",
"protección de la privacidad", "cumplimiento de normativas", "regulaciones de seguridad", "marco de seguridad",
"pruebas de penetración", "evaluaciones de seguridad", "auditorías de seguridad", "educación en ciberseguridad",
"conciencia en ciberseguridad", "seguridad en redes sociales", "protección de datos personales", "intercambio de información",
"colaboración internacional", "alianzas de seguridad", "sistemas de control industrial", "criptografía cuántica", "tecnologías emergentes",
"amenazas persistentes avanzadas", "seguridad de IoT", "infraestructura de clave pública", "normativas de seguridad",
"seguridad en la cadena de suministro", "seguridad física", "protección de infraestructuras críticas", "seguridad en la gestión de identidades",
"defensa de la red", "investigación en ciberseguridad", "innovación en seguridad", "seguridad en dispositivos médicos",
"ciberinteligencia", "estrategias de seguridad", "planes de contingencia", "gestión de crisis", "comunicaciones seguras",
"análisis de amenazas", "evaluaciones de vulnerabilidades", "monitoreo de seguridad", "seguridad en dispositivos móviles", "normativas internacionales"
],
"guerras": [
"guerra", "conflicto", "batalla", "militar", "guerra mundial", "guerra civil", "guerra fría",
"intervención militar", "revolución", "insurgencia", "combate", "fuerzas armadas", "ejército",
"marina", "fuerza aérea", "infantería", "tanques", "artillería", "misiles", "nuclear", "estrategia",
"táctica", "frente", "trincheras", "guerrilla", "resistencia", "conquista", "ocupación", "aliados",
"enemigos", "acuerdo de paz", "alto el fuego", "tratado", "armisticio", "bloqueo", "embargo", "sanciones",
"misión de paz", "intervención humanitaria", "reconstrucción", "desarme", "democracia", "dictadura",
"autoritarismo", "nacionalismo", "independencia", "soberanía", "imperialismo", "colonialismo",
"expansionismo", "hegemonía", "doctrina", "alianza", "coalición", "inteligencia militar", "espionaje",
"sabotaje", "operaciones especiales", "misión de rescate", "contrainteligencia", "logística", "suministros",
"comunicaciones", "radar", "sonar", "drones", "ciberguerra", "guerra biológica", "guerra química",
"propaganda", "desinformación", "guerra psicológica", "reclutamiento", "conscripción", "voluntarios",
"mercenarios", "contratistas", "veteranos", "prisioneros de guerra", "refugiados", "desplazados",
"víctimas civiles", "crímenes de guerra", "genocidio", "tribunales militares", "justicia transicional",
"memoria histórica", "reparaciones", "compensaciones", "resolución de conflictos", "mediación",
"arbitraje", "observadores internacionales", "derechos humanos", "derecho internacional humanitario",
"cruz roja", "organizaciones no gubernamentales", "desminado", "reconstrucción postconflicto", "vigilancia",
"seguridad fronteriza"
],
"corporaciones": [
"empresa", "negocios", "economía", "finanzas", "multinacionales", "mercado bursátil", "Wall Street",
"IBEX35", "BlackRock", "Vanguard", "inversiones", "acciones", "bonos", "dividendos", "capital",
"mercado de valores", "índice", "trading", "brokers", "mercados emergentes", "fusiones", "adquisiciones",
"venture capital", "capital privado", "startups", "emprendimiento", "empresas familiares", "pymes",
"conglomerados", "industria", "manufactura", "exportaciones", "importaciones", "comercio internacional",
"aranceles", "barreras comerciales", "globalización", "competencia", "monopolio", "oligopolio",
"regulación", "desregulación", "privatización", "nacionalización", "política económica", "recesión",
"crisis financiera", "depresión económica", "estímulo económico", "plan de rescate", "deuda soberana",
"deficit", "superávit", "bancos centrales", "reserva federal", "BCE", "inflación", "deflación", "tipos de interés",
"política monetaria", "liquidez", "crédito", "rating", "calificación crediticia", "riesgo financiero",
"gestión de riesgos", "auditoría", "contabilidad", "fiscalidad", "impuestos", "evasión fiscal",
"elusión fiscal", "paraísos fiscales", "transparencia", "gobierno corporativo", "ética empresarial",
"responsabilidad social corporativa", "sostenibilidad", "desarrollo sostenible", "inversión responsable",
"filantropía", "emisiones de carbono", "huella ecológica", "energías renovables", "economía circular",
"reciclaje", "innovación", "tecnología", "transformación digital", "industria 4.0", "big data", "inteligencia artificial",
"blockchain", "fintech", "e-commerce", "marketing digital", "publicidad", "marca", "branding", "cliente",
"fidelización", "experiencia del cliente", "servicio al cliente", "logística", "cadena de suministro",
"gestión de operaciones", "productividad", "eficiencia", "calidad", "mejora continua", "lean manufacturing",
"six sigma", "gestión del cambio", "liderazgo", "gestión de recursos humanos", "cultura organizacional",
"diversidad", "inclusión", "equidad", "bienestar", "desarrollo del talento", "formación", "desarrollo profesional"
],
"demografía": [
"población", "demografía", "estadísticas", "censos", "crecimiento poblacional", "migración", "densidad de población",
"esperanza de vida", "natalidad", "mortalidad", "fecundidad", "estructura etaria", "pirámide poblacional",
"envejecimiento", "juventud", "urbanización", "ruralidad", "movimientos migratorios", "emigración", "inmigración",
"refugiados", "desplazados internos", "asilo", "diaspora", "repatriación", "integración", "segregación",
"multiculturalidad", "etnicidad", "raza", "lengua", "religión", "educación", "alfabetización", "matrimonio",
"divorcio", "familia", "hogar", "vivienda", "género", "sexo", "orientación sexual", "identidad de género",
"discriminación", "igualdad", "equidad", "salud", "mortalidad infantil", "esperanza de vida saludable", "morbosidad",
"enfermedades", "pandemias", "epidemias", "nutrición", "desnutrición", "sobrepeso", "obesidad", "acceso a servicios",
"agua potable", "saneamiento", "electricidad", "internet", "telecomunicaciones", "transporte", "movilidad",
"desigualdad", "pobreza", "exclusión social", "desempleo", "empleo", "subempleo", "economía informal", "remesas",
"desarrollo humano", "calidad de vida", "bienestar", "índice de desarrollo humano", "pobreza multidimensional",
"vulnerabilidad", "resiliencia", "adaptación", "políticas públicas", "planificación familiar", "derechos reproductivos",
"salud sexual", "maternidad", "paternidad", "cuidados", "envejecimiento activo", "retiro", "pensiones", "seguridad social",
"educación continua", "aprendizaje a lo largo de la vida", "movilidad social", "clase social", "estratificación",
"desigualdad de ingresos", "equidad de género", "violencia de género", "derechos humanos", "justicia social", "participación ciudadana"
],
"cambio climático": [
"cambio climático", "calentamiento global", "medio ambiente", "sostenibilidad", "energías renovables", "deforestación",
"emisiones de carbono", "huella de carbono", "gases de efecto invernadero", "protocolos internacionales", "acuerdo de París",
"protocolo de Kioto", "energía solar", "energía eólica", "energía hidroeléctrica", "biomasa", "biocombustibles", "eficiencia energética",
"conservación de la energía", "transición energética", "economía verde", "desarrollo sostenible", "resiliencia climática", "adaptación climática",
"mitigación climática", "descarbonización", "economía circular", "reciclaje", "gestión de residuos", "reducción de residuos", "contaminación",
"contaminación del aire", "contaminación del agua", "contaminación del suelo", "calidad del aire", "calidad del agua", "conservación de la biodiversidad",
"ecosistemas", "especies en peligro de extinción", "áreas protegidas", "conservación de la vida silvestre", "reforestación", "aforestación", "restauración ecológica",
"agricultura sostenible", "agricultura orgánica", "agricultura regenerativa", "ganadería sostenible", "pesca sostenible", "acuicultura sostenible", "alimentación sostenible",
"consumo responsable", "producción responsable", "infraestructura verde", "ciudades sostenibles", "urbanismo sostenible", "transporte sostenible", "movilidad sostenible",
"infraestructura de movilidad", "vehículos eléctricos", "transporte público", "caminabilidad", "ciclismo urbano", "espacios verdes", "parques urbanos", "agua potable",
"saneamiento", "infraestructura de agua", "gestión del agua", "conservación del agua", "eficiencia hídrica", "infraestructura resiliente", "planificación urbana",
"vivienda sostenible", "arquitectura sostenible", "materiales sostenibles", "construcción sostenible", "edificios verdes", "certificación LEED", "certificación BREEAM",
"turismo sostenible", "turismo ecológico", "economía azul", "infraestructura natural", "infraestructura ecológica", "infraestructura climática", "finanzas verdes",
"inversión sostenible", "bonos verdes", "mercados de carbono", "compensación de carbono", "política climática", "derecho ambiental", "educación ambiental",
"conciencia ambiental", "activismo ambiental", "movimientos ambientales", "justicia climática", "derechos de la naturaleza", "derechos indígenas", "comunidades locales",
"participación ciudadana", "colaboración internacional", "alianzas climáticas", "acuerdos multilaterales", "financiación climática", "innovación climática",
"tecnología climática", "soluciones climáticas", "empresas sostenibles", "emprendimiento verde", "liderazgo climático", "estrategias climáticas", "planes de acción climática"
],
"organizaciones internacionales": [
"OTAN", "BRICS", "ONU", "Unión Europea", "FMI", "Banco Mundial", "OEA", "OPEP", "organización internacional", "tratados internacionales",
"diplomacia", "relaciones internacionales", "cooperación internacional", "política exterior", "seguridad internacional", "desarrollo internacional",
"derechos humanos", "paz y seguridad", "resolución de conflictos", "mediación internacional", "arbitraje internacional", "misiones de paz", "asistencia humanitaria",
"ayuda al desarrollo", "crisis humanitarias", "desplazamiento forzado", "refugiados", "migración internacional", "asilo político", "comercio internacional",
"comercio multilateral", "libre comercio", "acuerdos comerciales", "aranceles", "barreras comerciales", "propiedad intelectual", "derechos de autor",
"patentes", "marcas registradas", "innovación", "tecnología", "transferencia de tecnología", "ciencia y tecnología", "investigación y desarrollo",
"educación internacional", "intercambio educativo", "becas internacionales", "cooperación educativa", "cultura internacional", "intercambio cultural",
"diversidad cultural", "patrimonio cultural", "protección del patrimonio", "conservación cultural", "turismo internacional", "movilidad internacional",
"transporte internacional", "infraestructura global", "infraestructura de transporte", "energía internacional", "seguridad energética", "transición energética",
"energías renovables", "cambio climático", "desarrollo sostenible", "economía circular", "gestión de residuos", "conservación ambiental", "protección de la biodiversidad",
"gestión del agua", "derechos de agua", "infraestructura hídrica", "salud global", "seguridad sanitaria", "pandemias", "epidemias", "enfermedades infecciosas",
"vacunas", "acceso a medicamentos", "cobertura sanitaria universal", "derechos de salud", "equidad sanitaria", "financiación de la salud", "gobernanza sanitaria",
"derechos de las mujeres", "equidad de género", "empoderamiento de las mujeres", "participación política de las mujeres", "derechos de los niños",
"protección infantil", "educación infantil", "trabajo infantil", "violencia contra los niños", "derechos de los indígenas", "autonomía indígena",
"cultura indígena", "protección de los pueblos indígenas", "derechos de los discapacitados", "inclusión de los discapacitados", "accesibilidad",
"derechos de los ancianos", "envejecimiento activo", "seguridad social", "protección social", "pobreza", "desigualdad", "desarrollo económico",
"inclusión financiera", "banca internacional", "finanzas internacionales", "mercados financieros", "regulación financiera", "corrupción",
"transparencia", "gobernanza", "estado de derecho", "justicia internacional", "cortes internacionales", "tribunales internacionales", "crímenes de guerra",
"crímenes contra la humanidad", "genocidio", "derecho internacional", "derecho humanitario", "derecho ambiental", "derecho del mar", "derecho comercial",
"derecho penal internacional", "derecho de los refugiados", "derecho de asilo", "derecho de los derechos humanos", "derecho de los tratados",
"derecho de las organizaciones internacionales", "diplomacia preventiva", "diplomacia económica", "diplomacia cultural", "diplomacia científica",
"diplomacia de la salud", "diplomacia deportiva", "diplomacia digital", "diplomacia pública", "diplomacia parlamentaria", "diplomacia de la paz",
"diplomacia de la seguridad", "diplomacia de la energía", "diplomacia de la defensa", "diplomacia de la información", "diplomacia de la educación",
"diplomacia de la cultura", "diplomacia de la tecnología", "diplomacia de la ciencia", "diplomacia de la innovación", "diplomacia de la justicia",
"diplomacia de los derechos humanos", "diplomacia de los tratados", "diplomacia de las organizaciones internacionales", "diplomacia de la ONU",
"diplomacia de la OTAN", "diplomacia de la Unión Europea", "diplomacia del BRICS", "diplomacia del FMI", "diplomacia del Banco Mundial",
"diplomacia de la OEA", "diplomacia de la OPEP", "diplomacia de la OMS", "diplomacia de la UNICEF", "diplomacia de la UNESCO"
],
"gobiernos autoritarios": [
"dictadura", "autoritario", "represión política", "censura", "control estatal", "violaciones de derechos humanos",
"tortura", "detención arbitraria", "desaparición forzada", "prisioneros políticos", "exilio", "disidencia",
"oposición política", "elecciones fraudulentas", "manipulación electoral", "medios de comunicación controlados",
"propaganda", "desinformación", "vigilancia masiva", "interceptación de comunicaciones", "control de internet",
"bloqueo de sitios web", "restricción de redes sociales", "censura de prensa", "revisionismo histórico",
"culto a la personalidad", "golpes de estado", "estados policiales", "corrupción", "nepotismo", "clientelismo",
"impunidad", "violencia política", "represión violenta", "masacres", "genocidio", "persecución de minorías",
"persecución de disidentes", "persecución de periodistas", "persecución de activistas", "persecución de intelectuales",
"persecución de académicos", "persecución de estudiantes", "persecución de trabajadores", "persecución de campesinos",
"persecución de indígenas", "persecución de mujeres", "persecución de niños", "persecución de ancianos",
"persecución de discapacitados", "persecución de LGBTI", "persecución de opositores políticos"
]
}
if not os.path.exists('articulos_wikipedia'):
os.makedirs('articulos_wikipedia')
num_articulos_descargados = 0
titulos_descargados = set()
for tema, palabras_clave in temas.items():
for palabra_clave in palabras_clave:
print(f"Buscando artículos sobre: {palabra_clave}")
offset = 0
while True:
titulos_articulos = buscar_articulos(palabra_clave, max_articulos=50, offset=offset)
if not titulos_articulos:
break
nuevos_articulos = 0
for titulo in titulos_articulos:
if titulo not in titulos_descargados:
contenido = obtener_contenido_wikipedia(titulo)
if contenido:
nombre_archivo = os.path.join('articulos_wikipedia', f"{limpiar_nombre_archivo(titulo)}.txt")
with open(nombre_archivo, 'w', encoding='utf-8') as archivo:
archivo.write(contenido)
titulos_descargados.add(titulo)
num_articulos_descargados += 1
nuevos_articulos += 1
print(f"Descargado: {titulo}")
total_size, total_files = obtener_info_carpeta('articulos_wikipedia')
print(f"Total de artículos descargados: {total_files}")
print(f"Tamaño total de la carpeta: {total_size / (1024 * 1024):.2f} MB")
if total_size > LIMITE_TAMANIO_CARPETA:
print(f"Se ha alcanzado el límite de tamaño de la carpeta de 100 GB.")
TOKENIZER()
exit(0)
if nuevos_articulos == 0:
break
offset += 50
time.sleep(1)
print(f"Total de artículos descargados: {num_articulos_descargados}")
total_size, total_files = obtener_info_carpeta('articulos_wikipedia')
print(f"Tamaño total de la carpeta: {total_size / (1024 * 1024):.2f} MB")
TOKENIZER()
articulos_descargados = os.listdir('articulos_wikipedia')
if len(articulos_descargados) >= 2:
articulo1 = open(os.path.join('articulos_wikipedia', articulos_descargados[0]), 'r', encoding='utf-8').read()
articulo2 = open(os.path.join('articulos_wikipedia', articulos_descargados[1]), 'r', encoding='utf-8').read()
articulo1_limpio = limpiar_texto(articulo1)
articulo2_limpio = limpiar_texto(articulo2)
tokens_articulo1 = tokenizar_y_guardar(articulo1_limpio, 'tokens_articulo1.txt')
tokens_articulo2 = tokenizar_y_guardar(articulo2_limpio, 'tokens_articulo2.txt')
def contar_palabras(nombre_archivo):
with open(nombre_archivo, 'r') as f:
palabras = f.read().split()
return Counter(palabras)
conteo_articulo1 = contar_palabras('tokens_articulo1.txt')
conteo_articulo2 = contar_palabras('tokens_articulo2.txt')
palabras_comunes = set(conteo_articulo1.keys()) & set(conteo_articulo2.keys())
num_palabras_comunes = sum(min(conteo_articulo1[p], conteo_articulo2[p]) for p in palabras_comunes)
num_palabras_totales = sum(conteo_articulo1.values()) + sum(conteo_articulo2.values())
porcentaje_similitud = (num_palabras_comunes / num_palabras_totales) * 100
print(f"Porcentaje de similitud entre los dos primeros artículos descargados: {porcentaje_similitud:.2f}%")
else:
print("No hay suficientes artículos descargados para comparar similitud.")

View file

@ -0,0 +1,945 @@
empresa
brasileña
investigación
agropec
##uar
##ia
emb
##ra
##pa
empresa
brasile
##ira
pes
##quis
##a
agropec
##u
##ár
##ia
institución
estatal
federal
pública
brasileña
vinculada
ministerio
agricultura
ganadería
abastecimiento
bras
##il
fundada
26
abril
19
##7
##3
cuyos
objetivos
desarrollar
tecnologías
conocimiento
informaciones
técnicas
científicas
agricultura
ganadería
brasileña
tiene
misión
crear
soluciones
investigación
desarrollo
innovación
sostenibilidad
agricultura
beneficio
sociedad
brasileña
actúa
sistema
compuesto
41
centros
investigación
cinco
unidades
servicios
1
##7
unidades
centrales
presente
casi
federación
9
##7
##90
empleados
cuales
244
##4
investigadores
actúa
coordinación
sistema
nacional
investigación
agropec
##uar
##ia
s
##n
##pa
constituido
instituciones
públicas
federales
universidades
empresas
privadas
fundaciones
forma
cooperativa
ejecutan
##do
investigaciones
diferentes
áreas
geográficas
campos
conocimiento
científico
em
términos
cooperación
internacional
empresa
mantiene
68
acuerdos
bilaterales
cooperación
técnica
3
##7
países
64
instituciones
acuerdos
multilaterales
20
organizaciones
internacionales
principalmente
estudios
parcelas
mantiene
laboratorios
desarrollar
estudios
tecnología
punta
unidos
fran
##cia
países
bajos
oficina
regional
g
##han
##a
compartir
conocimiento
científico
tecnológico
continente
africano
asociados
emb
##ra
##pa
empresas
asociadas
emb
##ra
##pa
empresas
asociadas
emb
##ra
##pa
pueden
reproducir
semillas
derivados
partir
momento
cumplan
requisitos
técnicos
establecidos
organización
unidades
emb
##ra
##pa
centros
investigación
productos
emb
##ra
##pa
[UNK]
camp
##ina
grande
p
##b
investigación
algodón
mam
##ona
ame
##n
##do
##im
ger
##gel
##im
si
##sal
emb
##ra
##pa
arroz
por
##oto
santo
[UNK]
go
##i
##ás
go
investigación
arroz
por
##oto
emb
##ra
##pa
cap
##rino
##s
sobra
##l
ce
investigación
cap
##rino
##s
ov
##inos
emb
##ra
##pa
fores
##tas
colo
##mbo
pr
investigación
especies
forestales
emb
##ra
##pa
ga
##do
corte
campo
grande
ms
investigación
bo
##vinos
corte
emb
##ra
##pa
ganado
leche
ju
##iz
for
##a
mg
investigación
leche
bo
##vinos
leche
emb
##ra
##pa
hortalizas
distrito
federal
d
##f
investigación
hortalizas
ab
##ó
##bora
bata
##ta
bata
##tad
##ul
##ce
ber
##en
##jen
##a
cebol
##la
zana
##hor
##ia
cole
##s
gui
##santes
gar
##ban
##zo
lente
##ja
mand
##io
##ca
mel
##ón
maíz
dulce
mos
##taza
pe
##pino
repo
##llo
tomate
etc
emb
##ra
##pa
mand
##io
##ca
fru
##tic
##ult
##ura
tropical
cruz
das
almas
ba
emb
##ra
##pa
mil
##ho
sor
##go
set
##e
lago
##as
mg
investigación
maíz
sor
##go
mi
##jo
emb
##ra
##pa
pecu
##ár
##ia
sudeste
[UNK]
car
##los
sp
investigación
bo
##vinos
corte
bo
##vinos
leche
equi
##nos
forra
##ji
##cultura
emb
##ra
##pa
pecu
##ár
##ia
sul
ba
##gé
r
##s
investigación
bo
##vinos
corte
bo
##vinos
leche
ov
##inos
emb
##ra
##pa
soja
lon
##dri
##na
pr
investigación
soja
giras
##ol
emb
##ra
##pa
su
##ín
##os
aves
con
##có
##r
##dia
s
##c
investigación
su
##inos
pastos
corte
gallinas
postura
emb
##ra
##pa
trigo
pas
##so
fund
##o
r
##s
investigación
trigo
ce
##bada
tri
##tica
##le
centen
##o
can
##ola
hierbas
forra
##jeras
soja
maíz
por
##oto
desarrollo
soja
adaptada
suelos
ácidos
emb
##ra
##pa
uva
vin
##ho
ben
##to
[UNK]
r
##s
investigación
uva
vino
manzana
frutas
clima
temp
##lado
centros
investigación
temas
básicos
emb
##ra
##pa
agro
##bio
##logia
ser
##op
##é
##dica
r
##j
investigación
fijación
biológica
nitrógeno
agricultura
orgánica
emb
##ra
##pa
agro
##ener
##gia
bras
##íl
##ia
d
##f
investigación
biodi
##és
##el
bio
##gá
##s
eta
##nol
fores
##tas
energéticas
emb
##ra
##pa
agro
##ind
##ús
##tri
##a
alimentos
río
ja
##ne
##iro
r
##j
investigación
tecnología
alimentos
emb
##ra
##pa
agro
##ind
##ús
##tri
##a
tropical
fortaleza
ce
investigación
agro
##ind
##ust
##ria
tropical
ca
##ju
coco
emb
##ra
##pa
informática
agropec
##u
##ár
##ia
camp
##inas
sp
investigación
tecnología
información
agro
##ne
##goci
##os
emb
##ra
##pa
[UNK]
agropec
##u
##ár
##ia
[UNK]
car
##los
sp
investigación
agricultura
precisión
ambiente
biotecnología
##a
automa
##tización
procesos
nuevos
materiales
agricultura
agro
##ind
##ust
##ria
familiar
calidad
##es
productos
materias
primas
emb
##ra
##pa
me
##io
ambiente
ja
##guar
##i
##ún
##a
sp
investigación
manejo
gestión
ambiental
emb
##ra
##pa
monitor
##amento
satélite
camp
##inas
sp
investigación
sistemas
informaciones
geográficas
redes
ele
##trón
##icas
adquisición
procesamiento
imágenes
sensores
remoto
##s
datos
obtenidos
campo
emb
##ra
##pa
recursos
genéticos
bio
##tec
##nol
##o
##gia
bras
##íl
##ia
d
##f
investigación
biotecnología
control
biológico
recursos
genéticos
seguridad
biológica
emb
##ra
##pa
solos
río
ja
##ne
##iro
r
##j
investigación
suelo
interacciones
ambiente
centros
investigación
eco
##r
##re
##gional
##es
emb
##ra
##pa
acre
rio
bran
##co
ac
emb
##ra
##pa
agropec
##u
##ár
##ia
oeste
do
##urado
##s
ms
investigación
región
oeste
bras
##il
emb
##ra
##pa
ama
##pá
ma
##cap
##á
ap
emb
##ra
##pa
[UNK]
oc
##identa
##l
man
##au
##s
am
investigación
ama
##zona
##s
frutas
tropicales
[UNK]
seri
##ng
##ue
##ira
especies
forestales
guar
##aná
pis
##cic
##ult
##ura
emb
##ra
##pa
[UNK]
oriental
bel
##ém
pa
investigación
región
ama
##zon
##ia
oriental
emb
##ra
##pa
cerrados
plana
##lti
##na
d
##f
investigación
desarrollo
innovación
tecnológica
agricultura
biom
##a
cerrado
emb
##ra
##pa
clima
tempera
##do
pelotas
r
##s
investigación
región
clima
temp
##lado
bras
##il
desarrolla
actividades
áreas
recursos
naturales
ambiente
granos
fru
##tic
##ult
##ura
oler
##áceas
sistemas
pecu
##arios
énfasis
ganadería
agricultura
base
familiar
emb
##ra
##pa
me
##ion
##orte
ter
##es
##ina
pi
emb
##ra
##pa
pan
##tana
##l
cor
##um
##b
##á
ms
emb
##ra
##pa
[UNK]
por
##to
vel
##ho
ro
emb
##ra
##pa
ro
##ra
##ima
bo
##a
vista
r
##r
emb
##ra
##pa
semi
##ár
##ido
petrol
##ina
pe
emb
##ra
##pa
tab
##ule
##iro
##s
coste
##iro
##s
ara
##ca
##ju
enlaces
externos
página
oficial
emb
##ra
##pa
##en
inglés
portugués
canal
oficial
emb
##ra
##pa
you
##tu
##be
inglés
portugués
base
datos
investigación
agropec
##uar
##ia
empresas
cre
##dencia
##das
emb
##ra
##pa

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,22 @@
import wikipedia
import wikipediaapi
import time
# Inicializar Wikipedia API en español con un user agent adecuado
user_agent = 'HacklabLaRaizBot/1.0 (hacklab.laraiz@protonmail.com)'
wikipedia.set_lang("es")
wikipedia.set_user_agent(user_agent)
wiki_wiki = wikipediaapi.Wikipedia(
language='es',
extract_format=wikipediaapi.ExtractFormat.WIKI,
user_agent=user_agent
)
def buscar_articulos(palabra_clave, max_articulos=50, offset=0):
search_results = wikipedia.search(palabra_clave, results=max_articulos)
return search_results
def obtener_contenido_wikipedia(titulo):
pagina = wiki_wiki.page(titulo)
return pagina.text if pagina.exists() else ''