Ce référentiel contient du code pour le papier ACL 2020 "Rat-SQL: Relation-Aware Schema Encoding et liant pour les analyseurs de texte à SQL".
Si vous utilisez Rat-SQL dans votre travail, veuillez le citer comme suit:
@inproceedings { rat-sql ,
title = " {RAT-SQL}: Relation-Aware Schema Encoding and Linking for Text-to-{SQL} Parsers " ,
author = " Wang, Bailin and Shin, Richard and Liu, Xiaodong and Polozov, Oleksandr and Richardson, Matthew " ,
booktitle = " Proceedings of the 58th Annual Meeting of the Association for Computational Linguistics " ,
month = jul,
year = " 2020 " ,
address = " Online " ,
publisher = " Association for Computational Linguistics " ,
pages = " 7567--7578 "
}2020-08-14:
Téléchargez les ensembles de données: Spider et Wikisql. En cas de Spider, assurez-vous de télécharger la version 08/03/2020 ou plus récente. Déballer les ensembles de données quelque part en dehors de ce projet pour créer la structure du répertoire suivant:
/path/to/data
├── spider
│ ├── database
│ │ └── ...
│ ├── dev.json
│ ├── dev_gold.sql
│ ├── tables.json
│ ├── train_gold.sql
│ ├── train_others.json
│ └── train_spider.json
└── wikisql
├── dev.db
├── dev.jsonl
├── dev.tables.jsonl
├── test.db
├── test.jsonl
├── test.tables.jsonl
├── train.db
├── train.jsonl
└── train.tables.jsonl
Pour travailler avec l'ensemble de données Wikisql, clonez ses scripts d'évaluation dans ce projet:
mkdir -p third_party
git clone https://github.com/salesforce/WikiSQL third_party/wikisql Nous avons fourni un Dockerfile qui vous configure l'environnement entier. Il suppose que vous montez les ensembles de données téléchargés à l'étape 1 en tant que volume /mnt/data dans une image en cours. Ainsi, la configuration de l'environnement pour Rat-SQL est:
docker build -t ratsql .
docker run --rm -m4g -v /path/to/data:/mnt/data -it ratsql Notez que l'image nécessite au moins 4 Go de RAM pour exécuter le prétraitement. Par défaut, Docker Desktop pour Mac et Docker Desktop pour Windows Exécutent des conteneurs avec 2 Go de RAM. Le commutateur -m4g le remplace; Alternativement, vous pouvez augmenter la limite par défaut des paramètres de bureau Docker.
Si vous préférez configurer et exécuter la base de code sans docker, suivez les étapes de
Dockerfileune par une. Notez que ce référentiel nécessite Python 3.7 ou plus et un JVM pour exécuter Stanford Corenlp.
Chaque expérience a son propre fichier de configuration dans experiments . Le pipeline de travail avec n'importe quelle version ou ensemble de données de modèle est:
python run.py preprocess experiment_config_file # Step 3a: preprocess the data
python run.py train experiment_config_file # Step 3b: train a model
python run.py eval experiment_config_file # Step 3b: evaluate the resultsUtilisez les fichiers de configuration d'expérience suivants pour reproduire nos résultats:
experiments/spider-glove-run.jsonnetexperiments/spider-bert-run.jsonnetexperiments/wikisql-glove-run.jsonnetLa précision exacte du modèle peut varier de ± 2% en fonction d'une graine aléatoire. Voir le papier pour plus de détails.
Ce projet accueille les contributions et les suggestions. La plupart des contributions vous obligent à accepter un accord de licence de contributeur (CLA) déclarant que vous avez le droit de faire et en fait, accordez-nous les droits d'utilisation de votre contribution. Pour plus de détails, visitez https://cla.opensource.microsoft.com.
Lorsque vous soumettez une demande de traction, un bot CLA déterminera automatiquement si vous devez fournir un CLA et décorer le RP de manière appropriée (par exemple, vérification d'état, commentaire). Suivez simplement les instructions fournies par le bot. Vous n'aurez besoin de le faire qu'une seule fois sur tous les dépositions en utilisant notre CLA.
Ce projet a adopté le code de conduite open source Microsoft. Pour plus d'informations, consultez le code de conduite FAQ ou contactez [email protected] avec toute question ou commentaire supplémentaire.