Skip to content
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

Filling masks #33

Closed
xiaoouwang opened this issue Feb 15, 2021 · 4 comments
Closed

Filling masks #33

xiaoouwang opened this issue Feb 15, 2021 · 4 comments

Comments

@xiaoouwang
Copy link

xiaoouwang commented Feb 15, 2021

Bonjour bonjour ! Merci d'avoir partagé le modèle !

Dans Camembert il est assez facile de deviner un mot à partir du contexte, y a-t-il un working example dans Flaubert ?

Merci d'avance !

from fairseq.models.roberta import CamembertModel
camembert = CamembertModel.from_pretrained('./camembert-base/')
camembert.eval()
masked_line = 'Le camembert est <mask> :)'
camembert.fill_mask(masked_line, topk=3)
# [('Le camembert est délicieux :)', 0.4909118115901947, ' délicieux'),
]#  ('Le camembert est excellent :)', 0.10556942224502563, ' excellent'),
#  ('Le camembert est succulent :)', 0.03453322499990463, ' succulent')]
@formiel
Copy link
Contributor

formiel commented Feb 18, 2021

Bonjour,

Merci pour votre intérêt à Flaubert ! Et désolé pour le retard.

Vous pouvez utiliser transformers pour cette tâche comme suivant :

from transformers import pipeline
nlp_fill = pipeline('fill-mask', model="flaubert/flaubert_base_cased", topk=3)
nlp_fill("Paris est la <special1> de la France.")

Résultat :

[{'sequence': '<s>Paris est la capitale de la France. </s>', 'score': 0.38478967547416687, 'token': 1720, 'token_str': 'capitale</w>'}, 
{'sequence': '<s>Paris est la propriété de la France. </s>', 'score': 0.021579978987574577, 'token': 2068, 'token_str': 'propriété</w>'}, 
{'sequence': '<s>Paris est la politique de la France. </s>', 'score': 0.016734756529331207, 'token': 223, 'token_str': 'politique</w>'}]

@xiaoouwang
Copy link
Author

Bonjour,

Merci pour votre intérêt à Flaubert ! Et désolé pour le retard.

Vous pouvez utiliser transformers pour cette tâche comme suivant :

from transformers import pipeline
nlp_fill = pipeline('fill-mask', model="flaubert/flaubert_base_cased", topk=3)
nlp_fill("Paris est la <special1> de la France.")

Résultat :

[{'sequence': '<s>Paris est la capitale de la France. </s>', 'score': 0.38478967547416687, 'token': 1720, 'token_str': 'capitale</w>'}, 
{'sequence': '<s>Paris est la propriété de la France. </s>', 'score': 0.021579978987574577, 'token': 2068, 'token_str': 'propriété</w>'}, 
{'sequence': '<s>Paris est la politique de la France. </s>', 'score': 0.016734756529331207, 'token': 223, 'token_str': 'politique</w>'}]

Merci de votre réponse ! Je clos le issue :D

@xiaoouwang
Copy link
Author

Juste par précaution s'il y a d'autres personnes qui tombent sur cet issue, l'option topk est maintenant top_k

@schwabdidier
Copy link
Member

Bonne idée de le préciser. Merci

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants