Este repositorio contiene código para el documento ACL 2020 "RAT-SQL: Codificación de esquemas de relación y vinculación para analizadores de texto a SQL".
Si usa Rat-SQL en su trabajo, cíquelo de la siguiente manera:
@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:
Descargue los conjuntos de datos: Spider y Wikisql. En el caso de Spider, asegúrese de descargar la versión 08/03/2020 o más nueva. Desempaqué los conjuntos de datos en algún lugar fuera de este proyecto para crear la siguiente estructura del directorio:
/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
Para trabajar con el conjunto de datos WikisQL, clone sus scripts de evaluación en este proyecto:
mkdir -p third_party
git clone https://github.com/salesforce/WikiSQL third_party/wikisql Hemos proporcionado un Dockerfile que establece todo el entorno para usted. Se supone que monta los conjuntos de datos descargados en el paso 1 como un volumen /mnt/data en una imagen en ejecución. Por lo tanto, la configuración del entorno para Rat-SQL es:
docker build -t ratsql .
docker run --rm -m4g -v /path/to/data:/mnt/data -it ratsql Tenga en cuenta que la imagen requiere al menos 4 GB de RAM para ejecutar el preprocesamiento. Por defecto, Docker Desktop para Mac y Docker Desktop para Windows ejecuta contenedores con 2 GB de RAM. El interruptor -m4g lo anula; Alternativamente, puede aumentar el límite predeterminado en la configuración de escritorio Docker.
Si prefiere configurar y ejecutar CodeBase sin Docker, siga los pasos en
Dockerfileuno por uno. Tenga en cuenta que este repositorio requiere Python 3.7 o superior y un JVM para ejecutar Stanford Corenlp.
Cada experimento tiene su propio archivo de configuración en experiments . La tubería de trabajar con cualquier versión o conjunto de datos del modelo es:
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 resultsUse los siguientes archivos de configuración del experimento para reproducir nuestros resultados:
experiments/spider-glove-run.jsonnetexperiments/spider-bert-run.jsonnetexperiments/wikisql-glove-run.jsonnetLa precisión exacta del modelo puede variar en ± 2% dependiendo de una semilla aleatoria. Ver artículo para más detalles.
Este proyecto da la bienvenida a las contribuciones y sugerencias. La mayoría de las contribuciones requieren que acepte un Acuerdo de Licencia de Contributor (CLA) que declare que tiene derecho y realmente hacernos los derechos para utilizar su contribución. Para más detalles, visite https://cla.opensource.microsoft.com.
Cuando envíe una solicitud de extracción, un BOT CLA determinará automáticamente si necesita proporcionar un CLA y decorar el PR adecuadamente (por ejemplo, verificación de estado, comentario). Simplemente siga las instrucciones proporcionadas por el bot. Solo necesitará hacer esto una vez en todos los reposos usando nuestro CLA.
Este proyecto ha adoptado el Código de Conducta Open Open Microsoft. Para obtener más información, consulte el Código de Conducta Preguntas frecuentes o comuníquese con [email protected] con cualquier pregunta o comentario adicional.