File size: 3,222 Bytes
2e0d094
 
eabea5d
d78e28f
 
2e0d094
 
 
 
 
 
 
 
 
 
 
d78e28f
2e0d094
 
67b82ae
d78e28f
67b82ae
2e0d094
 
 
eabea5d
2e0d094
93a5ed3
2e0d094
 
 
 
 
 
 
d78e28f
358280c
2e0d094
 
 
 
 
d78e28f
 
2e0d094
 
358280c
 
 
67b82ae
 
 
 
 
d9436e3
 
 
 
eabea5d
67b82ae
eabea5d
 
67b82ae
 
eabea5d
d9436e3
67b82ae
 
 
 
 
eabea5d
 
67b82ae
 
 
 
eabea5d
 
 
67b82ae
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
import herramientas
import conceptos_busqueda
import time
from conceptos_busqueda import documentos as documentos


def identifica_documento(textos_extraidos_simplificados):
    """
    Busca el tipo de documento en el texto, probando con una lista de documentos.

    Args:
        textos_extraidos_simplificados (list): Lista de strings con el texto a analizar.

    Returns:
        str: El nombre del primer documento encontrado ('dni', 'pasaporte', etc.),
             o None si ninguno de los documentos fue identificado.
    """     

    for tipo_documento in documentos:
        print("Revisando tipo de documento: ", tipo_documento)
        time.sleep(3)
    
        # Usamos 'getattr' para acceder dinámicamente al atributo correcto
        # del objeto 'conceptos_busqueda', como 'conceptos_busqueda.dni'.
        conceptos_actuales = getattr(conceptos_busqueda, tipo_documento)
                
        # Llama a la función de búsqueda para el tipo de documento actual
        indice, textos_corregidos = herramientas.buscaIndexMultiplesPalabras(
            textos_extraidos_simplificados,
            conceptos_actuales
        )
        
        # Si la búsqueda encuentra un resultado, salimos inmediatamente y retornamos
        # el nombre del documento.
        if indice is not None:
            print(f"No fue none, hizo su encuentro en el documento: ", tipo_documento)
            # time.sleep(7)
            # Puedes retornar el tipo_documento y los textos corregidos
            # return tipo_documento, textos_corregidos
            
            # O simplemente el tipo de documento, como en tu ejemplo
            return tipo_documento
        
        print("Índice no fue None, continua la búsqueda...")

    # Si el bucle termina sin encontrar ningún documento, retornamos None
    # print("Se acabó la búsqueda y no encontró nada.")
    # time.sleep(4)
    return "Documento no identificado."

def identifica_ine(textos_extraidos_simplificados):
    #Identifica si una INE es nueva o antigüa edición.
    #Buscaré los dos campos que tienen SOLO las INE antigüas: localidad y municipio.    
    #Municipio
    conceptos_busqueda = [{
                            'preferida': 'municipio', 
                            #'alternativas': ['']
                           }]
    print("Entrando a busqueda de municipio en buscar multiples palabras: ")
    indice, textos_extraidos_corregidos = herramientas.buscaIndexMultiplesPalabras(textos_extraidos_simplificados, conceptos_busqueda)
    print("Salí de la búsqueda...")
    
    municipio_existe = True if indice is not None else False

    print("Municipio existe: ", municipio_existe)
     
    #Localidad
    conceptos_busqueda = [{'preferida': 'localidad', 'alternativas': ['']}]
    indice, textos_extraidos_corregidos = herramientas.buscaIndexMultiplesPalabras(textos_extraidos_simplificados, conceptos_busqueda)
    localidad_existe = True if indice is not None else False

    print("Localidad existe: ", localidad_existe)    

    if municipio_existe and localidad_existe:
        tipo_ine = 'ine_antes'
    else: 
        tipo_ine = 'ine_actual' 

    print("INE detectada es: ", tipo_ine)
        
    return tipo_ine