-
Notifications
You must be signed in to change notification settings - Fork 24
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
Rejet des abbréviations #21
Comments
Bonjour, Je me trompe ou les abréviations sont gèrées dans utils.py via une regex qui transforme ces abréviations en nom complet? (si je me trompe désolé mais ça manque un peu de documenation. Je veux bien commencer à écrire un peu de doc pour que les nouveaux arrivant sur ce dépôt aient un peu une idée de ce qui se trame et du but de ce dépot) |
@Gaet81 On a du code ici, |
C'est toujours d'actualité, y'a d'autres langages qui l'ont: https://github.com/Common-Voice/sentence-collector/tree/master/shared/validation/languages |
Le lien ci dessus est HS. Je pense que le nouveau lien est celui ci : On trouve dans ce dossier des règles... de validation. Je pense d'ailleurs que c'est typiquement dans ce dossier que pourrait aller le résultat des discussions qui ont lieu là : Full disclamer : j'ai relancé le fil de discussion de ce fil le 5/9/22, je suis donc non neutre. EDIT : Après une n-ième relecture de tout le fil, la correction#20 #20 s'inscrit toujours, elle aussi, dans cette discussion. |
Ce qui suit doit être compris comme la suite du message précédent. Je le met dans un deuxième message pour ne pas tout mélanger... Pour ceux qui comme moi ne comprennent pas tout, voilà ce que j'ai compris : ...Autrement dit 1 :
...Autrement dit 2 : Question bête : Si quelqu'un (moâ ?!) récupérait le travail de #20, et le mettait dans un fichier dans https://github.com/common-voice/sentence-collector/tree/main/server/lib/validation/languages, est ce que cela ferait de la bouillie ?! |
Oui, c'est ça
ça ne sera valable que pour les nouvelles additions à Sentence Collector, l'existant nécessiterait soit d'être nettoyé dans la DB (compliqué) soit dans Corpora Collector
Pas nécessairement, je pense que ce serait un bon point de départ |
Bon, j'ai avancé le sujet, et ai fait une ébauche de commit pour les rules FR... ...Il faudrait corriger aussi les "Mr, Mrs, M. Mme, etc. " please have a look at : |
Bon début ! Au niveau de la forme, je vous conseille dès à présent de limiter les changements de fichier qui ne soient strictement nécessaires (introduction ou changements de lignes blanches ou vides, commentaires superflus, ...), de rendre les commentaires introduits le moins verbeux possibles. Par exemple Au niveau du fond:
Je vous adjoint ici quelques regexp additionnelles (en Python) que j'avais utilisées pour un projet personnel : # 3 groupes, selon le contexte (suffixé par un ".", n'importe quoi ou un espace ou tiret)
abbreviations_fr = [
(re.compile("\\b%s\\." % x[0], re.IGNORECASE), x[1])
for x in [
("M", "monsieur"),
("Mlle", "mademoiselle"),
("Mlles", "mesdemoiselles"),
("Mme", "Madame"),
("Mmes", "Mesdames"),
("N.B", "nota bene"),
("M", "monsieur"),
("p.c.q", "parce que"),
("Pr", "professeur"),
("qqch", "quelque chose"),
("rdv", "rendez-vous"),
("max", "maximum"),
("min", "minimum"),
("no", "numéro"),
("adr", "adresse"),
("dr", "docteur"),
("st", "saint"),
("co", "companie"),
("jr", "junior"),
("sgt", "sergent"),
("capt", "capitaine"),
("col", "colonel"),
("av", "avenue"),
("av. J.-C", "avant Jésus-Christ"),
("apr. J.-C", "après Jésus-Christ"),
("art", "article"),
("boul", "boulevard"),
("c.-à-d", "c’est-à-dire"),
("etc", "et cetera"),
("ex", "exemple"),
("excl", "exclusivement"),
("boul", "boulevard"),
]
] + [
(re.compile("\\b%s" % x[0]), x[1])
for x in [
("Mlle", "mademoiselle"),
("Mlles", "mesdemoiselles"),
("Mme", "Madame"),
("Mmes", "Mesdames"),
]
] + [
(re.compile("\\b%s\\b" % x[0]), x[1])
for x in [
("1ers?", "premier"),
("1e?res?", "première"),
("2nd", "second"),
("2n?de", "seconde"),
("([12]?[0-9])h([0-5][0-9])?", "\1 heure \2"),
("([0-9]+)m", "\1 mètres"),
("([0-9]+)kms?", "\1 kilomètres"),
("([0-9]+)mn", "\1 minutes"),
]
] Python dispose aussi d'une librairie bien pratique ( def _conv_num(match):
return num2words(match.group(), lang='fr')
def _conv_ord(match):
return num2words(match.group(1), to='ordinal', lang='fr')
text = re.sub(r'\b\d+\b', _conv_num, text).
sub(r"\b([1-9][0-9]*)(ème|eme|e)\b", _conv_ord, text) |
@lissyx concernant les suppressions, je pourrais, à l'avenir, grep'per les correspondances et soumettre une autre PR de suppression. |
Tout ça, c'est fait 😁
Pour la suppression des dates, je suis d'accord que c'est moche.
...on va tout convertir, cela va simplifier les choses. J'ai shooté tous les accronymes, il n'y a plus que du verbeux.
Yep... J'ai juste repris ce qu'avait fait Nicolas 😄
C'est complètement hors de ma portée 😓
cool ! je vais m'en inspirer !
encore une fois, c'est largement hors de ma portée !
|
Discourse en cours sur le sujet... |
Il serait efficace pour éviter les situations ambigües de rejeter certaines abbréviations. Le code actuel se limite à celles uniquement en majuscules, potentiellement séparées par des points.
On pourrait vouloir rajouter des choses spécifiques au français: mr, mme, melle, mgr, ch, rte, etc.: https://github.com/Common-Voice/sentence-collector/blob/master/shared/validation/languages/en.js#L16-L20
The text was updated successfully, but these errors were encountered: