es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Construyendo un modelo predictivo desde cero en python.

Tengo un montón de textos que estoy analizando con python con el fin de generar un modelo predictivo capaz de elaborar un texto similar al de un ser humano.

Para esta tarea genero un diccionario que contiene cada palabra que aparece en la entrada y la asigno a otro diccionario que contiene cada palabra que sigue y su número de ocurrencias, para poder hacer una elección ponderada.

En pseudocódigo:

dict[‘foo’]={‘bar’: 3, ‘barbar’: 1, ‘baz’: 4}
palabra_anterior=dict[‘foo’]
siguiente_palabra=random.choices(list(palabra_anterior.keys()), weights=palabra_anterior.values())

Funciona bastante bien a pesar de la simplicidad de este método, así que traté de mejorarlo guardando las predicciones de las palabras anteriores y asignándolas a las predicciones de las palabras siguientes:

dict[0][‘foo’]={‘bar’: 3, ‘barbar’: 1, ‘baz’: 4}
while not word=’///fin///’:

for n in range(len(dict)):
    recordar=dict[n][palabra_anterior]

del recordar[0]
recordar.append({})

semántica=semántica/2 ###### Cada turno, cada valor se reduce a la mitad
semántica=add_dict(recordar,dict[palabra]) ####  Y se añade a las predicciones

word=predict(semántica,palabra)
output.append(palabra)
recordar=semántica

print(output)

Si tengo la palabra “gato” y la siguiente palabra puede ser “salta” y la siguiente puede ser “a”:
dict[‘gato’]=[{‘salta’: 5}, {‘a’: 4}]
y las siguientes palabras para “salta” son “a” y “el”:
dict[‘salta’]=[{‘a’: 3}, {‘el’: 6}]
Los pesos utilizados para la predicción de “salta” serían:

semántica=[{‘a’: 7}, {‘el’: 6}]

Pero sorprendentemente esto no funciona tan bien como tener en cuenta sólo la siguiente palabra. En el último caso, la salida esperada sería “gato salta a”, pero a menudo produce “gato salta a en”. Lo que no tenía lugar con la implementación más rudimentaria anterior.

Entonces, ¿hay algo malo en mi nuevo enfoque o podría ser sólo algo malo en mi código? ¿Quiero decir que tener en cuenta más de la siguiente palabra para la predicción es un mal enfoque?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Parece que tu nuevo enfoque de tener en cuenta más que la palabra siguiente para la predicción no está funcionando tan bien como la implementación más rudimentaria. Es posible que haya algo mal con tu código, o podría ser que considerar más que la palabra siguiente para la predicción no sea un enfoque adecuado. Es difícil decir sin una investigación más profunda.

Comments are closed.