a3nm's blog

The strangest and least strange French words according to n-grams

— updated

English version

The (multi)set of (character-level) n-grams of a word consists of its sequences of n consecutive characters. For instance, the 2-grams of "gram" are "gr", "ra", and "am". Duplicates are counted, e.g., for "toto" the 2-grams are "to", "ot", "to". Given the dictionary of all words in a language, we can compute the multiset of all n-grams.

It turns out that this multiset is quite characteristic of the language. For instance, to identify the language of a piece of text, it is often enough to compute its n-grams, normalize it as a frequency distribution, and compare it to the distribution of known languages: usually the closest distribution is that of the language in which the text is written.

Here I explore a related idea: compute the n-grams of a French dictionary obtained from Lexique, and then take each word of the dictionary and compute the average, over its number of n-grams, of the number of times each n-gram was seen in the dictionary. The highest this number, the most common the n-grams of the word.

And indeed, it turns out this approach is quite good at identifying words that look strange or that look common. Let us first prepare a dictionary of French words that are not derived forms, removing those containing strange characters or consisting only of consonants:

cut -f1,14 lexique |
  sed 1d |
  grep '1$' |
  cut -f 1 |
  uniq |
  grep -v "['. -]" |
  grep -v '^[bcdfghjklmnpqrstvwxzç]*$' > words.txt

Now run the script ubac.py (originally written by Armavica). Here are the 100 weirdest words, for n = 1, 2, 3, 4, sorted by ascending score (following the definition above) and breaking ties by alphabetical order:

à       fy      acmé     abbé
çà      où      acné     abcès
ô       éwé     adp      abyme
jà      jà      bey      acmé
y       çà      cañon    acné
fy      dû      dey      afghan
dû      aa      deçà     ailé
by      là      doña     aimé
gy      sûr     dyke     aixois
déjà    mûr     déçu     ajax
khôl    eh      fez      alcôve
âgé     yéyé    fox      alezan
jazzy   fût     foëne    alizé
yéyé    khôl    guzla    allô
gym     oh      hâve     almée
fâché   tôt     ibm      aloès
jazz    jèze    khôl     amibe
bâché   uht     kiwi     amok
éwé     by      kohl     ankh
évêché  gy      lek      apax
buggy   pèze    new      apex
husky   ok      ovni     area
pêché   rhô     oïl      arkose
fêlé    rôt     più      arum
dès     dès     reçu     arôme
bombyx  kohl    rhô      asdic
là      kiwi    señor    aulx
hobby   tweed   tek      awacs
hé      ça      uht      axel
hâlé    oïl     wax      azulejo
bobby   dyke    wigwam   azéri
zébu    kawa    yue      aède
ès      août    yéyé     aéré
haïk    têt     zeb      aïkido
jubé    ako     zob      aïoli
chômé   aïe     âgé      baht
hugh    vu      éwé      baie
junky   wax     zemstvo  banjo
bé      web     muon     baou
bébé    ghât    noël     barzoï
jugé    ès      soja     basé
puff    lès     yeah     beagle
déçu    yakuza  foehn    berk
guppy   oxo     vodka    besef
bédé    zozo    abc      beuh
whisky  zizi    bof      bezef
époxy   mât     bye      bief
puy     jazzy   cèpe     binz
psy     kazakh  dao      birbe
fox     oka     djemââ   bizou
bouzy   ski     dès      bled
ghât    bât     faf      blob
ptyx    axe     grâce    bobsleigh
qu      aïd     jeûne    bock
funky   rêvé    kawa     bodega
body    ska     kif      boer
dé      gym     kot      boghei
zob     skaï    lez      bohême
lâché   kiki    nok      bolge
dévoyé  skunks  nèpe     boskoop
job     zeb     piu      boxon
bluff   aï      puzzle   bozo
pédégé  lynx    sikh     bref
câblé   ah      zicmu    brize
flux    zoo     zip      brol
wax     bye     âge      brook
fût     jazz    île      bufo
psyché  kaki    nikkei   buggy
bug     je      bézef    bunraku
zouk    ajax    taïga    buée
hypo    yak     trèpe    bâté
box     bézef   dîme     bébé
vu      yoyo    naevus   bédé
zéphyr  ka      ptyx     béer
zélé    kayak   râpé     bénef
pédé    jojo    york     bésef
décès   zef     abîme    bévue
boy     jaja    bezef    bézef
mêlé    jeep    shôgun   bôme
haïku   hugh    fax      cajun
yak     junky   geez     canyon
djemââ  ptyx    glèbe    casoar
dégât   buggy   gêné     catgut
goy     funky   ils      cavum
sulky   aya     lao      caïd
bât     âgé     laïus    caïman
haïkaï  ya      lès      cañon
jusqu   excès   moho     ceci
phylum  lys     nez      cheap
péché   oye     ouïe     chez
off     râpé    ouïr     ciao
jèze    foehn   paf      ciré
hadj    psy     puy      city
kazakh  rugby   puîné    clac
pépé    zébu    rez      clef
décédé  bezef   saké     coati
bégum   skip    soft     cobra
huppé   puy     sûr      cohue
baby    yeah    web      coir
humbug  bé      yin      coke

And the 100 least strange, by decreasing score:

e            ter           ion               mention
erre         enter         que               ration
tee          mer           mention           ossement
errer        on            entement          salement
ire          renter        ente              vilement
terre        tenter        cent              râlement
reine        inter         menteur           pâlement
rire         en            lentement         bêlement
are          intenter      vent              cation
terrer       tinter        dent              gisement
renier       entier        lent              nation
enterrer     conter        gent              entement
terrier      contenter     mentalement       mentalement
retirer      rentier       enter             cillement
te           entente       mentir            rationnement
et           ente          entente           virement
rare         enterrer      mental            vitement
raie         entrer        mentez            parement
aire         errer         menton            finement
ente         rentrer       ossement          ornement
ne           rente         rationnement      durement
en           lent          cillement         purement
raire        tente         entablement       bêtement
terne        terrer        mentionner        vêtement
rente        content       mentor            rarement
entre        anti          virement          âprement
enter        ponter        dément            âcrement
retraire     linter        chiquement        sûrement
retenter     lente         sagement          mûrement
reinette     monter        enterrement       vivement
renne        inti          ciment            uniquement
tertre       mener         piment            sagement
ter          sentier       connement         tique
retreinte    venter        gisement          lavement
renter       ante          finement          tellement
entrer       canter        uniquement        chiquement
inerte       retenter      entassement       pavement
entier       intention     salement          bellement
area         menterie      menthe            rudement
enserrer     entement      jument            fadement
rentrer      contrer       ration            logement
serre        rater         moment            jugement
terrine      tiser         identiquement     armement
terrien      contentement  durement          gaiement
retenir      contention    purement          paiement
rentier      tirer         agent             tapement
inertie      tintin        parement          mêmement
tire         lentement     dûment            sapement
rite         tentant       vilement          lapement
relire       mention       vitement          gréement
relier       dentier       sentiment         payement
lierre       miserere      tellement         fixement
serrer       hanter        entichement       cassement
erreur       seriner       menterie          passement
rien         interner      gentiment         bassement
rein         enterrement   cation            tassement
nier         senti         entêtement        mental
trier        conte         pratiquement      mentir
tirer        serrer        bellement         connement
terri        tintement     stationnement     nettement
araire       continent     nation            bonnement
retraite     pinter        contentement      mollement
entente      rentrant      cassement         follement
ternaire     entrant       râlement          oralement
irriter      sente         pâlement          avalement
tertiaire    remonter      bêlement          également
entretien    vanter        passement         nullement
entretenir   entre         entendement       stationnement
ore          attenter      bassement         étalement
oie          intimer       logement          noblement
terrestre    centrer       éventrement       mentez
tette        trente        tassement         roulement
retenue      orienter      actionnement      stablement
tare         montrer       rarement          logiquement
rate         reconter      amendement        utilement
taie         alerter       entièrement       seulement
enterreur    entourer      serment           isolement
rater        der           sentimentalement  feulement
tirette      rencontrer    mollement         amplement
tiare        renier        âprement          diablement
taire        ratier        mens              parlement
verrerie     menton        bonnement         vrillement
tente        patienter     lamentablement    ululement
traire       contenant     ornement          amusement
ratier       cantiner      logiquement       dément
trente       raconter      follement         raclement
tenter       fermenter     entre             versement
teinte       cranter       alitement         drôlement
trentenaire  merisier      tente             ciment
teinter      tin           âcrement          règlement
retentir     serin         rente             frôlement
narrer       teinter       vivement          hurlement
aine         terrier       fadement          piment
arien        errant        tentation         giclement
rainer       lier          comiquement       actionnement
recette      rentamer      mûrement          bâillement
tienne       ventiler      sûrement          menton
interner     riser         lavement          baisement
interne      te            tintement         tintement
resserrer    ralenti       nullement         mentor

Note how for 1-grams the least weird word is "e" consisting of the single most common letter in French; by contrast, for 4-grams, common words are those which contain common 4-letter sequences.

You can download the complete results with the scores, for n = 1 2 3 4. In case you wonder about why the script is called ubac.py: this is just because Armavica and I got started by stumbling on the word "ubac" and wondering how to quantify the fact that it looks weird. Indeed, it is around position 1500 out of around 40k words for n < 4, and it is a unique 4-gram.

Version française

Le (multi)ensemble des n-grammes d'un mot (au niveau des caractères) est formé de ses séquences de n caractères contigus. Par exemple, les 2-grammes de "gramme" sont "gr", "ra", "am", "mm", "me". Les doublons sont comptés : par exemple, pour "toto", les 2-grammes sont "to", "ot" et "to". Étant donné le dictionnaire de tous les mots d'une langue, on peut calculer facilement le multiensemble de tous les n-grammes.

En fait, ce multiensemble est assez caractéristique de la langue. Par exemple, pour identifier la langue dans laquelle un texte est écrit, il suffit généralement de calculer ses n-grammes, normaliser le résultat, et comparer la distribution ainsi obtenue à celle de langues connues : généralement, la distribution la plus proche est celle de la langue dans laquelle le texte est écrit.

Je m'intéresse ici à une idée voisine : calculer les n-grammes pour un dictionnaire de la langue française obtenu à partir de Lexique, puis prendre chaque mot du dictionnaire et calculer la moyenne, sur les n-grammes du mot, du nombre d'occurrences de chaque n-gramme dans le dictionnaire. Plus ce nombre est grand, plus les n-grammes du mot sont répandus.

De fait, cette approche fonctionne plutôt bien pour identifier des mots qui ont l'air bizarres ou qui ont l'air normaux. Préparons tout d'abord un dictionnaire des mots français qui ne sont pas des formes dérivées, en supprimant ceux qui contiennent des caractères bizarres et ceux qui ne contiennent que des consonnes :

cut -f1,14 lexique |
  sed 1d |
  grep '1$' |
  cut -f 1 |
  uniq |
  grep -v "['. -]" |
  grep -v '^[bcdfghjklmnpqrstvwxzç]*$' > words.txt

Passons à présent ce résultat au script ubac.py (dont la version initiale a été écrite par Armavica). Voici les 100 mots les plus bizarres, pour n allant de 1 à 4, triés par score croissant suivant la définition ci-dessus, puis par ordre alphabétique en cas d'égalité :

à       fy      acmé     abbé
çà      où      acné     abcès
ô       éwé     adp      abyme
jà      jà      bey      acmé
y       çà      cañon    acné
fy      dû      dey      afghan
dû      aa      deçà     ailé
by      là      doña     aimé
gy      sûr     dyke     aixois
déjà    mûr     déçu     ajax
khôl    eh      fez      alcôve
âgé     yéyé    fox      alezan
jazzy   fût     foëne    alizé
yéyé    khôl    guzla    allô
gym     oh      hâve     almée
fâché   tôt     ibm      aloès
jazz    jèze    khôl     amibe
bâché   uht     kiwi     amok
éwé     by      kohl     ankh
évêché  gy      lek      apax
buggy   pèze    new      apex
husky   ok      ovni     area
pêché   rhô     oïl      arkose
fêlé    rôt     più      arum
dès     dès     reçu     arôme
bombyx  kohl    rhô      asdic
là      kiwi    señor    aulx
hobby   tweed   tek      awacs
hé      ça      uht      axel
hâlé    oïl     wax      azulejo
bobby   dyke    wigwam   azéri
zébu    kawa    yue      aède
ès      août    yéyé     aéré
haïk    têt     zeb      aïkido
jubé    ako     zob      aïoli
chômé   aïe     âgé      baht
hugh    vu      éwé      baie
junky   wax     zemstvo  banjo
bé      web     muon     baou
bébé    ghât    noël     barzoï
jugé    ès      soja     basé
puff    lès     yeah     beagle
déçu    yakuza  foehn    berk
guppy   oxo     vodka    besef
bédé    zozo    abc      beuh
whisky  zizi    bof      bezef
époxy   mât     bye      bief
puy     jazzy   cèpe     binz
psy     kazakh  dao      birbe
fox     oka     djemââ   bizou
bouzy   ski     dès      bled
ghât    bât     faf      blob
ptyx    axe     grâce    bobsleigh
qu      aïd     jeûne    bock
funky   rêvé    kawa     bodega
body    ska     kif      boer
dé      gym     kot      boghei
zob     skaï    lez      bohême
lâché   kiki    nok      bolge
dévoyé  skunks  nèpe     boskoop
job     zeb     piu      boxon
bluff   aï      puzzle   bozo
pédégé  lynx    sikh     bref
câblé   ah      zicmu    brize
flux    zoo     zip      brol
wax     bye     âge      brook
fût     jazz    île      bufo
psyché  kaki    nikkei   buggy
bug     je      bézef    bunraku
zouk    ajax    taïga    buée
hypo    yak     trèpe    bâté
box     bézef   dîme     bébé
vu      yoyo    naevus   bédé
zéphyr  ka      ptyx     béer
zélé    kayak   râpé     bénef
pédé    jojo    york     bésef
décès   zef     abîme    bévue
boy     jaja    bezef    bézef
mêlé    jeep    shôgun   bôme
haïku   hugh    fax      cajun
yak     junky   geez     canyon
djemââ  ptyx    glèbe    casoar
dégât   buggy   gêné     catgut
goy     funky   ils      cavum
sulky   aya     lao      caïd
bât     âgé     laïus    caïman
haïkaï  ya      lès      cañon
jusqu   excès   moho     ceci
phylum  lys     nez      cheap
péché   oye     ouïe     chez
off     râpé    ouïr     ciao
jèze    foehn   paf      ciré
hadj    psy     puy      city
kazakh  rugby   puîné    clac
pépé    zébu    rez      clef
décédé  bezef   saké     coati
bégum   skip    soft     cobra
huppé   puy     sûr      cohue
baby    yeah    web      coir
humbug  bé      yin      coke

Voici les 100 mots les moins étranges, par score décroissant :

e            ter           ion               mention
erre         enter         que               ration
tee          mer           mention           ossement
errer        on            entement          salement
ire          renter        ente              vilement
terre        tenter        cent              râlement
reine        inter         menteur           pâlement
rire         en            lentement         bêlement
are          intenter      vent              cation
terrer       tinter        dent              gisement
renier       entier        lent              nation
enterrer     conter        gent              entement
terrier      contenter     mentalement       mentalement
retirer      rentier       enter             cillement
te           entente       mentir            rationnement
et           ente          entente           virement
rare         enterrer      mental            vitement
raie         entrer        mentez            parement
aire         errer         menton            finement
ente         rentrer       ossement          ornement
ne           rente         rationnement      durement
en           lent          cillement         purement
raire        tente         entablement       bêtement
terne        terrer        mentionner        vêtement
rente        content       mentor            rarement
entre        anti          virement          âprement
enter        ponter        dément            âcrement
retraire     linter        chiquement        sûrement
retenter     lente         sagement          mûrement
reinette     monter        enterrement       vivement
renne        inti          ciment            uniquement
tertre       mener         piment            sagement
ter          sentier       connement         tique
retreinte    venter        gisement          lavement
renter       ante          finement          tellement
entrer       canter        uniquement        chiquement
inerte       retenter      entassement       pavement
entier       intention     salement          bellement
area         menterie      menthe            rudement
enserrer     entement      jument            fadement
rentrer      contrer       ration            logement
serre        rater         moment            jugement
terrine      tiser         identiquement     armement
terrien      contentement  durement          gaiement
retenir      contention    purement          paiement
rentier      tirer         agent             tapement
inertie      tintin        parement          mêmement
tire         lentement     dûment            sapement
rite         tentant       vilement          lapement
relire       mention       vitement          gréement
relier       dentier       sentiment         payement
lierre       miserere      tellement         fixement
serrer       hanter        entichement       cassement
erreur       seriner       menterie          passement
rien         interner      gentiment         bassement
rein         enterrement   cation            tassement
nier         senti         entêtement        mental
trier        conte         pratiquement      mentir
tirer        serrer        bellement         connement
terri        tintement     stationnement     nettement
araire       continent     nation            bonnement
retraite     pinter        contentement      mollement
entente      rentrant      cassement         follement
ternaire     entrant       râlement          oralement
irriter      sente         pâlement          avalement
tertiaire    remonter      bêlement          également
entretien    vanter        passement         nullement
entretenir   entre         entendement       stationnement
ore          attenter      bassement         étalement
oie          intimer       logement          noblement
terrestre    centrer       éventrement       mentez
tette        trente        tassement         roulement
retenue      orienter      actionnement      stablement
tare         montrer       rarement          logiquement
rate         reconter      amendement        utilement
taie         alerter       entièrement       seulement
enterreur    entourer      serment           isolement
rater        der           sentimentalement  feulement
tirette      rencontrer    mollement         amplement
tiare        renier        âprement          diablement
taire        ratier        mens              parlement
verrerie     menton        bonnement         vrillement
tente        patienter     lamentablement    ululement
traire       contenant     ornement          amusement
ratier       cantiner      logiquement       dément
trente       raconter      follement         raclement
tenter       fermenter     entre             versement
teinte       cranter       alitement         drôlement
trentenaire  merisier      tente             ciment
teinter      tin           âcrement          règlement
retentir     serin         rente             frôlement
narrer       teinter       vivement          hurlement
aine         terrier       fadement          piment
arien        errant        tentation         giclement
rainer       lier          comiquement       actionnement
recette      rentamer      mûrement          bâillement
tienne       ventiler      sûrement          menton
interner     riser         lavement          baisement
interne      te            tintement         tintement
resserrer    ralenti       nullement         mentor

Remarquez comme le mot le moins étrange en termes de 1-grammes est "e", qui consiste de la seule lettre "e" qui est la plus courante en français. Pour les 4-grammes, en revanche, les mots les moins étranges sont ceux qui se composent de séquences de 4 caractères qui sont fréquentes.

Vous pouvez télécharger les résultats complets avec le score, pour n valant 1 2 3 4. Pour l'anecdote, le script s'appelle ubac.py pour la raison suivante : Armavica et moi étions tombés sur le mot "ubac" et nous demandions comment quantifier le fait qu'il a l'air bizarre. De fait, le mot se classe vers la position 1500 (sur 40000 mots environ) pour n < 4, et c'est un 4-gramme unique.

comments welcome at a3nm<REMOVETHIS>@a3nm.net