Dificuldade
A tua melhor pontuação
N/D
Podem ser utilizados explicitamente modelos de linguagem pré-treinados (ex: BERT, RoBERTa, sentence-transformers) com pesos carregados. A aceleração por GPU para treino e inferência é totalmente permitida. Pipelines clássicos de NLP baseados em TF-IDF também são permitidos e encorajados.
Algures nas planícies áridas do Novo México, 1883.
O velho Xerife Clem Dudley tinha um hábito que nenhum ajudante jamais compreendeu: todas as noites, por mais longo que tivesse sido o dia, colocava o chapéu na sela do cavalo, deitava-se na manta e olhava diretamente para cima, para o céu.
"As estrelas não mentem", costumava dizer. "Qualquer fugitivo, qualquer vagabundo, qualquer homem honesto — todos olham para o mesmo céu."
Numa noite de agosto, exausto após três dias a perseguir o bando Vega pelo deserto, Clem deitou-se sob um céu negro como tinta, salpicado com mais estrelas do que alguma vez contara. Tentava adormecer quando as estrelas começaram a mover-se — lentamente ao início, como brasas levadas pelo vento de uma fogueira a morrer. Depois, cada vez mais rápido. Traçavam linhas entre si. Triângulos. Espirais. Animais. Números. Formas das quais não sabia o nome.
"Deve ser do calor", resmungou. Mas continuou a observar.
As formas tornaram-se palavras. Não ditas — sentidas. Cada constelação parecia carregar um significado, um peso, uma história pendurada nela como um cartaz de "Procura-se" num painel de xerife. Estendeu a mão para o lápis para as anotar, e então — nada.
Acordou noutro lugar.
O Reino entre as Estrelas. Era assim que lhe chamavam.
Era um território vasto e silencioso onde o céu era o chão, e as constelações eram aldeias — cada uma um grupo de estrelas arranjadas numa forma, e cada forma carregando um nome que esperava ser correspondido com a sua história. Os habitantes deste reino, os Escribas das Estrelas, mantinham registos meticulosos há séculos: diários, poemas, diários de bordo, lendas — todos escritos por pessoas que tinham olhado para as mesmas formas de estrelas lá de baixo, da terra.
Mas algo tinha corrido mal. Uma grande tempestade celeste — os locais chamavam-lhe A Dispersão — tinha arrancado cada etiqueta de cada constelação e lançado-as ao vento. Agora, milhares de textos flutuavam soltos sobre as formas de estrelas que outrora descreveram, e os Escribas das Estrelas já não conseguiam dizer qual história pertencia a qual céu.
A Clem foi entregue um distintivo feito de luz estelar e uma instrução simples:
"Faz corresponder as palavras de volta às estrelas, Xerife. Antes que venha a próxima tempestade."
É-te fornecido um conjunto de constelações de estrelas, cada uma descrita por uma sequência de pontos 2D que formam uma forma geométrica (ex: uma cruz, uma espiral, uma figura de cinco pontas, algarismos como 6, 7, 8, combinações de algarismos, etc.). Também te é fornecido um grande conjunto de fragmentos de texto candidatos — entradas de diário, lendas, descrições — cada um escrito originalmente sobre uma única constelação específica.
O teu objetivo é construir um modelo capaz de atribuir corretamente a cada texto do conjunto a constelação correspondente, baseando-se exclusivamente na relação semântica e estrutural entre a geometria das coordenadas e o conteúdo do texto.
train.csv contém 300 pares constelação-texto com etiquetas:
| Coluna | Descrição |
|---|---|
id | ID da constelação (0-299) |
coords | Vetor de coordenadas de 728 dimensões, separado por barras: \|x1\|x2\|...\|x728\| |
text | O fragmento literário correspondente |
test.csv contém 50 sequências de constelações sem etiquetas (datapointID 1-50):
| Coluna | Descrição |
|---|---|
datapointID | Inteiro de 1 a 50 |
coords | Mesmo formato com pipes que no treino |
Cada datapointID aparece 40-65 vezes. Não são fornecidas etiquetas de texto.
candidates.csv contém 500 fragmentos de texto:
| Coluna | Descrição |
|---|---|
text_id | Inteiro 0-499 |
text | Um fragmento literário (diário, poema, lenda) |
O ficheiro de submissão deve estar no formato CSV com as seguintes colunas:
| Campo | Descrição |
|---|---|
subtaskID | Deve ser 1 para todas as linhas |
datapointID | Inteiro 1-50, o identificador da constelação de teste |
answer | O text_id previsto (inteiro 0-499) |
Cada um dos 50 datapointID de teste deve aparecer exatamente uma vez.
Exemplo:
subtaskID,datapointID,answer1,1,421,2,3171,3,467...Cada previsão é avaliada como uma classificação de rótulo único (single-label) sobre os 500 IDs de texto candidatos. A previsão é ou correta (1) ou incorreta (0).
A métrica final é o número de previsões corretas / 50.
As pontuações brutas são convertidas em pontos de concurso usando uma função linear com um limite mínimo:
| Accuracy | Pontuação |
|---|---|
| < 0.30 | 0 pontos |
| >= 0.85 | 100 pontos |
| Intermédio (0.30 - 0.85) | Escala linear entre 0 e 100 |
Em resumo: deves fazer corresponder corretamente pelo menos 15 de 50 constelações (accuracy = 0.30) para obter quaisquer pontos, e a correspondência correta de 43 ou mais (accuracy >= 0.85) garante a pontuação máxima.
"As estrelas não mentem. Podes confiar mais numa estrela do que num homem..." — Xerife Clem Dudley, 1883