Este repositório contém código para o documento ACL 2020 "Rat-SQL: Schema de reconhecimento de relação codificação e vinculação para analisadores de texto para SQL".
Se você usar o RAT-SQL em seu trabalho, cite o seguinte:
@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:
Faça o download dos conjuntos de dados: Spider e Wikisql. Em caso de aranha, certifique -se de baixar a versão 08/03/2020 ou mais recente. Desembale os conjuntos de dados em algum lugar fora deste projeto para criar a seguinte estrutura de diretório:
/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 trabalhar com o conjunto de dados Wikisql, clone seus scripts de avaliação neste projeto:
mkdir -p third_party
git clone https://github.com/salesforce/WikiSQL third_party/wikisql Fornecemos um Dockerfile que configura todo o ambiente para você. Ele pressupõe que você monte os conjuntos de dados baixados na etapa 1 como um volume /mnt/data em uma imagem em execução. Assim, a configuração do ambiente para Rat-SQL é:
docker build -t ratsql .
docker run --rm -m4g -v /path/to/data:/mnt/data -it ratsql Observe que a imagem requer pelo menos 4 GB de RAM para executar o pré -processamento. Por padrão, o Docker Desktop para Mac e Docker Desktop para Windows Run Containers com 2 GB de RAM. O interruptor -m4g o substitui; Como alternativa, você pode aumentar o limite padrão nas configurações do Docker Desktop.
Se você preferir configurar e executar a base de código sem docker, siga as etapas no
Dockerfileuma a uma. Observe que este repositório requer Python 3.7 ou superior e uma JVM para executar Stanford Corenlp.
Cada experimento tem seu próprio arquivo de configuração em experiments . O pipeline de trabalhar com qualquer versão modelo ou conjunto de dados é:
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 os seguintes arquivos de configuração do experimento para reproduzir nossos resultados:
experiments/spider-glove-run.jsonnetexperiments/spider-bert-run.jsonnetexperiments/wikisql-glove-run.jsonnetA precisão exata do modelo pode variar em ± 2%, dependendo de uma semente aleatória. Veja papel para obter detalhes.
Este projeto recebe contribuições e sugestões. A maioria das contribuições exige que você concorde com um Contrato de Licença de Colaborador (CLA) declarando que você tem o direito e, na verdade, concede -nos os direitos de usar sua contribuição. Para detalhes, visite https://cla.opensource.microsoft.com.
Quando você envia uma solicitação de tração, um BOT do CLA determina automaticamente se você precisa fornecer um CLA e decorar o PR adequadamente (por exemplo, verificação de status, comentar). Simplesmente siga as instruções fornecidas pelo bot. Você só precisará fazer isso uma vez em todos os repositórios usando nosso CLA.
Este projeto adotou o Código de Conduta Open Microsoft. Para obter mais informações, consulte o Código de Conduta Perguntas frequentes ou entre em contato com [email protected] com quaisquer perguntas ou comentários adicionais.