aboutsummaryrefslogtreecommitdiff
path: root/download
diff options
context:
space:
mode:
Diffstat (limited to 'download')
-rw-r--r--download/bz2toDB.py35
-rwxr-xr-xdownload/download.py225
-rw-r--r--download/dump2msgp.py390
-rw-r--r--download/msgPack2sqlite_msgPack.py59
-rw-r--r--download/sectionList.py96
-rw-r--r--download/template.py1086
6 files changed, 0 insertions, 1891 deletions
diff --git a/download/bz2toDB.py b/download/bz2toDB.py
deleted file mode 100644
index a0c2cd3..0000000
--- a/download/bz2toDB.py
+++ /dev/null
@@ -1,35 +0,0 @@
-""" Not a script
-
-Don't use that script
-
-
-This python file store function related to bz2 python module and then the
-on the fly method of decompression.
-
-"""
-
-import bz2
-import sys
-
-
-def unbz2(file):
- decomp = bz2.BZ2Decompressor()
- buf = b''
- for c in file:
- buf += decomp.decompress(c)
-
- while b'\n' in buf:
- i = buf.index(b'\n')
- if i + 1 < len(buf):
- ret = buf[:i + 1]
- buf = buf[i + 1:]
- yield ret.decode("utf-8")
- else:
- yield buf
- buf = b''
-
-
-with open('./wiktionary_dump.xml.bz2', 'rb') as f:
- it = iter(lambda: f.read(32768), b'')
- for a in unbz2(it):
- print(a, end='')
diff --git a/download/download.py b/download/download.py
deleted file mode 100755
index 21137f0..0000000
--- a/download/download.py
+++ /dev/null
@@ -1,225 +0,0 @@
-#!/bin/env python
-
-"""dfr - Prepare database
-
-This script will download the last wiktionary dump from wikimedia, extract it
-process it and then .
-The result of that script is a sqlite database file usable with dfr.py.
-
-As downloading the dump can be challenging, you can specify a input file that
-will be used instead of the last dump from wikimedia. It's the goal of the
-command line option `--download`.
-
-###########################
-⚠ WARNING: Beaware that a wiktionary cmpressed archive dump is big.
-Then a decompressed one is bigger again and so a lot of disk space is
-needed to store these files.
-
-⚠ WARNING: Beaware that wiktionary dump are really big and than a lot of memory
-space are needed to process them. It's NOT recommended to try to create a
-database file on a computer with less than 2Gio memory, even using the on
-the fly decompression method.
-###########################
-
-They is only a few other command line options that can use with that script.
-
- + --output
- The name of the final sqlite database. By default it's `dfr.db`. dfr.py
- will expect the database to on the root of the project and to be
- named `dfr.db` so that you don't have to modify anything here.
-
-+ --input
- As describe earlier, if you already have downloaded the wiktionary dump,
- you can set the location of the file that will be used here.
- The purpose it to not re-download the dump each time.
-
- The "download" and "input" options are incompatibles.
-
-+ --download
- Force the download of the file even if the file is already downloaded.
- It used to force update of the database.
-
- The "download" and "input" options are incompatibles.
-
-+ --word-list
- Not usefull for the moment. dfr will have a functionality to list every
- words in the dictionnary. You will be able to filter words based on regex,
- optionally, there will be a option to auto correct a word but nothing
- is implemented here.
- In all cases, you can specify the filename of the file that will store
- every words.
-
-Note: This script have many option to decompress the wiktionary archive dump.
-
-First, it will try the `bzip2` command, if it fails, this script will try
-to extract the bzip file on the fly using bz2 python module.
-
- - The `bzip2` command is very fast but use a lot of disk space and consume a lot
-of memory (RAM) to quickly decompress the file.
- - The `bz2` python module isn't that fast but use less memory and the parsing
-is also done on the fly.
-
-In every case, a lot of memory (RAM) is necessary to process the last wiktionary dump.
-
-"""
-
-# TODO: Add an option to set URL of the DUMP. To cache another file than the latest or for another language than fr.
-
-# TODO: Add an option to choose the extract method.
-
-# TODO: Optimize the bz2 module process to write the msgpack file on the fly. The goal is to never store a lot of information in memory. This optimization could reduce a lot the memory (RAM) usage and possibly allow creation of the database on low memory computer (less than 2Gio).
-
-import argparse
-import sys
-import urllib.request
-import dump2msgp
-import msgPack2sqlite_msgPack
-import subprocess
-import os
-
-from os.path import exists
-
-
-URL_DUMP = 'https://dumps.wikimedia.org/frwiktionary/latest/frwiktionary-latest-pages-meta-current.xml.bz2'
-
-
-def unbz2(file):
- decomp = bz2.BZ2Decompressor()
- buf = b''
- for c in file:
- buf += decomp.decompress(c)
-
- while b'\n' in buf:
- i = buf.index(b'\n')
- if i + 1 < len(buf):
- ret = buf[:i + 1]
- buf = buf[i + 1:]
- yield ret.decode('utf-8')
- else:
- yield buf.decode('utf-8')
- buf = b''
-
-
-if __name__ == '__main__':
- parser = argparse.ArgumentParser(description='Download and create the database')
- parser.add_argument('-o', '--output', dest='outputF', action='store',
- help='the output, the database filename',
- default='dfr.db')
- parser.add_argument('-i', '--input', dest='dumpF', action='store',
- help='the input dump file\'s filename',
- default='')
- parser.add_argument('-l', '--word-list', dest='wordList', action='store',
- help='the alternative output, filename of the word list',
- default=None)
- parser.add_argument('-d', '--download', dest='download', action='store_true',
- help='to download the lastest dump')
-
- download = True
-
- arg = parser.parse_args()
-
-
- if not arg.wordList:
- arg.wordList = arg.outputF + '.wordlist'
-
- if arg.download and arg.dumpF:
- print('''Incompatible options '-i' and '-d'.''')
- exit(1)
- elif arg.download:
- arg.dumpF = URL_DUMP[URL_DUMP.rindex('/') + 1:]
- elif arg.dumpF:
- download = False
-
-
- if not arg.dumpF or not arg.dumpF.endswith('bz2'):
- print('A bz2 dump file filename needed', file=sys.stderr)
- exit(-1)
-
- if exists(arg.dumpF) and download:
- print(f'{arg.dumpF} exists. Force downloading ? (y/N)')
- answer = input('> ')
- if answer.lower()[0] != 'y':
- download = False
-
- if download:
- print(download);
- print(f'Downloading the dump ({arg.dumpF})\nIt should take some time')
- try:
- urllib.request.urlretrieve(URL_DUMP, arg.dumpF)
- except urllib.error.URLError:
- print('Error: Unable to download from internet')
- print(f'Check connection and source URL : ({ URL_DUMP })')
- print('Exiting')
- exit(-10)
- except:
- print('Download failed.')
- print('Exiting')
- exit(-1)
-
- if not exists(arg.dumpF):
- if download:
- print('Download failed.\nExiting.', file=sys.stderr)
- else:
- print(f'Fichier { arg.dumpF } introuvable.\nArrĂȘt.')
- exit(-2)
-
- decompress = False
-
- try:
- print('Trying the bzip2 command')
- assert(subprocess.call(['bzip2', '-d', arg.dumpF]) == 0)
- decompress = True
- except:
- print('''The command "bzip" doesn't exists, or doesn't work as intended''')
- print('Fallback to Python bz2 module decompressor')
-
- # Decompression using bzip2
- if not decompress:
- try:
- import bz2
- with open(arg.dumpF, 'rb') as f:
- it = iter(lambda: f.read(2**16), b'')
-
- output_fn = arg.dumpF[:-4]
-
- with open(output_fn, 'wb') as fout:
- dcomp = bz2.BZ2Decompressor()
- for chunk in it:
- datal = len(chunk)
- data = dcomp.decompress(chunk)
- fout.write(data)
- decompress = True
- except:
- print('''Python bz2 module decompressor failed, maybe you don't have any space available''')
- print('Fallback to on the fly decompressor (RAM will be needed)')
-
- if not decompress:
- try:
- # On the fly Decompression
- with open(arg.dumpF, 'rb') as f:
- it = iter(lambda: f.read(2**16), b'')
- print('Data extraction on the fly')
- res = dump2msgp.extractAll(unbz2(it), 'error.log', False)
- with open(arg.wordList, 'wb'):
- f.write('\n'.join(a.keys()))
-
- msgPack2sqlite_msgPack.writeDB(arg.outputF, res)
- print(f'Word list { arg.wordList } created ! 👏 🎉')
- print(f'Database { arg.outputF } created ! 👏 🎉')
- except:
- print('''Error: Can't extract the dump file''')
- print('Exiting (-1)')
- exit(-1)
-
- print(f'Removing temporary files')
- os.remove(arg.dumpF)
- else:
- output_fn = arg.dumpF[:-4]
- with open(output_fn, 'r') as f:
- print('Create the database')
- res = dump2msgp.extractAll(f, 'error.log', False)
- msgPack2sqlite_msgPack.writeDB(arg.outputF, res)
- print(f'Database { arg.outputF } created ! 👏 🎉')
-
- print('Removing temporary files')
- os.remove(output_fn)
diff --git a/download/dump2msgp.py b/download/dump2msgp.py
deleted file mode 100644
index e76115c..0000000
--- a/download/dump2msgp.py
+++ /dev/null
@@ -1,390 +0,0 @@
-#!/bin/env python
-
-"""dfr - Dump to msgpack
-
-Extract words from the Wiktionnary archive. All the parsing is done here.
-The product of that script is a MessagePack file that store every information in
-easily editable and dev friendly format.
-
-More information on MessagePack (msgpack) :
-<https://msgpack.org/>
-
-So there is some command line options that script can deal with.
-
-
- + --output
- The filename of the msgpack file to write.
-
- + --input
- The filename of the decompressed wiktionary dump.
-
- + --error
- The filename that will log errors related to parsing.
- Wiktionnary is a community edited platform so there is a lot of
- formatting mistakes. This script will report everything that it
- doesn't understand in that file.
-
- + --ignore
- By default, this script stops on the first error. But as I say earlier,
- there is a lot of mistakes in the wiktionary archive dump so this option
- is intended to ignore errors and just continue.
- Errors are still logged though.
-
-
-"""
-
-
-import tempfile as tmp
-import re
-import sys
-import msgpack
-import argparse
-
-from sectionList import listInfoSection
-from template import template
-
-
-DEFAULT_OUTPUT = 'dfr.msgpk'
-
-
-template_second = ['link', 'bd', 'pc', 'nom w pc', 'w', 'smcp', 'lien', 'ws',
- 'in', 'siĂšcle2', 'fchim', 'nobr', 'wp', 'r',
- 'clé de tri', 'contexte', 'emploi', 'l', 'polytonique',
- 'pron-API', 'registre', 'scmp', 'siĂšcle', 'x',
- ]
-
-
-template_second_lambda_trd = {
- 'refnec': (lambda x: '(Référence nécessaire : ' + x + ')'),
- 'refnéc': (lambda x: '(Référence nécessaire : ' + x + ')'),
-}
-
-template_second_lambda_snd = {
- 'term': (lambda x: '(' + x.title() + ')'),
- 'terme': (lambda x: '(' + x.title() + ')'),
- 'ex': (lambda x: '^{' + x if x else 'e' + '}'),
- 'exp': (lambda x: '^{' + x if x else 'e' + '}'),
- 'e': (lambda x: '^{' + x if x else 'e' + '}'),
- 'er': (lambda x: '^{' + x if x else 'er' + '}'),
- 'Ăšre': (lambda x: '^{' + x if x else 'Ăšre' + '}'),
- 'Ăšme': (lambda x: '^{' + x if x else 'Ăšme' + '}'),
- 'Ier': (lambda x: '^{' + x if x else 'Ier' + '}'),
- 'III': (lambda x: '^{' + x if x else 'III' + '}'),
- 'small': (lambda x: '_{' + x if x else '' + '}'),
- 'indice': (lambda x: '_{' + x if x else '' + '}'),
- 'graphie': (lambda x: '«' + x if x else '»'),
- 'petites capitales': (lambda x: x.upper()),
- 'isbn': (lambda x: 'cf. ISBN ' + x),
- 'OCLC': (lambda x: 'cf. OCLC ' + x),
- 'variante de': (lambda x: 'Variante de ' + x),
- 'variante de': (lambda x: 'Variante de ' + x),
- 'variante ortho de': (lambda x: 'Variante orthographique de ' + x),
- 'variante ortho de': (lambda x: 'Variante orthographique de ' + x),
- 'variante ortho de': (lambda x: 'Variante orthographique de ' + x),
- 'variante orthographique de': (lambda x: 'Variante orthographique de ' + x),
- 'sic !': (lambda x: '^{sic ' + x + '}'),
- 'sic': (lambda x: '^{sic ' + x + '}'),
- 'incise': (lambda x: '_' + x + '_'),
- 'n°': (lambda x: 'n°' + x),
- 'superlatif de': (lambda x: 'Superlatif de' + x),
- 'vĂ©rifier': (lambda x: '(À vĂ©rifier : ' + x + ')'),
-}
-
-dictMatch = {x['match']: i for (i, x) in enumerate(listInfoSection)}
-
-interdit = " :"
-
-
-def transclusion(trans, info, errorF):
- trans = trans[2:-2]
-
- while '{{' in trans:
- l0 = trans.rfind('{{')
- l1 = trans.find('}}', l0)
- if l1 == -1:
- break
- else:
- l1 += 2
- t = trans[l0:l1]
- t = transclusion(t, info, errorF)
- trans = trans[:l0] + t + trans[l1:]
-
- s = list(map(lambda x: x.strip(), trans.split('|')))
- if s[0] in template:
- return template[s[0]]
-
- if s[0].lower() in template_second:
- return s[1] if len(s) > 1 else info['mot']
-
- if s[0].lower().startswith('citation'):
- cit = s[0].split('/')
- if len(cit) == 4:
- return 'Par ' + cit[1] + ', ' + cit[2] + ', ' + cit[3]
- if len(cit) == 3:
- return 'Par ' + cit[1] + ', ' + cit[2]
- if len(cit) == 5:
- return cit[1] + '/' + cit[2] + '/' + cit[3] + ', ' + cit[4]
- if len(cit) <= 2:
- return ''
- else:
- return '/'.join(cit[1:])
-
- if s[0].lower() in template_second_lambda_snd:
- return template_second_lambda_snd[s[0].lower()](s[1] if len(s) > 1 else '')
-
- if s[0].lower() in template_second_lambda_trd:
- return template_second_lambda_trd[s[0].lower()](s[2] if len(s) > 2 else '')
-
- if errorF:
- with open(errorF, 'a') as err:
- print(s[0], file=err)
- print("Incompréhension de la transclusion {} du mot {}".format(trans,
- info['mot']), file=err)
- return ''
-
-
-def extract(f, w, errorF):
- infoFin = []
-
- toRead = True
- goBack = 0
-
- while toRead:
- toRead = False
-
- info = {'mot': w,
- 'cat-gram': None,
- 'def': [],
- 'API': None,
- 'infos': [],
- 'genre': '',
- 'accord': None}
-
- # State 0 // Initialisation !
- while line := f.readline():
-
- if line.startswith('=== ') or line.startswith('==={'):
- if re.match('^=== *{{ *S\\|([^|]+)|.*$', line):
- try:
- r = re.match('^=== *{{ *S\\|([^|]+)|.*$', line)
- r = r.groups()
- nat = r[0].strip()
- if nat in dictMatch.keys():
- info['cat-gram'] = nat
- toRead = True
- break
- except Exception as e:
- if errorF:
- with open(errorF, 'a') as err:
- print("^[1] ProblĂšme Ă  l'initialisation du mot {mot}: {e}", file=err)
- print(f'line: [{line}]: {e}', file=err)
- e = sys.exc_info()[0]
- print("Erreur :", e, file=err)
-
- if not toRead:
- break
-
- # State 1
- while line := f.readline():
- if line.startswith('{{fr-'):
- e = line.find('}}')
- if e == -1:
- continue
- ex = line[:e]
- try:
- infos = list(map(lambda x: x.strip(), ex.split('|')))
- info['infos'] = infos
- info['accord'] = infos[0]
- if len(infos) > 1:
- info['API'] = infos[1]
- except e:
- err = sys.exc_info()[0]
- print(ex)
- print("Erreur :", e)
- print("Erreur :", err)
- if line.rstrip().startswith("'''"):
- if '{{pron' in line:
- p0 = line.find('{{pron')
- p1 = line.find('}}', p0)
- if p1 > 0:
- p1 += 2
- p = line[p0:p1]
- p = p.split('|')
- info['API'] = p[1]
- if '{{m}}' in line:
- info['genre'] = 'mas'
- elif '{{f}}' in line:
- info['genre'] = 'fem'
-
- if line.startswith('# '):
- info['def'].append({'def': wikiToMd(line[2:], info, errorF)})
- elif line.startswith('#* '):
- if not info['def']:
- with open('wiki_err.log', 'a') as err:
- print("Exemple sans définition pour le mot {}".format(
- info['mot']), file=err)
- elif 'ex' in info['def'][-1]:
- info['def'][-1]['ex'].append(wikiToMd(line[3:], info, errorF))
- else:
- info['def'][-1]['ex'] = [wikiToMd(line[3:], info, errorF)]
- elif line.startswith('#') and not line.startswith('##'):
- info['def'].append({'def': wikiToMd(line[1:], info, errorF)})
- if line.startswith('==='):
- goBack = len(line)
- break
- if goBack:
- f.seek(f.tell() - goBack)
- goBack = 0
- toRead = True
- infoFin.append(info)
-
- return infoFin
-
-
-def wikiToMd(line, info, errorF):
- line = line.strip()
- # 3 Étapes:
- # - Links [...]
- # - Style ''ita'' / '''bold'''
- # - Template / Transclusion {{info}} = (Informatique)
-
- # Template
- while '{{' in line:
- l0 = line.rfind('{{')
- l1 = line.find('}}', l0)
- if l1 == -1:
- break
- else:
- l1 += 2
- trans = line[l0:l1]
- trans = transclusion(trans, info, errorF)
- line = line[:l0] + trans + line[l1:]
-
- # Links !
- while '[[' in line:
- link0 = line.rfind('[[')
- link1 = line.find(']]', link0)
- if link1 == -1:
- break
- else:
- link1 += 2
-
- link = line[link0:link1]
- link = link[2:-2].split('|')
- line = line[:link0] + (link[1] if len(link) > 1 else link[0]) + line[link1:]
-
- # Style
- line = line.replace("'''", '*').replace("''", '')
-
- return line
-
-
-def extractAll(f, errorF, ignore):
- title = ""
- isFr = False
- hasForbidden = False
- hasText = False
- tf = None
- isEnd = False
-
- dict_ = dict()
-
- i = 0
-
- clearHTML = re.compile('&lt;.*&gt;', re.IGNORECASE)
-
- for line in f:
- i += 1
- if "</page>" in line and tf:
- tf.seek(0)
- tmpInfo = extract(tf, title, errorF)
-
- dict_[title] = tmpInfo
- tf.close()
-
- tf = None
- hasForbidden = False
- hasText = False
- isFr = False
- title = ""
- isEnd = False
- elif "</page>" in line:
- tf = None
- hasForbidden = False
- hasText = False
- isFr = False
- title = ""
- isEnd = False
- if isEnd:
- continue
-
- if "<title>" in line:
- title = line[line.find('>') + 1:]
- title = title[:title.find('<')]
-
- for c in interdit:
- if c in title:
- hasForbidden = True
- if not hasForbidden and "<text bytes=\"" in line and "\" xml:space=\"preserve\">" in line:
- hasText = True
- if not hasForbidden and "== {{langue|fr}}" in line and hasText:
- isFr = True
- if tf:
- if not ignore:
- if errorF:
- with open(errorF, 'a') as err:
- print(f"{title}: Erreur tf encore ouvert !",
- file=err)
- else:
- print(f"{title}: Erreur tf encore ouvert !")
- tf.seek(0)
- while line2 := tf.readline():
- print(line2, end='')
- print(f"{i}: {line}")
-
- exit(-1)
- else:
- tf = tmp.NamedTemporaryFile(mode="w+t")
- elif not hasForbidden and "== {{langue|" in line:
- isFr = False
- if not hasForbidden and isFr and tf:
- start = ""
- try:
- start = line.split()[0]
- except:
- pass
- tLine = clearHTML.sub('', line.replace('&lt;br&gt;', '\n' + start + ' '))
- try:
- ind = tLine.index('</text>')
- tf.write(tLine[:ind])
- isEnd = True
- except:
- tf.write(tLine)
-
- return dict_
-
-
-if __name__ == '__main__':
- parser = argparse.ArgumentParser(description='wiktionary dump to msgpack')
- parser.add_argument('-o', '--out', dest='outputF', action='store_const',
- const=DEFAULT_OUTPUT, default=DEFAULT_OUTPUT,
- help='the output filename')
- parser.add_argument('-i', '--input', dest='inputF', action='store',
- help='the input filename, a dump of witionary')
- parser.add_argument('-e', '--error', dest='errorF', action='store',
- help='the filename to log errors')
- parser.add_argument('--ignore', dest='ignoreError', action='store_true',
- help='the filename to log errors')
-
- arg = parser.parse_args()
-
- if arg.inputF is None:
- print('A wiktionary dump is needed', file=sys.stderr)
- exit(-1)
-
- with open(arg.inputF, 'r') as f:
- res = extractAll(f, arg.errorF, arg.ignoreError)
-
- with open(arg.outputF, 'wb') as f:
- to_w = msgpack.packb(res)
- f.write(to_w)
diff --git a/download/msgPack2sqlite_msgPack.py b/download/msgPack2sqlite_msgPack.py
deleted file mode 100644
index c08efdb..0000000
--- a/download/msgPack2sqlite_msgPack.py
+++ /dev/null
@@ -1,59 +0,0 @@
-import msgpack
-import os
-import sys
-
-import sqlite3
-import argparse
-
-
-def writeDB(outputF, data):
- # Delete if exists
- try:
- os.remove(outputF)
- except OSError:
- pass
-
- with sqlite3.connect(outputF) as con:
- cur = con.cursor()
- cur.execute('''CREATE TABLE IF NOT EXISTS entry (
- word TEXT,
- cat_gram TEXT,
- API TEXT,
- infos TEXT,
- genre TEXT,
- accord TEXT,
- defs BLOG,
- ID INTEGER PRIMARY KEY)''')
- con.commit()
-
- for w, listW in data.items():
- for word in listW:
- data = (w, word['cat-gram'], word['API'], "\t".join(word['infos']),
- word['genre'], word['accord'],
- msgpack.packb(word['def']))
- cur.execute('''INSERT INTO entry (word, cat_gram, API, infos,
- genre, accord, defs) VALUES (?, ?, ?, ?, ?, ?, ?)''', data)
- con.commit()
-
-
-if __name__ == '__main__':
- parser = argparse.ArgumentParser(description='wiktionary dump msgpack '
- 'to SQLite database file')
- parser.add_argument('-o', '--out', dest='outputF', action='store',
- help='the output filename')
- parser.add_argument('-i', '--input', dest='inputF', action='store',
- help='the input filename, a dump of witionary')
-
- arg = parser.parse_args()
-
- if arg.inputF is None:
- print('Error input file needed', file=sys.stderr)
- if arg.outputF is None:
- print('Error output file needed', file=sys.stderr)
-
- with open(arg.inputF, 'rb') as f:
- r = f.read()
-
- d = p = msgpack.unpackb(r, raw=False)
- del r
- writeDB(arg.outputF, d)
diff --git a/download/sectionList.py b/download/sectionList.py
deleted file mode 100644
index 68dd657..0000000
--- a/download/sectionList.py
+++ /dev/null
@@ -1,96 +0,0 @@
-
-listInfoSection = [
- {'type': 'adjectif', 'match': 'adj', 'o': 'adjectif'},
- {'type': 'adjectif', 'match': 'adjectif', 'o': 'adjectif'},
- {'type': 'adjectif', 'match': 'adj-dém', 'o': 'adjectif démonstratif'},
- {'type': 'adjectif', 'match': 'adjectif démonstratif', 'o': 'adjectif démonstratif'},
- {'type': 'adjectif', 'match': 'adjectif exclamatif', 'o': 'adjectif exclamatif'},
- {'type': 'adjectif', 'match': 'adjectif indéfini', 'o': 'adjectif indéfini'},
- {'type': 'adjectif', 'match': 'adjectif interrogatif', 'o': 'adjectif interrogatif'},
- {'type': 'adjectif', 'match': 'adjectif numéral', 'o': 'adjectif numéral'},
- {'type': 'adjectif', 'match': 'adjectif possessif', 'o': 'adjectif possessif'},
- {'type': 'adjectif', 'match': 'adjectif relatif', 'o': 'adjectif relatif'},
-
- {'type': 'adverbe', 'match': 'adv', 'o': 'adverbe'},
- {'type': 'adverbe', 'match': 'adverbe', 'o': 'adverbe'},
- {'type': 'adverbe', 'match': 'adverbe interrogatif', 'o': 'adverbe interrogatif'},
- {'type': 'adverbe', 'match': 'adverbe relatif', 'o': 'adverbe relatif'},
-
- {'type': 'article', 'match': 'article', 'o': 'article'},
- {'type': 'article', 'match': 'article défini', 'o': 'article défini'},
- {'type': 'article', 'match': 'article indéfini', 'o': 'article indéfini'},
- {'type': 'article', 'match': 'article partitif', 'o': 'article partitif'},
-
- {'type': 'conjonction', 'match': 'conjonction', 'o': 'conjonction'},
- {'type': 'conjonction', 'match': 'conjonction de coordination', 'o': 'conjonction de coordination'},
-
-
- {'type': 'erreur', 'match': 'erreur', 'o': 'faute courante'},
- {'type': 'erreur', 'match': 'faute', 'o': 'faute courante'},
-
- {'type': 'interjection', 'match': 'interj', 'o': 'interjection'},
- {'type': 'interjection', 'match': 'interjection', 'o': 'interjection'},
-
- {'type': 'interjection', 'match': 'interjection', 'o': 'interjection'},
-
- {'type': 'locuton nominale', 'match': 'loc-phr', 'o': 'locution nominale'},
- {'type': 'locuton nominale', 'match': 'locution', 'o': 'locution nominale'},
- {'type': 'locuton nominale', 'match': 'locution nominale', 'o': 'locution nominale'},
- {'type': 'locuton nominale', 'match': 'locution phrase', 'o': 'locution nominale'},
- {'type': 'locuton nominale', 'match': 'locution-phrase', 'o': 'locution nominale'},
-
- {'type': 'nom', 'match': 'nom', 'o': 'nom'},
- {'type': 'nom', 'match': 'nom1', 'o': 'nom'},
- {'type': 'nom', 'match': 'nom2', 'o': 'nom'},
- {'type': 'nom', 'match': 'nom3', 'o': 'nom'},
- {'type': 'nom', 'match': 'nom4', 'o': 'nom'},
- {'type': 'nom', 'match': 'nom5', 'o': 'nom'},
- {'type': 'nom', 'match': 'nom6', 'o': 'nom'},
- {'type': 'nom', 'match': 'nom7', 'o': 'nom'},
- {'type': 'nom', 'match': 'nom8', 'o': 'nom'},
- {'type': 'nom', 'match': 'nom9', 'o': 'nom'},
- {'type': 'nom', 'match': 'nom10', 'o': 'nom'},
- {'type': 'nom', 'match': 'nom11', 'o': 'nom'},
- {'type': 'nom', 'match': 'nom12', 'o': 'nom'},
- {'type': 'nom', 'match': 'nom13', 'o': 'nom'},
- {'type': 'nom', 'match': 'nom14', 'o': 'nom'},
- {'type': 'nom', 'match': 'nom15', 'o': 'nom'},
- {'type': 'nom', 'match': 'nom16', 'o': 'nom'},
- {'type': 'nom', 'match': 'nom17', 'o': 'nom'},
- {'type': 'nom', 'match': 'nom commun', 'o': 'nom'},
- {'type': 'nom', 'match': 'substantif', 'o': 'substantif'},
-
-
- {'type': 'nom de famille', 'match': 'nom de famille', 'o': 'nom de famille'},
- {'type': 'nom de famille', 'match': 'nom de famille anglais', 'o': 'nom de famille'},
- {'type': 'nom de famille', 'match': 'nom-fam', 'o': 'nom de famille'},
- {'type': 'nom de famille', 'match': 'nom-pr', 'o': 'nom de famille'},
- {'type': 'nom de famille', 'match': 'nom-propre', 'o': 'nom de famille'},
- {'type': 'nom de famille', 'match': 'nom pr', 'o': 'nom de famille'},
- {'type': 'nom de famille', 'match': 'nom propre', 'o': 'nom de famille'},
- {'type': 'nom scientifique', 'match': 'nom scientifique', 'o': 'nom scientifique'},
- {'type': 'particule', 'match': 'particule', 'o': 'particule'},
- {'type': 'nom de famille', 'match': 'patronyme', 'o': 'nom de famille'},
- {'type': 'préfixe', 'match': 'préfixe', 'o': 'préfixe'},
- {'type': 'suffixe', 'match': 'suffixe', 'o': 'suffixe'},
- {'type': 'prénom', 'match': 'prénom', 'o': 'prénom'},
-
- {'type': 'onomatopée', 'match': 'onomatopée', 'o': 'onomatopée'},
- {'type': 'onomatopée', 'match': 'onom', 'o': 'onomatopée'},
-
- {'type': 'préposition', 'match': 'prép', 'o': 'préposition'},
- {'type': 'préposition', 'match': 'préposition', 'o': 'préposition'},
-
- {'type': 'pronom', 'match': 'pronom', 'o': 'pronom'},
- {'type': 'pronom', 'match': 'pronom démonstratif', 'o': 'pronom démonstratif'},
- {'type': 'pronom', 'match': 'pronom indéfini', 'o': 'pronom indéfini'},
- {'type': 'pronom', 'match': 'pronom interrogatif', 'o': 'pronom interrogatif'},
- {'type': 'pronom', 'match': 'pronom personnel', 'o': 'pronom personnel'},
- {'type': 'pronom', 'match': 'pronom possessif', 'o': 'pronom possessif'},
- {'type': 'pronom', 'match': 'pronom relatif', 'o': 'pronom relatif'},
-
- {'type': 'verbe', 'match': 'verb', 'o': 'verbe'},
- {'type': 'verbe', 'match': 'verbe', 'o': 'verbe'},
- {'type': 'verbe', 'match': 'verbe pronominal', 'o': 'verbe pronominal'}
-]
-
diff --git a/download/template.py b/download/template.py
deleted file mode 100644
index fa0394a..0000000
--- a/download/template.py
+++ /dev/null
@@ -1,1086 +0,0 @@
-
-"""
-
-File of template.
-
-To deal with Wikicode format.
-
-"""
-
-template = {'info': '(Informatique)',
- 'informatique': '(Informatique)',
- 'regex': '(Regex)',
- 'mathématiques': '(Mathématiques)',
- 'paléographie': '(Paléographie)',
- 'math': '(Mathématiques)',
- 'statistiques': '(Statistiques)',
- 'stat': '(Statistiques)',
- 'géostatistique': '(Géostatistiques)',
- 'montagnes': '(GĂ©ostatistiques)',
- 'géostatistiques': '(Géostatistiques)',
- 'départements': '(Géostatistiques)',
- 'morphologie végétale': '(Morphologie végétale)',
- 'mot-valise': '(Mot-valise)',
- 'déserts': '(Géostatistiques)',
- 'typog': '(Typographie)',
- 'logi': '(Logique)',
- 'logique': '(Logique)',
- 'ironique': '(Ironique)',
- 'iron': '(Ironique)',
- 'ironie': '(Ironique)',
- 'linguistique': '(Linguistique)',
- 'métaplasmes': '(Linguistique)',
- 'vieilli': '(Vieilli)',
- 'vieux': '(Vieilli)',
- 'obsolĂšte': '(DĂ©suet)',
- 'désuet': '(Désuet)',
- 'familier': '(Familier)',
- 'trĂšs familier': '(TrĂšs amilier)',
- 'chiromancie': '(Chiromancie)',
- 'climatologie': '(Climatologie)',
- 'cnidaires': '(Zoologie)',
- 'singes': '(Zoologie)',
- 'quagga': '(Zoologie)',
- 'argot': '(Familier)',
- 'argot internet': '(1337)',
- 'argot Internet': '(1337)',
- 'argot policier': '(Argot policier)',
- 'argot militaire': '(Argot militaire)',
- 'argot poilu': '(Argot militaire)',
- 'argot polytechnicien': '(Argot de l\'X)',
- 'argot scolaire': '(Argot scolaire)',
- 'argot typographes': '(Argot de typographes)',
- 'argot voleurs': '(Argot)',
- 'jeux vidéo': 'Jeux vidéo',
- 'internet': '(Internet)',
- 'Internet': '(Internet)',
- 'vulgaire': '(Vulgaire)',
- 'vulg': '(Vulgaire)',
- 'popu': '(Populaire)',
- 'injur': '(Injurieux)',
- 'insultes': '(Injurieux)',
- 'intelligence artificielle': '(IA)',
- 'interjection': '(Interjection)',
- 'soutenu': '(Soutenu)',
- 'sout': '(Soutenu)',
- 'régio': '(Régionalisme)',
- 'régional': '(Régionalisme)',
- 'régionalisme': '(Régionalisme)',
- 'créatures': '(Mythologie)',
- 'stéréotype': '(Stéréotype)',
- 'divinités': '(Mythologie)',
- 'mythol': '(Mythologie)',
- 'stéréochimie': '(Stéréochimie)',
- 'formule chimique': '(Chimie)',
- 'chimie': '(Chimie)',
- 'substance': '(Chimie)',
- 'substances': '(Chimie)',
- 'biochimie': '(Biohimie)',
- 'bioch': '(Biohimie)',
- 'enzymes': '(Biochimie)',
- 'thérapies': '(Thérapies)',
- 'cours d’eau': '(GĂ©ographie)',
- 'plans d\'eau': '(GĂ©ographie)',
- 'jeu de go': '(Jeu de go)',
- 'mythologie grecque': '(Anthroponyme)',
- 'jazz': '(Musique)',
- 'jeux': '(Jeux)',
- 'musiques': '(Musique)',
- 'musique': '(Musique)',
- 'musiciens': '(Musique)',
- 'musi': '(Musique)',
- 'pĂȘche': '(PĂȘche)',
- 'pĂȘch': '(PĂȘche)',
- 'hist': '(Histoire)',
- 'histologie': '(Histoire)',
- 'histoire': '(Histoire)',
- 'anciennes divisions': '(Histoire)',
- 'anciennes localités': '(Histoire)',
- 'téléphonie': '(Téléphonie)',
- 'télécom': '(Télécommunications)',
- 'télécoms': '(Télécommunications)',
- 'télécommunications': '(Télécommunications)',
- 'comm': '(Commerce)',
- 'commerce': '(Commerce)',
- 'commerces': '(Commerce)',
- 'e-commerce': '(E-commerce)',
- 'maçonnerie': '(Maçonnerie)',
- 'maçon': '(Maçonnerie)',
- 'architecture': '(Architecture)',
- 'architecture des ordinateurs‎': '(Architecture des ordinateurs)',
- 'architecture des ordinateurs': '(Architecture des ordinateurs)',
- 'archi': '(Architecture)',
- 'technique': '(Technique)',
- 'tech': '(Technique)',
- 'meubres': '(Mobilier)',
- 'mobilier': '(Mobilier)',
- 'automatique': '(Automatique)',
- 'automo': '(Automobile)',
- 'auto': '(Automobile)',
- 'automobile': '(Automobile)',
- 'véhicules': '(Véhicules)',
- 'véhicule': '(Véhicules)',
- 'voitures': '(VĂ©hicules)',
- 'anatomie': '(Anatomie)',
- 'muscles': '(Anatomie)',
- 'muscle': '(Anatomie)',
- 'anat': '(Anatomie)',
- 'un os': '(Anatomie)',
- 'squelette': '(Anatomie)',
- 'musculation': '(Musculation)',
- 'justice': '(Justice)',
- 'Ă©checs': '(Échecs)',
- 'théùtre': '(Théùtre)',
- 'théùt': '(Théùtre)',
- 'audiovi': '(Audiovisuel)',
- 'audiovisuel': '(Audiovisuel)',
- 'minéralogie': '(Minéralogie)',
- 'minéraux': '(Minéralogie)',
- 'minér': '(Minéralogie)',
- 'Mme': 'Mme',
- 'moderne': '(Moderne)',
- 'genres littéraires': '(Littéraire)',
- 'genres musicaux': '(Musique)',
- 'poét': '(Littéraire Poétique)',
- 'poétique': '(Littéraire Poétique)',
- 'poés': '(Littéraire Poétique)',
- 'points cardinaux': '(GĂ©ographie)',
- 'poires': '(Botanique)',
- 'prunes': '(Botanique)',
- 'pommes': '(Botanique)',
- 'poésie': '(Littéraire Poétique)',
- 'didactique': '(Didactique)',
- 'didact': '(Didactique)',
- 'néol': '(Néologisme)',
- 'néologisme': '(Néologisme)',
- 'archaĂŻsme': '(ArchaĂŻsme)',
- 'roches': '(PĂ©trographie)',
- 'wiki': '(jargon des Wikis)',
- 'localités': '(Géographie)',
- 'région': '(Géographie)',
- 'régions': '(Géographie)',
- 'géologie': '(Géologie)',
- 'géol': '(Géologie)',
- 'géométrie': '(Géométrie)',
- 'géomatique': '(Géomatique)',
- 'géophysique': '(Géophysique)',
- 'géom': '(Géométrie)',
- 'rugby': '(Rugby)',
- 'tennis': '(Tennis)',
- 'tennis de table': '(Tennis de table)',
- 'sport': '(Sport)',
- 'volley': '(Sport)',
- 'triathlon': '(Triathlon)',
- 'sportifs': '(Sport)',
- 'sports': '(Sport)',
- 'patinage': '(Patinage)',
- 'roller': '(Patinage)',
- 'pĂątisserie': '(PĂątisserie)',
- 'pĂątisseries': '(PĂątisserie)',
- 'ciné': '(Cinéma)',
- 'cinéma': '(Cinéma)',
- 'cirque': '(Cirque)',
- 'philo': '(Philosophie)',
- 'philosophie': '(Philosophie)',
- 'psychologie': '(Psychologie)',
- 'psychanalyse': '(Psychanalyse)',
- 'psychia': '(Psychiatrie)',
- 'psychiatrie': '(Psychiatrie)',
- 'psycho': '(Psychologie)',
- 'psychotropes': '(Psychotropes)',
- 'psychol': '(Psychologie)',
- 'religion': '(Religion)',
- 'religions': '(Religion)',
- 'religieux': '(Religion)',
- 'reli': '(Religion)',
- 'christianisme': '(Christianisme)',
- 'protestantisme': '(Christianisme)',
- 'catholicisme': '(Catholicisme)',
- 'dinosaures': '(Paléontologie)',
- 'paléontologie': '(Paléontologie)',
- 'poules': '(Zoologie)',
- 'rongeurs': '(Zoologie)',
- 'prĂ©ciser': '(À prĂ©ciser)',
- 'préhistoire': '(Préhistoire)',
- 'prestidigitation': '(Prestidigitation)',
- 'prnl': 'pronominal',
- 'probabilités': '(Probabilités)',
- 'procédure': '(Justice)',
- 'propre': '(Sens propre)',
- 'protéines': '(Biochimie)',
- 'chevaux': '(Zoologie)',
- 'poissons': '(Zoologie)',
- 'raies': '(Ichtyologie)',
- 'dindons': '(Zoologie)',
- 'chien': '(Zoologie)',
- 'céphalopodes': '(Zoologie)',
- 'diplomatie': '(Diplomatie)',
- 'céramique': '(Arts de la céramique)',
- 'escalade': '(Escalade)',
- 'escrime': '(Escrime)',
- 'Ă©tats': '(État)',
- 'céréales': '(Botanique)',
- 'légumes': '(Botanique)',
- 'lexicographie': '(Lexicographie)',
- 'lézards': '(Zoologie)',
- 'cervidés': '(Zoologie)',
- 'cétacés': '(Zoologie)',
- 'caséologie': '(Zoologie)',
- 'casĂ©ologie‎': '(Zoologie)',
- 'pétrochimie': '(Pétrochimie)',
- 'islam': '(Islam)',
- 'bouddhisme': '(Bouddhisme)',
- 'bouddhisme‎': '(Bouddhisme)',
- 'liturgie': '(Liturgie orthodoxe)',
- 'arthropodes': '(arthropodes)',
- 'arts martiaux': '(Art martiaux)',
- 'couteaux': '(Couteaux)',
- 'armes': '(Armement)',
- 'armures': '(Armement)',
- 'armement': '(Armement)',
- 'guerre': '(Militaire)',
- 'soldats': '(Militaire)',
- 'militaire': '(Militaire)',
- 'mili': '(Militaire)',
- 'artillerie': '(Militaire)',
- 'marine': '(Marine)',
- 'avant 1835': '(Avant 1835)',
- 'ortho1990': '(Orthographe rectifiée de 1990)',
- 'outils': '(Outils)',
- 'ustensiles': '(Cuisine)',
- 'desserts': '(Cuisine)',
- 'viandes': '(Cuisine)',
- 'dessin': '(Dessin)',
- 'Ă©toiles': '(Astronomie)',
- 'astronomie': '(Astronomie)',
- 'astron': '(Astronomie)',
- 'astrol': '(Astrologie)',
- 'astrologie': '(Astrologie)',
- 'astronautique': '(Astronautique)',
- 'astrophysique': '(Astrophysique)',
- 'athlétisme': '(Athlétisme)',
- 'course à pied': '(Athlétisme)',
- 'chimie organique': '(Chimie organique)',
- 'chimie physique': '(Chimie)',
- 'atomes': '(Chimie)',
- 'chim': '(Chimie)',
- 'attention': 'Note ⚠:',
- 'non standard': 'Note ⚠: (Mot d\'usage non standard)',
- 'non attestĂ©': 'Note ⚠: (Mot d\'usage non attestĂ©)',
- 'Audet': 'Audet',
- 'Boudoux': 'Boudoux',
- 'Euzennat': 'Euzennat',
- 'féminin': '(Au féminin)',
- 'au féminin': '(Au féminin)',
- 'figures': '(Rhétorique)',
- 'rhéto': '(Rhétorique)',
- 'rhétorique': '(Rhétorique)',
- 'au figuré': '(Au figuré)',
- 'au masculin': '(Au masculin)',
-
- 'infographie': '(Infographie)',
- 'dermatologie': '(Dermatologie)',
- 'fiscalité': '(Fiscalité)',
- 'finances': '(Finance)',
- 'finance': '(Finance)',
- 'finan': '(Finance)',
- 'travail': '(Travail)',
- 'beaux-arts': '(Beaux-arts)',
- 'transport': '(Transport)',
- 'transp': '(Transport)',
- 'transports': '(Transport)',
- 'mythologie': '(Mythologie)',
- 'arts': '(Arts)',
- 'figuré': '(Au sens figuré)',
- 'méton': '(Par métonymie)',
- 'au singulier': '(Au singulier)',
- 'p': '(Au pluriel)',
- 'au pluriel': '(Au pluriel)',
- 'propriété': '(Droit)',
- 'dabeur': '(Droit)',
- 'droit': '(Droit)',
- 'geocacher': '(Droit)',
- 'crimes': '(Droit)',
- 'délits': '(Droit)',
- 'droit féodal': '(Droit féodal)',
- 'cristallographie': '(Cristallographie)',
- 'Ă©lec': '(ÉlectricitĂ©)',
- 'Ă©lectricitĂ©': '(ÉlectricitĂ©)',
- 'Ă©lectron': '(Électronique)',
- 'composants': '(Électronique)',
- 'composants Ă©lectriques': '(Électronique)',
- 'comptabilité': '(Comptabilité)',
- 'compta': '(Comptabilité)',
- 'Ă©lectronique': '(Électronique)',
- 'Ă©lectrot': '(Électronique)',
- 'Ă©lectrotechnique': '(Électronique)',
- 'péjoratif': '(Péjoratif)',
- 'souvent péjoratif': '(Péjoratif)',
- 'péj': '(Péjoratif)',
- 'gastronomie': '(Gastronomie)',
- 'héraldique': '(Héraldique)',
- 'héral': '(Héraldique)',
- 'meuble': '(Meuble)',
- 'meubles': '(Meuble)',
- 'microbiologie': '(Microbiologie)',
- 'meubles héraldiques': '(Héraldique)',
- 'beaucoup plus courant': '(Courant)',
- 'plus courant': '(Courant)',
- 'peu usité': '(Peu usité)',
- 'p us': '(Peu usité)',
- 'p-us': '(Peu usité)',
- 'pyrotechnie': '(Pyrotechnie)',
-
- 'barriérage': '(Usage critiqué)',
- 'rare': '(Rare)',
- 'beaucoup moins courant': '(Rare)',
- 'moins courant': '(Rare)',
- 'b-m-cour': '(Rare)',
- 'rare': '(Rare)',
- 'plus rare': '(Rare)',
- 'pl-rare': '(Rare)',
- 'trĂšs-rare': '(TrĂšs rare)',
- 'trĂšs trĂšs rare': '(TrĂšs rare)',
- 'trĂšs rare': '(TrĂšs rare)',
- 'ex-rare': '(ExtrĂȘmement rare)',
- 'famille': '(Famille)',
- 'fantastique': '(Fantastisque)',
- 'fanta': '(Fantastisque)',
- 'fant': '(Fantastisque)',
-
- 'extrĂȘmement rare': '(ExtrĂȘmement rare)',
- 'renseignement': '(Renseignement)',
- 'reproduction': '(Reproduction)',
- 'reliure': '(Reliure)',
- 'littéraire': '(Littéraire)',
- 'litt': '(Littéraire)',
- 'livre': '(Livre)',
- 'logistique': '(Logistique)',
- 'Loiret': '(Loiret)',
- 'loisirs': '(Loisirs)',
- 'Lorraine': '(Lorraine)',
- 'louchébem': '(Louchébem)',
- 'lusi': '(Lusitanisme)',
- 'Luxembourg': '(Luxembourg)',
- 'littérature': '(Littéraire)',
- 'cartographie': '(Cartographie)',
- 'neurologie': '(Neurologie)',
- 'neurol': '(Neurologie)',
- 'médecine': '(Médecine)',
- 'pédiatrie': '(Médecine)',
- 'pédologie': '(Pédologie)',
- 'pédol': '(Pédologie)',
- 'peinture': '(Peinture)',
- 'philatélie': '(Philatélie)',
- 'phobies': '(MĂ©decine)',
- 'phonétique': '(Phonétique)',
- 'phonologie': '(Phonologie)',
- 'ophtalmologie': '(MĂ©decine)',
- 'optimisation': '(Optimisation)',
- 'particules': '(Physique)',
- 'optique': '(Physique)',
- 'phys': '(Physique)',
- 'physiol': '(Physiologie)',
- 'physiologie': '(Physiologie)',
- 'phytosociologie': '(Phytosociologie)',
- 'oncologie': '(MĂ©decine)',
- 'obstétrique': '(Médecine)',
- 'méde': '(Médecine)',
- 'antonomase': '(MĂ©decine)',
- 'aphérÚse': 'AphérÚse',
- 'apiculture': '(Apiculture)',
- 'apJC': 'Antiquité',
- 'avJC': 'Antiquité',
- 'apocope': '(Apocope)',
- 'application': '(Couche application)',
- 'couche application': '(Couche OSI application)',
- 'couche liaison': '(Couche OSI liaison)',
- 'couche physique': '(Couche OSI physique)',
- 'couche réseau': '(Couche OSI réseau)',
- 'couche session': '(Couche OSI session)',
- 'couche transport': '(Couche OSI transport)',
- 'apposition': '(En apposition)',
- 'baby-foot': '(Baby-foot)',
- 'bactéries': '(Bactériologie)',
- 'bactériologie': '(Bactériologie)',
- 'bandes dessinées': '(BD)',
- 'baseball': '(Baseball)',
- 'base de données': '(BDD)',
- 'basket': '(Basket-ball)',
- 'basket-ball': '(Basket-ball)',
- 'basketball': '(Basket-ball)',
- 'bĂątiment': '(Construction)',
- 'BDD': '(BDD)',
- 'TAAF': '(Vocabulaire des TAAF)',
- 'taille de pierre': '(Taille de pierre)',
-
-
- 'chir': '(Chirurgie)',
- 'urban': '(Urbanisme)',
- 'urbanisme': '(Urbanisme)',
- 'chirurgie': '(Chirurgie)',
- 'photo': '(Photographie)',
- 'photographie': '(Photographie)',
- 'transitif': '(Transitif)',
- 't': '(Transitif)',
- 'transit': '(Transitif)',
- 'trans': '(Transitif)',
- 'intransitif': '(Intransitif)',
- 'intrans': '(Intransitif)',
- 'i': '(Intransitif)',
- 'ibid': '(ibid.)',
- 'illégalité': '(Illégalité)',
- 'impersonnel': '(Impersonnel)',
- 'ichtyologie': '(Ichtyologie)',
- 'pronl': '(Pronominal)',
- 'pronominal': '(Pronominal)',
- 'forme pronominale': '(Pronominal)',
- 'physique': '(Physique)',
- 'nanotechnologie': '(Physique)',
- 'Ă©bauch-exe': '',
- 'Ă©bauche-exe': '',
- 'ébauche-déf': '',
- 'Ă©bauche-Ă©tym': '',
- 'mécanique': '(Mécanique)',
- 'méca': '(Mécanique)',
- 'médecine non conv': '(Médecine non conventionnelle)',
- 'médecine non conventionnelle': '(Médecine non conventionnelle)',
- 'temps géologiques': '(Géologie)',
- 'tératologie': '(Tératologie)',
- 'temps': '(Chronologie)',
- 'télé': '(Média)',
- 'télévision': '(Média)',
- 'média': '(Média)',
- 'presse': '(MĂ©dia)',
- 'radio': '(MĂ©dia)',
- 'politique': '(Politique)',
- 'polit': '(Politique)',
- 'LGBT': '(LGBT)',
- 'Ă©conomie': '(Économie)',
- 'Ă©con': '(Économie)',
- 'juri': '(Droit)',
- 'manùge': '(Équitation)',
- 'marbrerie': '(Marbrerie)',
- 'maréchalerie': '(Maréchalerie)',
- 'Ă©quitation': '(Équitation)',
- 'hippisme': '(Équitation)',
- 'impr': '(Imprimerie)',
- 'imprimerie': '(Imprimerie)',
- 'industriel': '(Industrie)',
- 'industrie': '(Industrie)',
- 'indus': '(Industrie)',
- 'usines': '(Industrie)',
- 'indus pétroliÚre': '(Petro mafia)',
- 'raffinage': '(PĂ©tro mafia)',
- 'informel': '(Informel)',
- 'insectes': '(Entomologie)',
- 'mouches': '(Entomologie)',
- 'Moyen Âge': '(Moyen Âge)',
- 'instruments': '(Musique)',
- 'boucherie': '(Boucherie)',
- 'distinctions': '(Distinctions)',
- 'documents': '(MĂ©dia)',
- 'doute': '(information à vérifier)',
- 'vaudou': '(Vaudou)',
- 'médicaments': '(Pharmacologie)',
- 'drogue': '(Pharmacologie)',
- 'drogues': '(Pharmacologie)',
- 'mélioratif': '(Mélioratif)',
- 'pharma': '(pharmacologie)',
- 'surf': '(Surf)',
-
-
- 'Québec': '(Québec)',
- 'QC': '(Québec)',
- 'québec': '(Québec)',
- 'Canada': '(Canada)',
- 'CA': '(Canada)',
- 'BE': '(Belgique)',
- 'France': '(France)',
- 'Inde': '(Inde)',
- 'Liban': '(Liban)',
- 'Japon': '(Japon)',
- 'jardi': '(Jardinage)',
- 'jardinage': '(Jardinage)',
- 'Franche-Compté': '(Franche-Compté)',
- 'franc-maçonnerie': '(Franc-maçonnerie)',
- 'Europe': '(Europe)',
- 'Espagne': '(Espagne)',
- 'Roumanie': '(Roumanie)',
- 'Royaume-Uni': '(Royaume-Uni)',
- 'Pays basque': '(Pays basque)',
- 'pelote': '(Pelote Basque)',
- 'Australie': '(Australie)',
- 'Russie': '(Russie)',
- 'Rwanda': '(Rwanda)',
- 'Saint-Pierre-et-Miquelon': '(Saint-Pierre-et-Miquelon)',
- 'Autriche': '(Autriche)',
- 'Auvergne': '(Auvergne)',
- 'Touraine': '(Touraine)',
- 'Occitanie': '(Occitanie)',
- 'Égypte': '(Égypte)',
- 'USA': '(États-Unis)',
- 'États-Unis': '(États-Unis)',
- 'Normandie': '(Normandie)',
- 'Congo-Kinshasa': '(Congo-Kinshasa)',
- 'RĂ©publique DĂ©mocratique du Congo': '(Congo-Kinshasa)',
- 'RDC': '(Congo-Kinshasa)',
- 'RDCongo': '(Congo-Kinshasa)',
- 'Congo-Brazzaville': '(Congo-Brazzaville)',
- 'Bordelais': '(Bordelais)',
- 'Lyon': '(Lyon)',
- 'MĂąconnais': '(Lyon)',
- 'lyonnais': '(Lyon)',
- 'Champagne': '(Champagne)',
- 'Nice': '(Nice)',
- 'Lille': '(Lille)',
- 'Paris': '(Paris)',
- 'Marseille': '(Marseille)',
- 'Midi toulousain': '(Midi)',
- 'Midi': '(Midi)',
- 'champignon': '(Mycologie)',
- 'champignons': '(Mycologie)',
- 'Beaujolais': '(Beaujolais)',
- 'Bourdonnais': '(Bourdonnais)',
- 'Boureau-Louvet': '(Boureau-Louvet)',
- 'Bourgogne': '(Bourgogne)',
- 'reptiles': '(Zoologie)',
- 'requins': '(Zoologie)',
- 'mollusques': '(Zoologie)',
- 'Ă©chinodermes': '(Zoologie)',
- 'marsupial': '(Zoologie)',
- 'marsupiaux': '(Zoologie)',
- 'bovins': '(Zoologie)',
- 'crustacés': '(Zoologie)',
- 'boxe': '(Boxe)',
- 'b-pl-cour': '(Courant)',
- 'cour': '(Courant)',
- 'courant': '(Courant)',
- 'crypto': '(Cryptologie)',
- 'cryptologie': '(Cryptologie)',
- 'cryptographie': '(Cryptologie)',
- 'cryptomonnaie': '(Cryptologie)',
- 'cryptomonnaies': '(Cryptologie)',
- 'bridge': '(Bridge)',
- 'MĂąconnais': '(MĂąconnais)',
- 'Nantes': '(Nantes)',
- 'Vendée': '(Vendée)',
- 'Velay': '(Velay)',
- 'Picardie': '(Picardie)',
- 'Poitou': '(Poitou)',
- 'Vosges': '(Vosges)',
- 'Provence': '(Provence)',
- 'RhĂŽne-Alpes': '(RhĂŽne-Alpes)',
- 'rire': '(😄)',
- 'sourire': '(😄)',
- 'Niger': '(Niger)',
- 'Nicaragua': '(Nicaragua)',
- 'natation': '(Natation)',
- 'navigation': '(Navigation)',
- 'Écosse': '(Écosse)',
- 'Lyonnais': '(Lyon)',
- 'Savoie': '(Savoie)',
- 'Guadeloupe': '(Guadeloupe)',
- 'Martinique': '(Martinique)',
- 'RĂ©union': '(RĂ©union)',
- 'Guyane': '(Guyane)',
- 'Maurice': '(Guyane)',
- 'Mayotte': '(Mayotte)',
- 'HaĂŻti': '(HaĂŻti)',
- 'herpétologie': '(Herpétologie)',
- 'Bretagne': '(Bretagne)',
- 'Madagascar': '(Madagascar)',
- 'magnétisme': '(Magnétisme)',
- 'maintenance': '(Maintenance)',
- 'Maghreb': '(Maghreb)',
- 'france': '(France)',
- 'FR': '(France)',
- 'fr': '(France)',
- 'Belgique': '(Belgique)',
- 'Suisse': '(Suisse)',
- 'CH': '(Suisse)',
- 'suisse': '(Suisse)',
- 'Acadie': '(Acadie)',
- 'Louisiane': '(Louisiane)',
- 'Languedoc-Roussillon': '(Languedoc-Roussillon)',
- 'Languedoc': '(Languedoc)',
- 'Limousin': '(Limousin)',
- 'Vietnam': '(ViĂȘt Nam)',
- 'ViĂȘt Nam': '(ViĂȘt Nam)',
- 'Afrique': '(Agrique)',
- 'Mali': '(Mali)',
- 'Burkina Faso': '(Burkina Faso)',
- 'Sénégal': '(Sénégal)',
- 'BĂ©nin': '(BĂ©nin)',
- 'Togo': '(Togo)',
- 'Gabon': '(Gabon)',
- 'Tchad': '(Tchad)',
- 'Gascogne': '(Gascogne)',
- 'Gaspésie': '(Gaspésie)',
- 'GĂ©liot': '(HĂ©raldique)',
- 'généalogie': '(Généalogie)',
- 'généralement': '(Généralement)',
- 'généralement singulier': '(Généralement au singulier)',
- 'Cameroun': '(Cameroun)',
- 'Centrafrique': '(Centrafrique)',
- 'Mauritanie': '(Mauritanie)',
- 'Berry': '(Berry)',
- 'Afrique du Sud': '(Afrique du Sud)',
- 'Algérie': '(Algérie)',
- 'Maroc': '(Maroc)',
- 'Tunisie': '(Tunisie)',
- 'Orient': '(Orient)',
- 'ornement': '(Ornement)',
- 'maroquinerie': '(Maroquinerie)',
- 'marque': '(Marque)',
- 'Allemagne': '(Allemagne)',
- 'Alsace': '(Alsace)',
- 'Amérique du Nord': '(Amérique du Nord)',
- 'Amérique du Sud': '(Amérique du Sud)',
- 'Nord-Pas-de-Calais': '(Nord-Pas-de-Calais)',
- 'Nouvelle-Calédonie': '(Nouvelle-Calédonie)',
- 'Terre-Neuve': '(Terre-Neuve)',
- 'nucléaire': '(Nucléaire)',
- 'nucl': '(Nucléaire)',
- 'numismatique': '(Numismatique)',
- 'numis': '(Numismatique)',
- 'nutrition': '(Nutrition)',
- 'Anjou': '(Anjou)',
- 'Antilles': '(Antilles)',
- 'Aquitaine': '(Aquitaine)',
- 'Asie centrale': '(Asie centrale)',
- 'Kirghizistan': '(Asie centrale)',
- 'Chine': '(Chine)',
- 'saliculture': '(Saliculture)',
- 'satellites': '(Astonomie)',
- 'saut en hauteur': '(Saut en hauteur)',
- 'sciences': '(Sciences)',
- 'scientifiques': '(Scientifiques)',
- 'scol': '(Scolaire)',
- 'scolaire': '(Scolaire)',
- 'sculpture': '(Sculpture)',
- 'secourisme': '(Secourisme)',
- 'seigneuries': '(Histoire)',
-
-
- 'CB': '(Citizen-band)',
- 'bibli': '(Bibliothéconomie)',
- 'bibliothéconomie': '(Bibliothéconomie)',
- 'assurance': '(Assurance)',
- 'arboriculture': '(Arboriculture)',
- 'anthropologie': '(Anthropologie)',
- 'peupliers': '(Botanique)',
- 'agrumes': '(Botanique)',
- 'algues': '(Botanique)',
- 'fleurs': '(Botanique)',
- 'aĂŻkido': '(AĂŻkido)',
- 'éléments': '(Chimie)',
- 'alcaloĂŻdes': '(Chimie)',
- 'alliage': '(Chimie)',
- 'alpinisme': '(Alpinisme)',
- 'alchimie': '(Alchimie)',
- 'alcools': '(Boisson)',
- 'cocktails': '(Boisson)',
- 'biĂšres': '(Boisson)',
- 'algĂšbre': '(AlgĂšbre)',
- 'orfĂšvrerie': '(Bijou)',
- 'bijou': '(Bijou)',
- 'bijouterie': '(Bijou)',
- 'joaillerie': '(Bijou)',
- 'jonglerie': '(Jonglerie)',
- 'judaĂŻsme': '(JudaĂŻsme)',
- 'judo': '(Judo)',
- 'karaté': '(Karaté)',
- 'kung-fu': '(Kung-fu)',
- 'Jura': '(Jura)',
- 'billard': '(Billard)',
- 'coiffure': '(Coiffure)',
- 'biogéographie': '(Biogéographie)',
- 'biol': '(Biologie)',
- 'biologie cellulaire': '(Biologie cellulaire)',
- 'bivalves': '(Malacologie)',
- 'b-m-cour': '(Rare)',
- 'm-cour': '(Plus Rare)',
- 'bonsaĂŻ': '(BonsaĂŻ)',
-
- 'calendrier': '(Chronologie)',
- 'agrohomardinenomie': '(Agronomie)',
- 'dames:': '(Jeu de Dames)',
- 'danse': '(Dance)',
- 'danses': '(Dance)',
- 'dauphinois': '',
- 'pĂątes': '(Cuisine)',
- 'pĂątes alimentaires': '(Cuisine)',
- 'bĂąteaux': '(Cuisine)',
- 'cuisine': '(Cuisine)',
- 'cuis': '(Cuisine)',
- 'aliments': '(Cuisine)',
- 'préparations': '(Cuisine)',
- 'canoë-kayak': '(Canoë-kayak)',
- 'confiserie': '(Confiserie)',
- 'confiseries': '(Confiserie)',
- 'colorimétrie': '(Colorimétrie)',
- 'couture': '(Couture)',
- 'cout': '(Couture)',
- 'textile': '(Textile)',
- 'tissage': '(Textile)',
- 'tissus': '(Textile)',
- 'textiles': '(textile)',
- 'couverture': '(Couvertures)',
- 'broderie': '(Textile)',
- 'vĂȘtements': '(VĂȘtements)',
- 'habil': '(VĂȘtements)',
- 'vĂȘte': '(VĂȘtements)',
- 'chaussures': '(VĂȘtements)',
- 'couvre-chefs': '(VĂȘtements)',
- 'coléoptÚres': '(Zoologie)',
- 'mammifĂšres': '(Zoologie)',
- 'crabes': '(Zoologie)',
- 'Ă©cureils': '(Zoologie)',
- 'chauves-souris': '(Zoologie)',
- 'carnivore': '(Zoologie)',
- 'vétérinaire': '(Médecine vétérinaire)',
- 'vexillologie': '(Vexillologie)',
- 'cartes': '(Cartes Ă  jouer)',
- 'poker': '(Poker)',
- 'jeux de cartes': '(Cartes Ă  jouer)',
- 'tonnellerie': '(Tonnellerie)',
- 'topographie': '(Topographie)',
- 'caprins': '(Zoologie)',
- 'camélidés': '(Zoologie)',
- 'antilopes': '(Zoologie)',
- 'animaux': '(Zoologie)',
- 'zool': '(Zoologie)',
- 'zoologie': '(Zoologie)',
- 'zootechnie': '(Zoologie)',
- 'serpents': '(Zoologie)',
- 'serrurerie': '(Serrurerie)',
- 'fauconnerie': '(Fauconnerie)',
- 'sentiments': '(Psychologie)',
- 'yoga': '(Yoga)',
- 'yogana': '(Yoga)',
- 'virologie': '(Virologie)',
- 'virus': '(Virologie)',
- 'viticulture': '(viticulture)',
- 'volcanologie': '(GĂ©ologie)',
- 'mf': 'masculin et féminin identiques',
- 'Ɠnologie': '(ƒnologie)',
- 'vins': '(ƒnologie)',
- 'Ɠnol': '(ƒnologie)',
- 'oenologie': '(ƒnologie)',
- 'cĂ©pages': '(ƒnologie)',
- 'oenol': '(ƒnologie)',
- 'papeterie': '(Papeterie)',
- 'papĂšterie': '(Papeterie)',
- 'ornithologie': '(Ornithologie)',
- 'palmipĂšdes': '(Ornithologie)',
- 'oiseaux': '(Ornithologie)',
- 'ornithol': '(Ornithologie)',
- 'entomol': '(Entomologie)',
- 'papillons': '(Entomologie)',
- 'entomologie': '(Entomologie)',
- 'pharmacologie': '(Pharmacologie)',
- 'pharmacie': '(Pharmacologie)',
- 'épithÚte': '(Employé comme épithÚte)',
- 'symboles unités': '(Métrologie)',
- 'instruments de mesure': '(MĂ©trologie)',
- 'unités': '(Métrologie)',
- 'unité': '(Métrologie)',
- 'métro': '(Métrologie)',
- 'métrol': '(Métrologie)',
- 'métrologie': '(Métrologie)',
- 'vents': '(Météorologie)',
- 'verlan': '(Verlan)',
- 'météorologie': '(Météorologie)',
- 'météorol': '(Météorologie)',
- 'météo': '(Météorologie)',
- 'cordonnerie': '(Cordonnerie)',
- 'Corée du Nord': '(Corée du Nord)',
- 'cosmétique': '(Cosmétique)',
- 'Cîte d’Ivoire': '(Cîte d’Ivoire)',
- 'robotique': '(Robotique)',
- 'science-fiction': '(SF)',
- 'sci-fi': '(SF)',
- 'pathologie': '(Nosologie)',
- 'maladie': '(Nosologie)',
- 'nosologie': '(Nosologie)',
- 'maladies': '(Nosologie)',
- 'réciproque': '(réciproque)',
- 'populaire': '(Par abuus de langage)',
- 'enfantin': '(Langage enfantin)',
- 'parler gaga': '(Langage enfantin)',
- 'Parler gaga': '(Langage enfantin)',
- 'enfant': '(Langage enfantin)',
- 'par métonymie': '(Linguistique)',
- 'métonymie': '(Linguistique)',
- 'langues': '(Linguistique)',
- 'lang': '(Linguistique)',
- 'langages': '(Linguistique)',
- 'SMS': '(Langage SMS)',
- 'langage SMS': '(Langage SMS)',
- 'Lang': '(Linguistique)',
- 'ling': '(Linguistique)',
- 'langage Java': '(Informatique)',
- 'protocoles': '(RĂ©seaux)',
- 'réseaux': '(Réseaux)',
- 'POO': '(Programmation Orientée Objet)',
- 'absolument': '(Absolument, Sans complément)',
- 'OTAN': '(OTAN)',
- 'absol': '(Absolument, Sans complément)',
- 'VII': '(Antiquité)',
- 'antiq': '(Antiquité)',
- 'Antiquité': '(Antiquité)',
- 'antiquité': '(Antiquité)',
- 'topol': '(Topologie)',
- 'topologie': '(Topologie)',
- 'topon': '(Toponymie)',
- 'toponymes': '(Toponymie)',
- 'toponymes‎': '(Toponymie)',
- 'territoires': '(Toponymie)',
- 'toponymie': '(Toponymie)',
- 'quartiers': '(Toponymie)',
- 'ferroviaire': '(Chemin de fer)',
- 'ferro': '(Chemin de fer)',
- 'chemin de fer': '(Chemin de fer)',
- 'typographie': '(Typographie)',
- 'typo': '(Typographie)',
- 'diacritiques': '(Grammaire)',
- 'dialectes': '(Dialecte)',
- 'langue': '(Linguistique)',
- 'humour': '(Humour)',
- 'management': '(Management)',
- 'ufologie': '(Ufologie)',
- 'marketing': '(Marketing)',
- 'publicité': '(Marketing)',
- 'plaisanterie': '(Humour)',
- 'plais': '(Humour)',
- 'plance Ă  neige': '(Snowboard)',
- 'snowboard': '(Snowboard)',
- 'planche Ă  roulettes': '(Plance Ă  roulettes)',
- 'skateboard': '(Plance Ă  roulettes)',
- 'plomberie': '(Plomberie)',
- 'plongée': '(Plongée)',
- 'Marne': '(Marne)',
- 'ski alpin': '(Ski alpin)',
- 'socialisme': '(Socialisme)',
- 'sociologie': '(Sociologie)',
- 'sylviculture': '(Sylviculture)',
- 'sylv': '(Sylviculture)',
- 'lacs': '(GĂ©ographie)',
- 'pays': '(GĂ©ographie)',
- 'océanographie': '(Océanographie)',
- 'tourisme': '(Tourisme)',
- 'tradit': '(Orthographe traditionnelle)',
- 'détroits': '(Géographie)',
- 'gentilés': '(Géographie)',
- 'chaĂźnes de montagnes': '(GĂ©ographie)',
- 'géographie': '(Géographie)',
- 'géog': '(Géographie)',
- 'Ăźles': '(GĂ©ographie)',
- 'Ăźle': '(GĂ©ographie)',
- 'provinces': '(GĂ©ographie)',
- 'botanique': '(Botanique)',
- 'fruits': '(Botanique)',
- 'phyton': '(Botanique)',
- 'botan': '(Botanique)',
- 'arbres': '(Botanique)',
- 'familles de plantes': '(Botanique)',
- 'plantes': '(Botanique)',
- 'dentisterie': '(Dentisterie)',
- 'cyclisme': '(Cyclisme)',
- 'vélo': '(Cyclisme)',
- 'motocyclisme': '(Motocyclisme)',
- 'moto': '(Motocyclisme)',
- 'Moto': '(Motocyclisme)',
- 'prog': '(Informatique)',
- 'programmation': '(Informatique)',
- 'programation': '(Informatique)',
- 'anglicismes informatiques': '(Anglicisme informatique)',
- 'anglicisme informatique': '(Anglicisme informatique)',
- 'germanisme': '(Germanisme)',
- 'italianisme': '(Italianisme)',
- 'latinisme': '(Latinisme)',
- 'latinisme droit': '(Latinisme du Droit)',
- 'hispanisme': '(Hispanisme)',
- 'hisp': '(Hispanisme)',
- 'histoire de France': '(Histoire)',
- 'monarchie': '(Histoire)',
- 'histol': '(Histologie)',
- 'horticulture': '(Horticulture)',
- 'hydrobiologie': '(Hydrobiologie)',
- 'hydrologie': '(Hydrologie)',
- 'monnaies': '(Numismatique)',
-
- 'versification': '(Versification)',
- 'giraffidés': '(Zoologie)',
- 'vers': '(Zoologie)',
- 'tortues': '(Zoologie)',
- 'glaciologie': '(Glaciologie)',
- 'gladiateurs': '(Antiquité)',
- 'angl': '(Anglicisme)',
- 'golf': '(Golf)',
- 'gymnastique': '(Gym)',
- 'gram': '(Grammaire)',
- 'théologie': '(Théologie)',
- 'théologie': '(Théol)',
- 'semi-logarithmique': '(Informatique)',
- 'thermodynamique': '(Thermodynamique)',
- 'graph': '(Théorie des graphes)',
- 'anglicisme': '(Anglicisme)',
- 'faux anglicisme': '(Faux anglicisme)',
- 'paume': '(Jeu de paume)',
- 'Union européenne': '(Union européenne)',
- 'abréviation': '(Abréviation)',
- 'abréviation de': '(Abréviation)',
- 'par ext': 'Par extension; ',
- 'euphémisme': 'Par euphémisme; ',
- 'exagération': 'Par hyperbole; ',
- 'dérision': 'Par dérision; ',
- 'par extension': 'Par extension; ',
- 'analyse': '(Analyse)',
- 'anal': 'Par analogie; ',
- 'par analogie': 'Par analogie; ',
- 'exploitation forestiĂšre': '(Exploitation forestiĂšre)',
- 'expression': '(Expression)',
- 'analogie': 'Par analogie; ',
- 'part': 'En particulier; ',
- 'en particulier': 'En particulier; ',
- 'particulier': 'En particulier; ',
- 'spécialement': 'En particulier; ',
- 'spéc': 'En particulier; ',
- 'spécifiquement': '(Spécifiquement)',
- 'archaĂŻque': '(ArchaĂŻque)',
- 'arch': '(ArchaĂŻque)',
- 'archéologie': '(Archéologie)',
- 'Argadz': '(Argot des Gadz’Arts ?!)',
- 'agriculture': '(Agriculture)',
- 'Ă©levage': '(Agriculture)',
- 'Ă©leva': '(Agriculture)',
- 'embryologie': '(Embryologie)',
- 'agri': '(Agriculture)',
- 'sexualité': '(Sexualité)',
- 'sexe': '(Sexualité)',
- 'numéro': 'n°',
- 'biologie': '(Biologie)',
- 'parasitologie': '(Biologie)',
- 'micro-biologie': '(Micro-biologie)',
- 'grammaire': '(Grammaire)',
- 'ellipse': '(Par ellipse)',
- 'par ellipse': '(Par ellipse)',
- 'Ă©cologie': '(Écologie)',
- 'Ă©co': '(Écologie)',
- 'bateaux': '(Navigation)',
- 'ethnologie': '(Ethnologie)',
- 'ethnobiologie': '(Ethnologie)',
- 'usage': 'Note d\'usage: ',
- 'note': 'Note: ',
- 'réfléchi': '(Réfléchi)',
- 'cf': '',
- 'réf ?': '',
- 'RÉF': '',
- 'référence nécessaire': '',
- 'périodique': '',
- 'article': '',
- 'Article': '',
- 'périodique ': '',
- 'lire en ligne': '',
- 'lien vidéo': '',
- 'Lien web ': '',
- 'Lien web': '',
- 'lien web': '',
- 'lien brisé': '',
- 'Lien brisé': '',
- 'ouvrage': '',
- 'Ouvrage': '',
- 'compo': '',
- 'Ă©couter': '',
- 'voir': '',
- 'pron': '', # Prononciation
- 'réf': '', # Référence
- 'cit_réf': '', # Référence
- 'cit réf': '', # Référence
- 'trad+': '',
- 'p.': 'p.',
- 'trad-': '',
- 'source': '', # Source
- '?': '', # Source
- 'réf?': '', # Source
- 'Wikipédia': '',
- 'Wikisource': '',
- 'wsp': '',
- 'WSP': '',
-
-
- 'vitrerie': '(Vitrerie)',
- 'miroiterie': '(Miroiterie)',
- 'menuiserie': '(Menuiserie)',
- 'menu': '(Menuiserie)',
- 'charpenterie': '(Charpenterie)',
- 'charpente': '(Charpenterie)',
- 'charronnerie': '(Charronerie)',
- 'chasse': '(Chasse)',
- 'hindouisme': '(Hindouisme)',
- 'gravure': '(Gravue)',
- 'tauromachie': '(Tauromachie)',
- 'catch': '(Catch)',
- 'cosmétologie': '(Cosmétologie)',
- 'parfumerie': '(Cosmétologie)',
- 'mycologie': '(Mycologie)',
- 'mycol': '(Mycologie)',
- 'aéro': '(Aéronautique)',
- 'aéronautique': '(Aéronautique)',
- 'avion': '(AĂ©ronautique)',
- 'avions': '(AĂ©ronautique)',
- 'paléontol': '(Paléontologie)',
- 'occultisme': '(Occultisme)',
- 'indénombrable': '(Indénombrable)',
- 'indén': '(Indénombrable)',
- 'dénombrable': '(Dénombrable)',
- 'police': '(Police)',
- 'Pologne': '(Pologne)',
- 'Polynésie française': '(Polynésie française)',
- 'sigle': '(Sigle)',
- 'Seychelles': '(Seychelles)',
- 'sidérurgie': '(Sidérurgie)',
- 'affectueux': '(Affectueux)',
- 'technologie': '(Technologie)',
- 'technol': '(Technologie)',
- 'machines': '(Technologie)',
- 'boissons': '(Boisson)',
- 'boisson': '(Boisson)',
- 'construction': '(Construction)',
- 'Ă©difices': '(Construction)',
- 'constr': '(Construction)',
- 'titres': '(Noblesse)',
- 'noblesse': '(Histoire)',
- 'horlogerie': '(Horlogerie)',
- 'numismatique': '(Numismatique)',
- 'génétique': '(Génétique)',
- 'génét': '(Génétique)',
- 'génériquement': '(Génériquement)',
- 'admin': '(Administration)',
- 'administration': '(Administration)',
- 'journalisme': '(Journalisme)',
- 'Ă©dition': '(Édition)',
- 'fromages': '(Fromage)',
- 'fromage': '(Fromage)',
- 'Ă©ducation': '(Éducation)',
- 'Ă©duc': '(Éducation)',
- 'hapax': '(Hapax)',
- 'handisport': '(Handisport)',
- 'handball': '(Handball)',
- 'football': '(Football)',
- 'foot': '(Football)',
- 'foresterie': '(Foresterie)',
- 'metal': '(MĂ©tallurgie)',
- 'métal': '(Métallurgie)',
- 'métallurgie': '(Métallurgie)',
- 'fonderie': '(MĂ©tallurgie)',
- 'métaphore': '(Métaphore)',
- 'acoustique': '(Acoustique)',
- 'acoustique': '(Acoustique)',
- 'acron': '(Acronyme)',
- 'acronyme': '(Acronyme)',
-
-
- }