This project focuses on matching job offers (offres) to certifications (certifications) and the Formacode hierarchy using various machine learning and natural language processing techniques, particularly for the French labor market as described in our paper (in French) "Affinés pour la réussite : Évaluation des représentations pour graphes attribués textuels dans le domaine de la formation professionnelle".
You can find our paper at https://talnarchives.atala.org/TALN/TALN-2026/10.pdf
If you find our work useful, please also cite the paper:
@inproceedings{Breidenstein-Leang-Labeau:CORIA-TALN:2026,
author = "Breidenstein, Alicia and Leang, Marguerite and Labeau, Matthieu",
title = "Affinés pour la réussite : Évaluation des représentations dans le domaine de la formation professionnelle",
booktitle = "Actes de CORIA-TALN 2026. Actes des 33ème Conférence sur le Traitement Automatique des Langues Naturelles. Volume 1 : articles scientifiques originaux",
month = "6",
year = "2026",
address = "Nantes, France",
publisher = "Association pour le Traitement Automatique des Langues",
pages = "65-90",
note = "",
url = "https://talnarchives.atala.org/TALN/TALN-2026/10.pdf"
}
src/: Source code directory
anomaly_histogram.py: functions to generate histograms for anomaly detectionclassification.py: Main script for classification tasksembeddings.py: Functions for generating text embeddingsERPCamemBERT_utils.py: Functions to help training CamemBERT with the ERPfilterDataset.py: to filter the test set and the train set and avoid contamination and redundanciesfineTuningClassif.py: Fine-tuning scripts for classification modelsfineTuningClassif_LoRA_multilabel.py: Fine-tuning scripts for classification models when applying Lora for training Qwen in multilabel modefineTuningClassif_LoRA_singlelabel.py: Fine-tuning scripts for classification models when applying Lora for training Qwen in multilabel modefineTuningSim.py: Fine-tuning scripts for similarity modelsgenerateDetectAnomalies.py: Scripts for generating and detecting anomaliespreprocessing.py : to prepare the data at the beginningsimOffreCertif.py: Similarity computation between offers and certificationstrainFT.py: Functions to train FastText and W2V on the datautils.py: Utility functions for text processingllm_classif_zero_shot_few_shot_anomaly_detection/: Code directory with scripts for in-context learning using Llama3.1:8B and Mistral:7B for zero-shot and few-shot classification, and anomaly detection
escoxlmr/: Code directory corresponding to pre-training ERP-CamemBERT with Masked Language Modeling
(MLM) objective (predicting masked words in the text) and the Entity Relation Prediction (ERP) ob-
jective (predicting node relationships).
data/: Data files
environment.yml for full conda environmentconda env create -f environment.ymlconda activate OCFenvThe following data files are available on HuggingFace ([https://huggingface.co/datasets/ABreidenstein/OCFproject]) and should be downloaded into the ./data folder:
certifsFormacodeFull.csv: contains the codes to the certifications and the formacodes, domains and broad domains linked to them.offreCertifFormacode.csv: original data with training offers, certifications and formacode information, without any additional preprocessinggd_domaines.csv: contains all the codes for broad domainsdomaines.csv: contains all the codes for domainsformacodes.csv: contains all the codes for formacodesoffreCertifFormacode.pkl: this file can be obtained with preprocessing.py. In comparison to certifsFormacodeFull.csv, the text is clean.offreCertifFormacodeFiltered_multilab_False.pkl: this file contains our fully cleaned dataset in simple label mode after having been filtered for duplicates and can be obtained with filterDataset.pyoffreCertifFormacodeFiltered_multilab_True.pkl: this file contains our fully cleaned dataset in multilabel mode after having been filtered for duplicates and can be obtained with filterDataset.pyHere are some examples of how the functions may be used, but other configurations can be obtained with different parameters (refer to the corresponding files to see them).
Run preprocessing file to generate label encoders (necessary for classification):
cd src
python preprocessing.py
To use FastText trained on the data, this needs to be run before using it on the similarity and classification tasks:
python python trainFT.py --results_file "test.txt" --embeddings "FastTextDT" --epochs 1
This training can take a lot of time.
Run classification with different embeddings (to use embeddings necessitating fine-tuning, the corresponding fine-tuning needs to be run before):
python classification.py --attribute_level code_grand_domaine --multilabel False --embeddings BOW --results_file test.txt
Compute similarities between offers and certifications (to use embeddings necessitating fine-tuning, the corresponding fine-tuning needs to be run before):
python simOffreCertif.py --embeddings BOW --results_file test.txt
python simOffreCertif.py --embeddings SentenceCamemBert --results_file test.txt --finetuningloss multipleNegCosSim --finetuninglevel all
Fine-tune models for classification:
python fineTuningClassif.py --results_file test.txt --finetuninglevel code_formacode --multilabel True
Fine-tune models for similarity:
python fineTuningSim.py --results_file test.txt --lossname multipleNegCosSim
Generate and detect anomalies: For anomalies on the certification:
python generateDetectAnomalies.py --anomaly_pct 0.5 --attribute_level code_grand_domaine --multilabel False --embeddings BOW --anomaly_type mauvaiseCertif
For anomalies on the content:
python generateDetectAnomalies.py --anomaly_pct 0.5 --attribute_level code_domaine --multilabel_anomalies True --embeddings W2V --anomaly_type mauvaisContenuEtObjectifs
srun python launcher_sim.py --embeddings "['EscoCamemBertBase']"
which is equivalent to:
python simOffreCertif.py --embeddings EscoCamemBertBase --results_file ../log/log_eval_erpcamembert_sim.txt
cd src/
python launcher_classif.py --attribute_level "[code_formacode,code_domaine,code_grand_domaine]" --multilabel "[False]" --embeddings "[EscoCamemBertBase]" --results_dir "results_eval_EscoCamemBertBase"
cd src/
python launcher_classif.py --attribute_level "[code_formacode,code_domaine,code_grand_domaine]" --embeddings "[EscoCamemBertBase]" --results_dir "results_eval_EscoCamemBertBase" --multilabel True
cd src/
python launcher_fineTune.py --finetuningalgo fineTuningClassif --finetuninglevel "[code_grand_domaine, code_domaine, code_formacode]" --dataset_filtered "[fullTrainingSet]" --model_name "[EscoCamemBertBase]" --multilabel "[False, True]"
python launcher_fineTune.py --finetuningalgo fineTuningSim --finetuninglevel "[all]" --lossname "[multipleNegCosSim]" --dataset_filtered "[fullTrainingSet]" --model_name "[EscoCamemBertBase]"
which is equivalent to
python fineTuningSim.py --results_file ../log/test_general_esco/resultsLogs_esco/2025-09-30_14-19-39.txt --finetuninglevel all --lossname multipleNegCosSim --model_name EscoCamemBertBase --dataset_filtered fullTrainingSet
We used 1 GPU A100 for 24 hours to make the fine-tuning.
python launcher_fineTune_20260415_relaunch_qwenFTclassif_singlelabel.py \
--finetuningalgo fineTuningClassif_LoRA \
--finetuninglevel "[code_grand_domaine, code_domaine, formacode]" \
--dataset_filtered "[trainingSetFilteredPerClass]" \
--model_name "[Qwen3-Embedding-0.6B]" \
--use_lora "[True]" \
--debug_mode "[False]"
python launcher_fineTune_20260415_relaunch_qwenFTclassif_multilabel.py \
--finetuningalgo fineTuningClassif_LoRA_multilabel_pos_weight_wo_log \
--finetuninglevel "[code_grand_domaine, code_domaine, formacode]" \
--dataset_filtered "[trainingSetFilteredPerClass]" \
--model_name "[Qwen3-Embedding-0.6B]" \
--multilabel "[True]" \
--max_pos_weight "[500]" \
--use_lora "[True]" \
--debug_mode "[False]"
For this section, all the codes are in src/llm_classif_zero_shot_few_shot_anomaly_detection/.
Download Ollama:
curl -fsSL https://ollama.com/install.sh | sh
Then download llama3.1:8b and [mistral:7b].
Example of single label classification for grand_domaine with Llama3.1:8B using English prompts.
cd src/llm_classif_zero_shot_few_shot_anomaly_detection
python llm_classification_zero_shot.py \
--attribute_level "grand_domaine" \ # "domaine"
--model_name "llama3.1:8b" \ # "mistral:7b"
--output_dir "./results/" \
--shot_type "zsc" \
--multilabel False \ # True
--temperature 0 \
--text_column "textFormation" \
--language "en" \ # "fr"
--prefix "exp_llama_multilab_false_zsc_" \
--verbose False \
--debugging_mode False
For few shot learning, there are 2 options to selection of the examples:
one_per_classcd src/llm_classif_zero_shot_few_shot_anomaly_detection
python llm_classification_few_shot_clean.py
--pickle_file_dir "../../data/" \
--attribute_level "grand_domaine" \
--model_name "llama3.1:8b" \
--output_dir "./results/" \
--shot_type "fsc" \
--temperature 0 \
--text_column "textFormation" \
--multilabel False \
--language "en" \ # "fr"
--prefix "exp_llama_multilab_false_fsc_fr_oneperclass_" \
--num_max_retries 2 \
--is_representative True \
--fsc_select_opt "one_per_class" \ #"random_n"
--fsc_balance_opt "by_freq" \
--fsc_n_examples 3 \
--fsc_random_seed 42 \
--verbose False \
--debugging_mode False
random_ncd src/llm_classif_zero_shot_few_shot_anomaly_detection
python llm_classification_few_shot_clean.py
--pickle_file_dir "../../data/" \
--attribute_level "grand_domaine" \
--model_name "llama3.1:8b" \
--output_dir "./results/" \
--shot_type "fsc" \
--temperature 0 \
--text_column "textFormation" \
--multilabel False \
--language "en" \
--prefix "exp_llama_multilab_false_fsc_fr_oneperclass_" \
--num_max_retries 2 \
--is_representative True \
--fsc_select_opt "random_n" \
--fsc_balance_opt "by_freq" \
--fsc_n_examples 3 \
--fsc_random_seed 42 \
--verbose False \
--debugging_mode False
The experiment consists of using Llama3.1:8b with English as prompt language to detect anomalies on certifications. The data is dfAnomaliesMauvaiseCertif.csv.
cd src/llm_classif_zero_shot_few_shot_anomaly_detection
ollama serve & bash run_anomaly_detection_with_llm_20260216_anomalycertif.sh
which is equivalent to launch ollama serve in a terminal and then, to open another one to launch :
cd src/llm_classif_zero_shot_few_shot_anomaly_detection
python llm_anomaly_detection.py \
--anomalies_data_dir "./data/" \
--anomalies_type "anomalies_certif" \
--model_name "llama3.1:8b" \
--output_dir "./results/" \
--temperature 0 \
--certif_column "textCertification" \
--text_column "textFormation" \
--language "en" \
--prefix "LLM_AD_certif_" \
--num_max_retries 2 \
--verbose False \
--debugging_mode True
The experiment consists of using Llama3.1:8b with English as prompt language to detect anomalies on content. The data is dfAnomaliesdfANomaliesMauvaisContenuEtObjectifs.csv.
cd src/llm_classif_zero_shot_few_shot_anomaly_detection
ollama serve & bash run_anomaly_detection_with_llm_20260211_anomalycontent.sh
which is equivalent to launch ollama serve in a terminal and then, to open another one to launch :
cd src/llm_classif_zero_shot_few_shot_anomaly_detection
python llm_anomaly_detection.py \
--anomalies_data_dir "./data/" \
--anomalies_type "anomalies_content" \
--model_name "llama3.1:8b" \
--output_dir "./results/" \
--temperature 0 \
--certif_column "textCertification" \
--text_column "textFormation" \
--language "en" \
--prefix "LLM_AD_content_" \
--num_max_retries 2 \
--verbose False \
--debugging_mode True
TALN 2026
Apache 2.0 ? Other one ?
This work was supported by Hi! PARIS and by the ANR/France 2030 program (ANR-23-IACL-0005). We would like to acknowledge Mike Zhang and Tim Luka Horstmann for their precious help !
For questions, open an issue or contact:
| Contributor | Affiliation | Contact |
|---|---|---|
| Alicia Breidenstein | 1. LTCI, Télécom-Paris, Institut Polytechnique de Paris, France; 2.Caisse des Dépôts et Consignations, Paris, France | alicia.breidenstein@@telecom-paris.fr |
| Marguerite Leang | 3. Hi! PARIS Research Center, France | marguerite.leang@ip-paris.fr |
| Matthieu Labeau | 1. LTCI, Télécom-Paris, Institut Polytechnique de Paris, France | matthieu.labeau@telecom-paris.fr |
2 commits
Jupyter Notebook
98.0%
Python
2.0%
This project focuses on matching job offers (offres) to certifications (certifications) and the Formacode hierarchy using various machine learning and natural language processing techniques, particularly for the French labor market as described in our paper (in French) "Affinés pour la réussite : Évaluation des représentations pour graphes attribués textuels dans le domaine de la formation professionnelle".
You can find our paper at https://talnarchives.atala.org/TALN/TALN-2026/10.pdf
If you find our work useful, please also cite the paper:
@inproceedings{Breidenstein-Leang-Labeau:CORIA-TALN:2026,
author = "Breidenstein, Alicia and Leang, Marguerite and Labeau, Matthieu",
title = "Affinés pour la réussite : Évaluation des représentations dans le domaine de la formation professionnelle",
booktitle = "Actes de CORIA-TALN 2026. Actes des 33ème Conférence sur le Traitement Automatique des Langues Naturelles. Volume 1 : articles scientifiques originaux",
month = "6",
year = "2026",
address = "Nantes, France",
publisher = "Association pour le Traitement Automatique des Langues",
pages = "65-90",
note = "",
url = "https://talnarchives.atala.org/TALN/TALN-2026/10.pdf"
}
src/: Source code directory
anomaly_histogram.py: functions to generate histograms for anomaly detectionclassification.py: Main script for classification tasksembeddings.py: Functions for generating text embeddingsERPCamemBERT_utils.py: Functions to help training CamemBERT with the ERPfilterDataset.py: to filter the test set and the train set and avoid contamination and redundanciesfineTuningClassif.py: Fine-tuning scripts for classification modelsfineTuningClassif_LoRA_multilabel.py: Fine-tuning scripts for classification models when applying Lora for training Qwen in multilabel modefineTuningClassif_LoRA_singlelabel.py: Fine-tuning scripts for classification models when applying Lora for training Qwen in multilabel modefineTuningSim.py: Fine-tuning scripts for similarity modelsgenerateDetectAnomalies.py: Scripts for generating and detecting anomaliespreprocessing.py : to prepare the data at the beginningsimOffreCertif.py: Similarity computation between offers and certificationstrainFT.py: Functions to train FastText and W2V on the datautils.py: Utility functions for text processingllm_classif_zero_shot_few_shot_anomaly_detection/: Code directory with scripts for in-context learning using Llama3.1:8B and Mistral:7B for zero-shot and few-shot classification, and anomaly detection
escoxlmr/: Code directory corresponding to pre-training ERP-CamemBERT with Masked Language Modeling
(MLM) objective (predicting masked words in the text) and the Entity Relation Prediction (ERP) ob-
jective (predicting node relationships).
data/: Data files
environment.yml for full conda environmentconda env create -f environment.ymlconda activate OCFenvThe following data files are available on HuggingFace ([https://huggingface.co/datasets/ABreidenstein/OCFproject]) and should be downloaded into the ./data folder:
certifsFormacodeFull.csv: contains the codes to the certifications and the formacodes, domains and broad domains linked to them.offreCertifFormacode.csv: original data with training offers, certifications and formacode information, without any additional preprocessinggd_domaines.csv: contains all the codes for broad domainsdomaines.csv: contains all the codes for domainsformacodes.csv: contains all the codes for formacodesoffreCertifFormacode.pkl: this file can be obtained with preprocessing.py. In comparison to certifsFormacodeFull.csv, the text is clean.offreCertifFormacodeFiltered_multilab_False.pkl: this file contains our fully cleaned dataset in simple label mode after having been filtered for duplicates and can be obtained with filterDataset.pyoffreCertifFormacodeFiltered_multilab_True.pkl: this file contains our fully cleaned dataset in multilabel mode after having been filtered for duplicates and can be obtained with filterDataset.pyHere are some examples of how the functions may be used, but other configurations can be obtained with different parameters (refer to the corresponding files to see them).
Run preprocessing file to generate label encoders (necessary for classification):
cd src
python preprocessing.py
To use FastText trained on the data, this needs to be run before using it on the similarity and classification tasks:
python python trainFT.py --results_file "test.txt" --embeddings "FastTextDT" --epochs 1
This training can take a lot of time.
Run classification with different embeddings (to use embeddings necessitating fine-tuning, the corresponding fine-tuning needs to be run before):
python classification.py --attribute_level code_grand_domaine --multilabel False --embeddings BOW --results_file test.txt
Compute similarities between offers and certifications (to use embeddings necessitating fine-tuning, the corresponding fine-tuning needs to be run before):
python simOffreCertif.py --embeddings BOW --results_file test.txt
python simOffreCertif.py --embeddings SentenceCamemBert --results_file test.txt --finetuningloss multipleNegCosSim --finetuninglevel all
Fine-tune models for classification:
python fineTuningClassif.py --results_file test.txt --finetuninglevel code_formacode --multilabel True
Fine-tune models for similarity:
python fineTuningSim.py --results_file test.txt --lossname multipleNegCosSim
Generate and detect anomalies: For anomalies on the certification:
python generateDetectAnomalies.py --anomaly_pct 0.5 --attribute_level code_grand_domaine --multilabel False --embeddings BOW --anomaly_type mauvaiseCertif
For anomalies on the content:
python generateDetectAnomalies.py --anomaly_pct 0.5 --attribute_level code_domaine --multilabel_anomalies True --embeddings W2V --anomaly_type mauvaisContenuEtObjectifs
srun python launcher_sim.py --embeddings "['EscoCamemBertBase']"
which is equivalent to:
python simOffreCertif.py --embeddings EscoCamemBertBase --results_file ../log/log_eval_erpcamembert_sim.txt
cd src/
python launcher_classif.py --attribute_level "[code_formacode,code_domaine,code_grand_domaine]" --multilabel "[False]" --embeddings "[EscoCamemBertBase]" --results_dir "results_eval_EscoCamemBertBase"
cd src/
python launcher_classif.py --attribute_level "[code_formacode,code_domaine,code_grand_domaine]" --embeddings "[EscoCamemBertBase]" --results_dir "results_eval_EscoCamemBertBase" --multilabel True
cd src/
python launcher_fineTune.py --finetuningalgo fineTuningClassif --finetuninglevel "[code_grand_domaine, code_domaine, code_formacode]" --dataset_filtered "[fullTrainingSet]" --model_name "[EscoCamemBertBase]" --multilabel "[False, True]"
python launcher_fineTune.py --finetuningalgo fineTuningSim --finetuninglevel "[all]" --lossname "[multipleNegCosSim]" --dataset_filtered "[fullTrainingSet]" --model_name "[EscoCamemBertBase]"
which is equivalent to
python fineTuningSim.py --results_file ../log/test_general_esco/resultsLogs_esco/2025-09-30_14-19-39.txt --finetuninglevel all --lossname multipleNegCosSim --model_name EscoCamemBertBase --dataset_filtered fullTrainingSet
We used 1 GPU A100 for 24 hours to make the fine-tuning.
python launcher_fineTune_20260415_relaunch_qwenFTclassif_singlelabel.py \
--finetuningalgo fineTuningClassif_LoRA \
--finetuninglevel "[code_grand_domaine, code_domaine, formacode]" \
--dataset_filtered "[trainingSetFilteredPerClass]" \
--model_name "[Qwen3-Embedding-0.6B]" \
--use_lora "[True]" \
--debug_mode "[False]"
python launcher_fineTune_20260415_relaunch_qwenFTclassif_multilabel.py \
--finetuningalgo fineTuningClassif_LoRA_multilabel_pos_weight_wo_log \
--finetuninglevel "[code_grand_domaine, code_domaine, formacode]" \
--dataset_filtered "[trainingSetFilteredPerClass]" \
--model_name "[Qwen3-Embedding-0.6B]" \
--multilabel "[True]" \
--max_pos_weight "[500]" \
--use_lora "[True]" \
--debug_mode "[False]"
For this section, all the codes are in src/llm_classif_zero_shot_few_shot_anomaly_detection/.
Download Ollama:
curl -fsSL https://ollama.com/install.sh | sh
Then download llama3.1:8b and [mistral:7b].
Example of single label classification for grand_domaine with Llama3.1:8B using English prompts.
cd src/llm_classif_zero_shot_few_shot_anomaly_detection
python llm_classification_zero_shot.py \
--attribute_level "grand_domaine" \ # "domaine"
--model_name "llama3.1:8b" \ # "mistral:7b"
--output_dir "./results/" \
--shot_type "zsc" \
--multilabel False \ # True
--temperature 0 \
--text_column "textFormation" \
--language "en" \ # "fr"
--prefix "exp_llama_multilab_false_zsc_" \
--verbose False \
--debugging_mode False
For few shot learning, there are 2 options to selection of the examples:
one_per_classcd src/llm_classif_zero_shot_few_shot_anomaly_detection
python llm_classification_few_shot_clean.py
--pickle_file_dir "../../data/" \
--attribute_level "grand_domaine" \
--model_name "llama3.1:8b" \
--output_dir "./results/" \
--shot_type "fsc" \
--temperature 0 \
--text_column "textFormation" \
--multilabel False \
--language "en" \ # "fr"
--prefix "exp_llama_multilab_false_fsc_fr_oneperclass_" \
--num_max_retries 2 \
--is_representative True \
--fsc_select_opt "one_per_class" \ #"random_n"
--fsc_balance_opt "by_freq" \
--fsc_n_examples 3 \
--fsc_random_seed 42 \
--verbose False \
--debugging_mode False
random_ncd src/llm_classif_zero_shot_few_shot_anomaly_detection
python llm_classification_few_shot_clean.py
--pickle_file_dir "../../data/" \
--attribute_level "grand_domaine" \
--model_name "llama3.1:8b" \
--output_dir "./results/" \
--shot_type "fsc" \
--temperature 0 \
--text_column "textFormation" \
--multilabel False \
--language "en" \
--prefix "exp_llama_multilab_false_fsc_fr_oneperclass_" \
--num_max_retries 2 \
--is_representative True \
--fsc_select_opt "random_n" \
--fsc_balance_opt "by_freq" \
--fsc_n_examples 3 \
--fsc_random_seed 42 \
--verbose False \
--debugging_mode False
The experiment consists of using Llama3.1:8b with English as prompt language to detect anomalies on certifications. The data is dfAnomaliesMauvaiseCertif.csv.
cd src/llm_classif_zero_shot_few_shot_anomaly_detection
ollama serve & bash run_anomaly_detection_with_llm_20260216_anomalycertif.sh
which is equivalent to launch ollama serve in a terminal and then, to open another one to launch :
cd src/llm_classif_zero_shot_few_shot_anomaly_detection
python llm_anomaly_detection.py \
--anomalies_data_dir "./data/" \
--anomalies_type "anomalies_certif" \
--model_name "llama3.1:8b" \
--output_dir "./results/" \
--temperature 0 \
--certif_column "textCertification" \
--text_column "textFormation" \
--language "en" \
--prefix "LLM_AD_certif_" \
--num_max_retries 2 \
--verbose False \
--debugging_mode True
The experiment consists of using Llama3.1:8b with English as prompt language to detect anomalies on content. The data is dfAnomaliesdfANomaliesMauvaisContenuEtObjectifs.csv.
cd src/llm_classif_zero_shot_few_shot_anomaly_detection
ollama serve & bash run_anomaly_detection_with_llm_20260211_anomalycontent.sh
which is equivalent to launch ollama serve in a terminal and then, to open another one to launch :
cd src/llm_classif_zero_shot_few_shot_anomaly_detection
python llm_anomaly_detection.py \
--anomalies_data_dir "./data/" \
--anomalies_type "anomalies_content" \
--model_name "llama3.1:8b" \
--output_dir "./results/" \
--temperature 0 \
--certif_column "textCertification" \
--text_column "textFormation" \
--language "en" \
--prefix "LLM_AD_content_" \
--num_max_retries 2 \
--verbose False \
--debugging_mode True
TALN 2026
Apache 2.0 ? Other one ?
This work was supported by Hi! PARIS and by the ANR/France 2030 program (ANR-23-IACL-0005). We would like to acknowledge Mike Zhang and Tim Luka Horstmann for their precious help !
For questions, open an issue or contact:
| Contributor | Affiliation | Contact |
|---|---|---|
| Alicia Breidenstein | 1. LTCI, Télécom-Paris, Institut Polytechnique de Paris, France; 2.Caisse des Dépôts et Consignations, Paris, France | alicia.breidenstein@@telecom-paris.fr |
| Marguerite Leang | 3. Hi! PARIS Research Center, France | marguerite.leang@ip-paris.fr |
| Matthieu Labeau | 1. LTCI, Télécom-Paris, Institut Polytechnique de Paris, France | matthieu.labeau@telecom-paris.fr |
2 commits
Jupyter Notebook
98.0%
Python
2.0%