Spaces:
Sleeping
Sleeping
import numpy as np | |
def encontrar_palabras(transcript,cjto_palabras): | |
''' | |
Toma un string (en minúsculas) y un conjunto de palabras. Busca el primer match | |
de cjto_palabras en transcript y particiona el string en: | |
1. El slice de la cadena antes del primer match (antes_palabra) | |
2. La cadena del primer match (coincidencia de cjto_palabras) | |
3. El slice de la cadena después del match (despues_palabra) | |
''' | |
inicio,final=list(re.finditer(r'|'.join(cjto_palabras),transcript))[0].span() | |
antes_palabra=transcript[:inicio].strip() | |
despues_palabra=transcript[final:].strip() | |
palabra=transcript[inicio:final] | |
return antes_palabra,palabra,despues_palabra | |
def agregar_adentro(codigo, transcipcion): | |
codigo2 = main(transcipcion) | |
return codigo[:-1] + codigo2 | |
def main(instruccion): | |
""" | |
Función global encargada de recibir las instrucciones y capaz de direccionar | |
a funciones correspondientes mediante medidas de similitud. | |
""" | |
global bloque | |
plantillas = [ | |
crear_funcion, | |
crear_condicional, | |
crear_condicional, | |
asignar_variable, | |
crear_variable, | |
crear_llamada, | |
crear_for, | |
fin_de_bloque, | |
crear_comentario, | |
crear_regresa | |
] | |
comandos = [set(['definir', 'funcion', 'parametros']), | |
set(['mientras']), | |
set(['si']), # si se cumple / mientras se cumpla | |
set(['asignar', 'con']), | |
set(['definir', 'variable']), | |
set(['ejecuta', 'argumentos']), | |
set(['para', 'rango']), | |
set(['terminar','bloque']), | |
set(['comentario']), | |
set(['regresa']) | |
] | |
J = [] | |
for comando in comandos: | |
J.append(len(set(instruccion.strip().split(' ')).intersection(comando)) / len(set(instruccion.strip().split(' ')).union(comando))) | |
# print(J,np.argmax(J)) | |
pos_func=np.argmax(J) | |
# print(pos_func) | |
return plantillas[pos_func](instruccion) |