Descrição
O projeto Skip-Thought Vectors oferece o codificador Sent2Vec e o código de treinamento associado, diretamente derivado do artigo de pesquisa "Skip-Thought Vectors". Esta ferramenta é projetada para gerar representações vetoriais densas de alta qualidade para sentenças. Esses embeddings de sentenças podem então ser utilizados em uma ampla gama de aplicações de processamento de linguagem natural (PLN), melhorando significativamente seu desempenho.
A implementação é primariamente em Python, exigindo dependências específicas como Python 2.7, Theano 0.7, NumPy, SciPy, scikit-learn, NLTK 3 e, opcionalmente, Keras e gensim para experimentos específicos. Os usuários precisam baixar arquivos de modelo pré-treinados e embeddings de palavras, que são substanciais em tamanho, necessitando de espaço de armazenamento adequado. A configuração envolve a configuração de caminhos para esses arquivos baixados no script `skipthoughts.py` e a definição de flags do Theano para seleção de dispositivo (CPU ou GPU).
Uma vez configurado, o codificador pode processar listas de sentenças para produzir vetores numéricos. Os vetores de saída são de 4800 dimensões, combinando modelos uni-skip e bi-skip, com os vetores combinados recomendados para desempenho ideal, conforme demonstrado nos experimentos do artigo. O processo de codificação pode ser controlado quanto à verbosidade, mostrando o progresso com base nos comprimentos das sentenças sendo processadas.
O repositório também inclui código para replicar experimentos detalhados no artigo, cobrindo tarefas como Classificação de Tipo de Pergunta TREC, Ranking Imagem-Sentença (usando o dataset COCO), Relação Semântica (dataset SICK), Detecção de Paráfrase (Microsoft Research Paraphrase Corpus) e vários benchmarks de classificação binária (MR, CR, SUBJ, MPQA). Esses scripts experimentais orientam os usuários sobre a preparação e execução de dados para obter os resultados reportados, muitas vezes envolvendo validação cruzada para ajuste de hiperparâmetros.
O projeto enfatiza a importância de um token de Fim de Sentença (EOS), que pode ser opcionalmente usado durante a codificação para potencialmente melhorar o desempenho, especialmente para sentenças que carecem de pontuação padrão. O código é liberado sob a Licença Apache 2.0, e os usuários são encorajados a citar os artigos de pesquisa relevantes se acharem o código útil.
Destaques de Skip-Thought Vectors
Implementação do codificador Sent2Vec
Código de treinamento do artigo 'Skip-Thought Vectors'
Gera representações vetoriais densas de sentenças
Suporta modelos uni-skip e bi-skip
Vetores combine-skip recomendados para melhor desempenho
Inclui código para experimentos de classificação TREC
Inclui código para experimentos de Ranking Imagem-Sentença
Inclui código para experimentos de Relação Semântica
Inclui código para experimentos de Detecção de Paráfrase
Inclui código para benchmarks de classificação binária
Uso opcional do token EOS para codificação
Implementação baseada em Python
Primeiros passos com Skip-Thought Vectors
Baixar arquivos de modelo e embeddings de palavras
Configurar caminhos para os arquivos baixados em skipthoughts.py
Definir THEANO_FLAGS para seleção de dispositivo (CPU/GPU)
Importar skipthoughts e carregar o modelo
Inicializar o codificador com o modelo carregado
Codificar listas de sentenças para obter vetores
Executar scripts fornecidos para experimentos específicos de PLN
Casos de uso de Skip-Thought Vectors
- Geração de Embedding de Sentenças
- Classificação de Texto
- Ranking Imagem-Sentença
- Similaridade Semântica
- Detecção de Paráfrase
- Classificação Binária







