Proportion de noms propres à consonnance étrangère

Après quelques temps d’écoute, je suis frappé par la très grande quantité de noms propres en général et à consonances étrangères en particulier (pour lesquels aucune règle française ne saurait assurer une prononciation correcte).

Je pense qu’il y a un problème général de qualité du corpus source (grammaire, conjugaison et adéquation à des locuteurs francophones, erreurs d’accents, champ lexical, noms propres en général, …), mais je pense que cet aspect particulier est visiblement très présent, assez problématique et bien identifiable.

Exemple typique : "Il a épousé Mercedes Caicedo de Lloreda de Costa Rica."
La locutrice est, à juste titre, bien embêté par une telle phrase et cela s’entend. (Elle en oublie même de prononcer le “a” avant “épousé”). Mais pour couronner le tout, on ne dit pas “de Costa Rica” (je crains une traduction automatique).

In fine ce genre de données, péniblement collectée, se révèle proprement inutile, de par sa nature et de part sa collecte, pour des utilisateurs francophones.

Note : Même dans le registre français on entend des “Bénédicte Tilloy” dans lesquels [oy] est prononcé “eauille” au lieu de “oi” ce qui est foncièrement faux. Il vaudrait remplacer ces noms par “Bob” ou “Anne” plutôt que de risquer des erreurs et des signalements.

Il ne devrait pas être difficile de filtrer cela hors du corpus mais j’imagine que changer les texte sources est chose sensible. Y a-t-il des suggestions/expériences à ce propos ?

je crois que c’est lié à l’import massif de données wikipedia, ça s’est fait sans moi …

malheureusement non, et ça manque de bras / temps, donc j’ai envie de dire, prime à celui qui s’y lance

Approche naïve :

  • Prendre un dictionnaire des toponymes (Geoportail) + un dictionnaire des noms et prénoms français + liste de noms propres acceptés (eg: liste de pays, personnalité du top-500 wikipedia/fr)
  • Chercher [^?!.:-][[:blank:]]([A-Z]\w+) (assumé nom propre) et conserver le nombre d’occurrences dans la phrase.

A partir de là : 2 possibilités :

  • si > 1 ou 2 occurrences, supprimer la phase
  • si en fin ou en début de phrase : remplacer (ex: Alice/Bob)
  • dans les autres cas : à voir (il faudrait déjà voir l’ampleur d’un diff et les cas produits puis affiner/décider

Le cas du remplacement est délicat (ex: toponyme versus prénom => non-sens). Féminin vs masculin => non-sens.
Le faire correctement serait quasiment un projet en soi : Il faudrait commencer par lister les noms propres notoires/acceptables/sans équivoque.

Note : Est-il aisément possible de supprimer des phrase du sentence-collector ?

Moi je suis pour voir du code, ce que tu décris a l’air pas mal. Je suis de retour de congés le 9,je pense pas reviewer d’ici la, donc pas d’urgence :blush:

Ah et pour supprimer c’est pénible mais ça se fait donc pourquoi pas

Je viens de faire quelques tests à partir de 130k de noms propres issus de Prolexbase. Le corpus actuel (ce qu’il y a dans CommonVoice-Data) est, en règle général, très raisonnable (hormis certains livres particuliers comme Gutenberg 22039, 17232, 12246, 40763).
Le ratio “nombre de noms propres / noms” se maintient autour entre 9 et 15% avec (10.1% pour l’AN, 11.4% pour wikisource, 14% pour le théâtre et une moyenne à 10.6% essentiellement tirée par Gutenberg)

  • '[^?!.:-][[:blank:]]\K([A-Z'-][\waáàâäãåeéèêëiíìîïoóòôöõuúùûücçnñýÿ]{3,})' : Extrait 46k de mots capitalized distincts
  • J’ai testé de supprimer les noms communs et formes fléchées des verbes à l’aide de Morphalou 3
  • Et sur les 35k restant, retirés 4k de ceux, connus, faisant partie de la Prolexbase, ex: Ajaccio, Abbassides Lola, Barrabas, … et quelques autres issus de noms et toponymes courants (eg: communes françaises).

Sur les 30k résultants:

  • une partie est due à la présence d’anglais dans le corpus (Abigail, Aphrodit, …)
  • une partie est due à la présence d’ancien français dans le corpus
  • une partie du reste sont des nom de personnages atypique ²
  • dans la partie congrue restante ont trouve l’essentiel des noms propres rare (ex: froöern, krasnoiarsk, penmarckh, wenceslas)

Cela étant, dans ce qui est du repository actuellement, même les noms propres non-francophones sont (avec un peu de jugeote et de culture) à peu près prononçables car pour l’essentiel issus de langues latines.

Je n’exclue pas que cela pose tout de même des problème à l’algorithme à cause de la superposition accrue avec d’autres expressions (courantes, elles)

En gros : Pourquoi entraîner la machine avec 206 occurrences de “Quichotte” alors que le mot “chute” n’est présent que 442 fois et que (plus grave peut-être) “[…] qui chute” et “quelle chute” seulement une fois chacun. Je comprends bien que le scorer n’inclura pas “Quichotte” (au risque d’être très biaisé et inutilisable) mais seulement “qui”, “quelle” et “chute”, mais il n’en restera pas moins un biais d’apprentissage.

À titre indicatif, près de 10% des termes inconnus sont issus de la dizaine de livres mentionnée en annexe ³
Je pense que certains ouvrages de Gutenberg pourraient être soumis à un mode de filtrage plus strict. (Je pense aux glossaires, lexiques, dictionnaires, et autres texte d’avant 1800. On pourrait même utiliser la date de mort de l’auteur comme critère).
Pour ceux-ci, le mode strict omettrait les phrases contenant des mots inconnus.

Si c’est ok, je peux bien faire une PR avec ces heuristiques de nettoyage et quelques changements correspondant dans les sources, tout en gardant à l’esprit que ce n’est pas cette partie du dataset la plus gênante.

Mais, avec les outils, scripts et les métriques sous la main il semble maintenant clair (et potentiellement mesurable) que l’essentiel du problème n’est pas dans le repository mais ailleurs : l’import Wikipedia (comme vous le mentionniez).

Deux questions se posent donc :

  • Qu’est-ce qui est faisable quant à Wikipedia ? Qui a la responsabilité de la “maintenance” de ce dataset (désormais dans le sentence-collector) ?
  • Le script d’import/parsing & … wikipedia est disponible (ajouté à d5d17b1e), mais aucune trace des articles (apparemment sélectionné au hasard) qui ont été importés. Quels sont-ils ? Où en est la trace ?
  • Et plus généralement, quel processus formel pour la suppression/désactivation de phrases/articles malheureusement déjà importée ? Un CSV des phrases suffit-il ?

¹ https://hal.archives-ouvertes.fr/tel-01726999/document
² Exemple: (Nombre d’occurrences, fichier:terme):

    457 les_enfants_du_capitaine_grant.txt:glenarvan
    419 33738.txt:musset
    219 13950.txt:aramis
    206 42524.txt:quichotte
    198 les_misérables.txt:valjean
    198 vingt_mille_lieues_sous_les_mers.txt:nemo
    193 17372.txt:marcof
    176 les_misérables.txt:thénardier
    172 le_pays_des_fourrures.txt:hobson
    169 le_pays_des_fourrures.txt:barnett
    161 13950.txt:porthos
    159 8712.txt:faujas
    158 42432.txt:mothe
    154 autour_de_la_lune.txt:barbicane
    153 les_travailleurs_de_la_mer.txt:gilliatt
    149 54873.txt:nemo
    144 14157.txt:pécuchet
    144 798.txt:rênal
    138 31904.txt:panizzi
    138 deux_ans_de_vacances.txt:doniphan
    137 17184.txt:frémilly
    133 18215.txt:marcof
    133 4559.txt:lepic
    121 4717.txt:barbicane
    118 11621.txt:georgey
    118 28519.txt:myrtô
    116 autour_de_la_lune.txt:nicholl
    114 17372.txt:keinec
    114 28977.txt:cadio
    113 2945.txt:follentin
    111 8907.txt:josserand
    110 26504.txt:cornélius
    110 44488.txt:oulad
    109 28977.txt:korigane
    108 53503.txt:tourzel
    106 49004.txt:chariclée
    104 56990.txt:riquet
    102 42896.txt:chazolles
    100 13772.txt:rouletabille
[...]

³












En fait, l’import a déjà été fait, et normalement si des enregistrements ont été effectués ils devraient pas être représentés. Donc rajouter de nouvelles phrases “plus adaptées” suffira à réduire ce ratio, pas la peine de s’embêter à faire plus compliqué

“Personne” et “tout le monde”, les contributions sont les bienvenues. L’importeur est dispo: https://github.com/common-voice/cv-sentence-extractor

Faut voir ça avec les gens de Common Voice, c’est pas moi qui l’ai fait, je sais pas.

Habituellement, c’était un fichier texte avec la liste des phrases à retirer, et un bug ouvert sur https://github.com/mozilla/common-voice/issues