27 lines
1.6 KiB
Markdown
27 lines
1.6 KiB
Markdown
# Gener'Communes
|
|
A small generator of names of French municipalities.
|
|
|
|
Based on the [list of all municipalities](https://www.data.gouv.fr/fr/datasets/referentiel-geographique-francais-communes-unites-urbaines-aires-urbaines-departements-academies-regions/),
|
|
this tool analyses the names and extracts the words forming the names to train a model of names.
|
|
Names can then be generated from the model.
|
|
|
|
There is a model for each departement, so the names can be generated at a departement level.
|
|
The web interface aggregates the models to form additional generators: by regions and for the whole set.
|
|
|
|
## Generating the model
|
|
The extractor uses Racket.
|
|
The script `extract.sh` downloads the list of municipalities from the original source and call the `extractor.rkt` script to generate the file `web/gener-communes.json` containing the models.
|
|
|
|
## Generating names
|
|
There is two ways to generate names:
|
|
- by using the `name-generator.rkt` script (generates 100 names)
|
|
- by using the web interface (one at a time)
|
|
|
|
## Web interface
|
|
The `web` directory contains a sample web interface to generate names from the JSON model.
|
|
The implementation of generators is located in the script `web/gener-communes.js`.
|
|
To use it on any webpage:
|
|
- include the script on your page (`<script src='gener-communes.js'></script>` in the headers)
|
|
- add a div (or another block element) with the `gener-communes` id
|
|
- call the `genercommunes.load()` function with the JSON file to use as an argument (either in the `onload` method of the body, or in a script tags placed after the `gener-communes` block ex: `<script>genercommunes.load('data.json')</script>`)
|