-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Utilser de l'apprentissage profond .. wouhou #28
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Après plusieurs semaines de travail acharné j'ai trouvé un modèle tendance qui fait vraiment la job pour la segmentation. Bien sûr les Transformers sont parfaitement inutiles pour cette tâche étant donné que chaque page peut avoir plusieurs milliers de tokens. Le bon vieux CRF discrète fonctionnait assez bien pour nos documents mais se généralisait mal à des mises en page différentes, et ne pouvait surtout pas bien integrer les informations textuelles.
À date ce qui fait mieux la job c'est un RNN-CRF. Mais attention! Il ne faut absolument pas entraîner ce modèle de zero, parce que notre jeu de données est très dèséquilibrée, et la pondération des classes se fait très mal avec un CRF. En plus, l'objectif CRF stricte (avec des contraintes que
I-Chose
doit absolument suivreB-Chose
ouI-Chose
et pasI-Machin
) est mal aligné avec notre vrai objectif ce qui est d'identifier lesB-Chose
correctement - en forçant la cohérence entre lesI
(qui améliore l'exactitude du séquence au complet) on fini par perdre la précision des étendues des blocs de texte. C'est quand même utile, par contre, de distinguerI-Chose
deI-Patente
durant l'entraînement puisque le deux ont des contenus et des mises en pages différents.Donc, on fait un entraînement d'un RNN (avec des embeddings et pour le texte, et pour la mise en page en chiffres intégraux, ce qui fonctionne mieux que des valeurs continues) ordinaire en premier temps, puis on procède à geler ses paramètres et faire un court entraînement d'un CRF (sans contraintes) par-dessus, ce qui donne un peu plus de cohérence à la sortie mais ne nuit pas à l'essentiel du modèle.
(Notez que si on avais un Longformer, etc, etc, oui, on pourrait l'utiliser de la même façon)
Noté que l'extraction des liens, etc, pourra aussi se faire, c'est la prochaine étape.