Closed rbossy closed 6 years ago
J'ai ajouté un break
après i += 1
. Je suppose que ça signifie que CONTES n'apprend que sur la première attribution de chaque terme.
Si tu valides, je commit-push. Sinon j'attends.
@ArnaudFerre est-ce que tu peux vérifier que c'est correct, stp:
39466138f814678d42b96849904ae3595a9f00ab
Le bug relié à cet issue sur GitHub a été directement corrigé par l’ajour d’un break si je comprends bien. A part le break, le reste des modifications apportées ne me semble pas sujet à problème en tout cas.
Du coup, le break fait en effet que pour chaque terme, même s’il est à normaliser par plusieurs concepts, on n’en prend qu’un un peu au pif. C’était bien comme ça que j’avais simplifié le problème dans mes premières implémentations, donc on ne dénature rien. Par contre, vu le code, je voulais sans doute préparer une évolution simple où on aurait autant d’exemples d’entraînement que d’associations possibles (ce qui préparerait certainement mieux à des propositions de normalisations multiples).
Et c’est là que ça devait planter en effet, car j’initialise les matrices d’entraînement avec le nombre de termes et non le nombre d’associations possibles…
Du coup, je pense qu'il faudrait juste remplacer :
nbTerms = len(dl_terms.keys())
par :
for id_term in dl_associations.keys():
for id_concept in dl_associations[id_term]:
nbAssociations += 1
Et X_train = numpy.zeros((nbTerms, sizeVST))
Y_train = numpy.zeros((nbTerms, sizeVSO))
, par :
X_train = numpy.zeros((nbAssociations, sizeVST))
Y_train = numpy.zeros((nbAssociations, sizeVSO))
Je peux le tester si j'ai des plans fonctionnels d'AlvisNLP/ML (à moins que ceux que j'ai déjà ici soient ok pour la partie train).
Ce n'est pas pressé, à mon avis. Je voulais juste que tu confirmes mon interprétation sur le break
.
OK, c'est confirmé dans ce cas.