Upload folder using huggingface_hub
Browse files- .DS_Store +0 -0
- .ipynb_checkpoints/test_inference-checkpoint.ipynb +277 -0
- best.pt +3 -0
- dashboard/.DS_Store +0 -0
- dashboard/confusion/cm-glove-bilstm-train-pool.png +0 -0
- dashboard/confusion/internal-test-confusion-matrix.png +0 -0
- dashboard/curves/training-history.json +66 -0
- dashboard/dashboard-manifest.json +187 -0
- dashboard/distributions/class-distribution.json +78 -0
- dashboard/distributions/source-dataset-distribution.json +54 -0
- dashboard/figures/benchmark-test-f1.plotly.json +77 -0
- dashboard/figures/class-distribution.plotly.json +56 -0
- dashboard/figures/cross-dataset-f1.plotly.json +62 -0
- dashboard/figures/eval-metrics.plotly.json +65 -0
- dashboard/figures/source-dataset-distribution.plotly.json +53 -0
- dashboard/figures/training-loss.plotly.json +93 -0
- dashboard/metadata/experiment-config.json +75 -0
- dashboard/metadata/model.json +88 -0
- dashboard/metrics/benchmark-test.json +122 -0
- dashboard/metrics/cross-dataset.json +47 -0
- dashboard/metrics/primary-evaluation.json +22 -0
- dashboard/samples/prediction-samples.json +114 -0
- dashboard/summary/overview.json +53 -0
- dashboard/summary/source-audit.json +1218 -0
- label_classes.json +5 -0
- model-config.yaml +103 -0
- test_inference.ipynb +456 -0
- vocab.pkl +3 -0
.DS_Store
ADDED
|
Binary file (10.2 kB). View file
|
|
|
.ipynb_checkpoints/test_inference-checkpoint.ipynb
ADDED
|
@@ -0,0 +1,277 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"cells": [
|
| 3 |
+
{
|
| 4 |
+
"cell_type": "markdown",
|
| 5 |
+
"metadata": {},
|
| 6 |
+
"source": [
|
| 7 |
+
"# Complexity Model Inference Test\n",
|
| 8 |
+
"\n",
|
| 9 |
+
"This notebook loads the saved production complexity model and its local artifacts from this folder, rebuilds the BiLSTM architecture, and runs inference on a few example sentences. It performs inference only."
|
| 10 |
+
]
|
| 11 |
+
},
|
| 12 |
+
{
|
| 13 |
+
"cell_type": "markdown",
|
| 14 |
+
"metadata": {},
|
| 15 |
+
"source": [
|
| 16 |
+
"## 1. Load the local artifacts\n",
|
| 17 |
+
"\n",
|
| 18 |
+
"The code below loads the checkpoint, model config, vocabulary, and label classes directly from the current folder."
|
| 19 |
+
]
|
| 20 |
+
},
|
| 21 |
+
{
|
| 22 |
+
"cell_type": "code",
|
| 23 |
+
"execution_count": null,
|
| 24 |
+
"metadata": {},
|
| 25 |
+
"outputs": [],
|
| 26 |
+
"source": [
|
| 27 |
+
"from pathlib import Path\n",
|
| 28 |
+
"import json\n",
|
| 29 |
+
"import pickle\n",
|
| 30 |
+
"import re\n",
|
| 31 |
+
"import unicodedata\n",
|
| 32 |
+
"\n",
|
| 33 |
+
"import numpy as np\n",
|
| 34 |
+
"import pandas as pd\n",
|
| 35 |
+
"import torch\n",
|
| 36 |
+
"import torch.nn as nn\n",
|
| 37 |
+
"import yaml\n",
|
| 38 |
+
"\n",
|
| 39 |
+
"MODEL_DIR = Path(\".\").resolve()\n",
|
| 40 |
+
"device = torch.device(\"cuda\" if torch.cuda.is_available() else \"cpu\")\n",
|
| 41 |
+
"\n",
|
| 42 |
+
"with (MODEL_DIR / \"model-config.yaml\").open(\"r\", encoding=\"utf-8\") as handle:\n",
|
| 43 |
+
" model_config = yaml.safe_load(handle)\n",
|
| 44 |
+
"\n",
|
| 45 |
+
"with (MODEL_DIR / \"label_classes.json\").open(\"r\", encoding=\"utf-8\") as handle:\n",
|
| 46 |
+
" label_classes = json.load(handle)\n",
|
| 47 |
+
"\n",
|
| 48 |
+
"with (MODEL_DIR / \"vocab.pkl\").open(\"rb\") as handle:\n",
|
| 49 |
+
" vocab = pickle.load(handle)\n",
|
| 50 |
+
"\n",
|
| 51 |
+
"checkpoint = torch.load(MODEL_DIR / \"best.pt\", map_location=device)\n",
|
| 52 |
+
"state_dict = checkpoint[\"model_state\"] if isinstance(checkpoint, dict) and \"model_state\" in checkpoint else checkpoint\n",
|
| 53 |
+
"embedding_matrix = state_dict[\"embedding.weight\"].detach().cpu().numpy()\n",
|
| 54 |
+
"artifact_files = sorted(path.name for path in MODEL_DIR.iterdir() if path.is_file())\n",
|
| 55 |
+
"\n",
|
| 56 |
+
"print(f\"Model directory: {MODEL_DIR}\")\n",
|
| 57 |
+
"print(f\"Device: {device}\")\n",
|
| 58 |
+
"print(f\"Artifacts: {artifact_files}\")\n",
|
| 59 |
+
"print(f\"Checkpoint keys: {list(checkpoint.keys()) if isinstance(checkpoint, dict) else 'state_dict'}\")\n",
|
| 60 |
+
"print(f\"Embedding matrix shape: {embedding_matrix.shape}\")\n",
|
| 61 |
+
"print(f\"Vocabulary size: {len(vocab)}\")\n",
|
| 62 |
+
"print(f\"Labels: {label_classes}\")\n"
|
| 63 |
+
]
|
| 64 |
+
},
|
| 65 |
+
{
|
| 66 |
+
"cell_type": "markdown",
|
| 67 |
+
"metadata": {},
|
| 68 |
+
"source": [
|
| 69 |
+
"## 2. Recreate the model and preprocessing pipeline\n",
|
| 70 |
+
"\n",
|
| 71 |
+
"The notebook rebuilds the saved BiLSTM + additive-attention classifier and applies the lightweight text normalization used for inference."
|
| 72 |
+
]
|
| 73 |
+
},
|
| 74 |
+
{
|
| 75 |
+
"cell_type": "code",
|
| 76 |
+
"execution_count": null,
|
| 77 |
+
"metadata": {},
|
| 78 |
+
"outputs": [],
|
| 79 |
+
"source": [
|
| 80 |
+
"class AdditiveAttention(nn.Module):\n",
|
| 81 |
+
" def __init__(self, hidden_dim: int):\n",
|
| 82 |
+
" super().__init__()\n",
|
| 83 |
+
" self.attn = nn.Linear(hidden_dim, 1, bias=False)\n",
|
| 84 |
+
"\n",
|
| 85 |
+
" def forward(self, hidden_states, mask=None):\n",
|
| 86 |
+
" scores = self.attn(hidden_states).squeeze(-1)\n",
|
| 87 |
+
" if mask is not None:\n",
|
| 88 |
+
" scores = scores.masked_fill(~mask, -1e9)\n",
|
| 89 |
+
" weights = torch.softmax(scores, dim=1)\n",
|
| 90 |
+
" context = (weights.unsqueeze(-1) * hidden_states).sum(dim=1)\n",
|
| 91 |
+
" return context, weights\n",
|
| 92 |
+
"\n",
|
| 93 |
+
"\n",
|
| 94 |
+
"class BiLSTMAttention(nn.Module):\n",
|
| 95 |
+
" def __init__(\n",
|
| 96 |
+
" self,\n",
|
| 97 |
+
" embedding_matrix: np.ndarray,\n",
|
| 98 |
+
" num_classes: int,\n",
|
| 99 |
+
" hidden_dim: int = 128,\n",
|
| 100 |
+
" num_layers: int = 2,\n",
|
| 101 |
+
" dropout: float = 0.3,\n",
|
| 102 |
+
" ):\n",
|
| 103 |
+
" super().__init__()\n",
|
| 104 |
+
" _, embedding_dim = embedding_matrix.shape\n",
|
| 105 |
+
" self.embedding = nn.Embedding.from_pretrained(\n",
|
| 106 |
+
" torch.tensor(embedding_matrix, dtype=torch.float32),\n",
|
| 107 |
+
" freeze=False,\n",
|
| 108 |
+
" padding_idx=0,\n",
|
| 109 |
+
" )\n",
|
| 110 |
+
" self.lstm = nn.LSTM(\n",
|
| 111 |
+
" input_size=embedding_dim,\n",
|
| 112 |
+
" hidden_size=hidden_dim,\n",
|
| 113 |
+
" num_layers=num_layers,\n",
|
| 114 |
+
" batch_first=True,\n",
|
| 115 |
+
" bidirectional=True,\n",
|
| 116 |
+
" dropout=dropout if num_layers > 1 else 0.0,\n",
|
| 117 |
+
" )\n",
|
| 118 |
+
" self.attention = AdditiveAttention(hidden_dim * 2)\n",
|
| 119 |
+
" self.dropout = nn.Dropout(dropout)\n",
|
| 120 |
+
" self.fc = nn.Linear(hidden_dim * 2, num_classes)\n",
|
| 121 |
+
"\n",
|
| 122 |
+
" def forward(self, token_ids):\n",
|
| 123 |
+
" mask = token_ids != 0\n",
|
| 124 |
+
" embeddings = self.dropout(self.embedding(token_ids))\n",
|
| 125 |
+
" hidden_states, _ = self.lstm(embeddings)\n",
|
| 126 |
+
" context, _ = self.attention(hidden_states, mask)\n",
|
| 127 |
+
" return self.fc(self.dropout(context))\n",
|
| 128 |
+
"\n",
|
| 129 |
+
"\n",
|
| 130 |
+
"DEFAULT_STOPWORDS = {\n",
|
| 131 |
+
" \"a\", \"an\", \"and\", \"are\", \"as\", \"at\", \"be\", \"by\", \"for\", \"from\",\n",
|
| 132 |
+
" \"has\", \"he\", \"in\", \"is\", \"it\", \"its\", \"of\", \"on\", \"that\", \"the\",\n",
|
| 133 |
+
" \"to\", \"was\", \"were\", \"will\", \"with\"\n",
|
| 134 |
+
"}\n",
|
| 135 |
+
"\n",
|
| 136 |
+
"try:\n",
|
| 137 |
+
" from nltk.corpus import stopwords\n",
|
| 138 |
+
" STOPWORDS = set(stopwords.words(\"english\"))\n",
|
| 139 |
+
"except Exception:\n",
|
| 140 |
+
" STOPWORDS = DEFAULT_STOPWORDS\n",
|
| 141 |
+
"\n",
|
| 142 |
+
"try:\n",
|
| 143 |
+
" from nltk.stem import WordNetLemmatizer\n",
|
| 144 |
+
" LEMMATIZER = WordNetLemmatizer()\n",
|
| 145 |
+
"except Exception:\n",
|
| 146 |
+
" LEMMATIZER = None\n",
|
| 147 |
+
"\n",
|
| 148 |
+
"\n",
|
| 149 |
+
"def maybe_lemmatize(token: str) -> str:\n",
|
| 150 |
+
" if LEMMATIZER is None:\n",
|
| 151 |
+
" return token\n",
|
| 152 |
+
" try:\n",
|
| 153 |
+
" return LEMMATIZER.lemmatize(token)\n",
|
| 154 |
+
" except Exception:\n",
|
| 155 |
+
" return token\n",
|
| 156 |
+
"\n",
|
| 157 |
+
"\n",
|
| 158 |
+
"def normalize_text(text: str) -> str:\n",
|
| 159 |
+
" text = str(text).lower()\n",
|
| 160 |
+
" text = unicodedata.normalize(\"NFKD\", text)\n",
|
| 161 |
+
" text = re.sub(r\"http\\S+|www\\S+\", \" \", text)\n",
|
| 162 |
+
" text = re.sub(r\"@\\w+|#\\w+\", \" \", text)\n",
|
| 163 |
+
" text = re.sub(r\"[^a-zA-Z0-9\\s!?.,'\\\"]\", \" \", text)\n",
|
| 164 |
+
" text = re.sub(r\"\\s+\", \" \", text).strip()\n",
|
| 165 |
+
" return text\n",
|
| 166 |
+
"\n",
|
| 167 |
+
"\n",
|
| 168 |
+
"def preprocess_from_normalized(text: str) -> str:\n",
|
| 169 |
+
" tokens = [token for token in text.split() if token not in STOPWORDS]\n",
|
| 170 |
+
" return \" \".join(maybe_lemmatize(token) for token in tokens)\n",
|
| 171 |
+
"\n",
|
| 172 |
+
"\n",
|
| 173 |
+
"def texts_to_sequences(texts, vocab_map, max_len, unk_token=\"<UNK>\"):\n",
|
| 174 |
+
" unk_idx = vocab_map.get(unk_token, 1)\n",
|
| 175 |
+
" sequences = np.zeros((len(texts), max_len), dtype=np.int64)\n",
|
| 176 |
+
" for row_idx, text in enumerate(texts):\n",
|
| 177 |
+
" for col_idx, token in enumerate(str(text).split()[:max_len]):\n",
|
| 178 |
+
" sequences[row_idx, col_idx] = vocab_map.get(token, unk_idx)\n",
|
| 179 |
+
" return sequences\n"
|
| 180 |
+
]
|
| 181 |
+
},
|
| 182 |
+
{
|
| 183 |
+
"cell_type": "markdown",
|
| 184 |
+
"metadata": {},
|
| 185 |
+
"source": [
|
| 186 |
+
"## 3. Restore the checkpoint and run example inference\n",
|
| 187 |
+
"\n",
|
| 188 |
+
"This cell rebuilds the model, restores the saved weights, preprocesses example sentences, and displays the predicted complexity label with probabilities."
|
| 189 |
+
]
|
| 190 |
+
},
|
| 191 |
+
{
|
| 192 |
+
"cell_type": "code",
|
| 193 |
+
"execution_count": null,
|
| 194 |
+
"metadata": {},
|
| 195 |
+
"outputs": [],
|
| 196 |
+
"source": [
|
| 197 |
+
"runtime_config = model_config.get(\"runtime\", {})\n",
|
| 198 |
+
"network_config = model_config.get(\"model\", {})\n",
|
| 199 |
+
"\n",
|
| 200 |
+
"model = BiLSTMAttention(\n",
|
| 201 |
+
" embedding_matrix=embedding_matrix,\n",
|
| 202 |
+
" num_classes=len(label_classes),\n",
|
| 203 |
+
" hidden_dim=network_config.get(\"hidden_dim\", 128),\n",
|
| 204 |
+
" num_layers=network_config.get(\"num_layers\", 2),\n",
|
| 205 |
+
" dropout=network_config.get(\"dropout\", 0.3),\n",
|
| 206 |
+
")\n",
|
| 207 |
+
"model.load_state_dict(state_dict)\n",
|
| 208 |
+
"model.to(device)\n",
|
| 209 |
+
"model.eval()\n",
|
| 210 |
+
"\n",
|
| 211 |
+
"MAX_LEN = runtime_config.get(\"max_sequence_length\", 256)\n",
|
| 212 |
+
"\n",
|
| 213 |
+
"\n",
|
| 214 |
+
"@torch.inference_mode()\n",
|
| 215 |
+
"def predict_texts(texts):\n",
|
| 216 |
+
" normalized = [normalize_text(text) for text in texts]\n",
|
| 217 |
+
" preprocessed = [preprocess_from_normalized(text) for text in normalized]\n",
|
| 218 |
+
" sequences = texts_to_sequences(preprocessed, vocab, MAX_LEN)\n",
|
| 219 |
+
" inputs = torch.tensor(sequences, dtype=torch.long, device=device)\n",
|
| 220 |
+
" logits = model(inputs)\n",
|
| 221 |
+
" probabilities = torch.softmax(logits, dim=-1).cpu().numpy()\n",
|
| 222 |
+
"\n",
|
| 223 |
+
" rows = []\n",
|
| 224 |
+
" for raw_text, normalized_text, preprocessed_text, probs in zip(texts, normalized, preprocessed, probabilities):\n",
|
| 225 |
+
" pred_idx = int(probs.argmax())\n",
|
| 226 |
+
" rows.append(\n",
|
| 227 |
+
" {\n",
|
| 228 |
+
" \"text\": raw_text,\n",
|
| 229 |
+
" \"normalized_text\": normalized_text,\n",
|
| 230 |
+
" \"preprocessed_text\": preprocessed_text,\n",
|
| 231 |
+
" \"predicted_label\": label_classes[pred_idx],\n",
|
| 232 |
+
" \"confidence\": round(float(probs[pred_idx]), 4),\n",
|
| 233 |
+
" \"probabilities\": {\n",
|
| 234 |
+
" label: round(float(score), 4)\n",
|
| 235 |
+
" for label, score in zip(label_classes, probs)\n",
|
| 236 |
+
" },\n",
|
| 237 |
+
" }\n",
|
| 238 |
+
" )\n",
|
| 239 |
+
"\n",
|
| 240 |
+
" return pd.DataFrame(rows)\n",
|
| 241 |
+
"\n",
|
| 242 |
+
"\n",
|
| 243 |
+
"example_sentences = [\n",
|
| 244 |
+
" \"The cat sat on the mat.\",\n",
|
| 245 |
+
" \"Students should explain the main idea in clear sentences.\",\n",
|
| 246 |
+
" \"Although the study is limited, it still offers a useful interpretation of the data.\",\n",
|
| 247 |
+
" \"Notwithstanding several methodological caveats, the argument articulates a nuanced account of institutional change.\",\n",
|
| 248 |
+
"]\n",
|
| 249 |
+
"\n",
|
| 250 |
+
"pd.set_option(\"display.max_colwidth\", 120)\n",
|
| 251 |
+
"results = predict_texts(example_sentences)\n",
|
| 252 |
+
"results\n"
|
| 253 |
+
]
|
| 254 |
+
}
|
| 255 |
+
],
|
| 256 |
+
"metadata": {
|
| 257 |
+
"kernelspec": {
|
| 258 |
+
"display_name": "nlp-project",
|
| 259 |
+
"language": "python",
|
| 260 |
+
"name": "python3"
|
| 261 |
+
},
|
| 262 |
+
"language_info": {
|
| 263 |
+
"codemirror_mode": {
|
| 264 |
+
"name": "ipython",
|
| 265 |
+
"version": 3
|
| 266 |
+
},
|
| 267 |
+
"file_extension": ".py",
|
| 268 |
+
"mimetype": "text/x-python",
|
| 269 |
+
"name": "python",
|
| 270 |
+
"nbconvert_exporter": "python",
|
| 271 |
+
"pygments_lexer": "ipython3",
|
| 272 |
+
"version": "3.11.14"
|
| 273 |
+
}
|
| 274 |
+
},
|
| 275 |
+
"nbformat": 4,
|
| 276 |
+
"nbformat_minor": 5
|
| 277 |
+
}
|
best.pt
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:bf01e442856c2587c087c4a9cca1ccb9549bd757a4755a72e2d75038aa998d8a
|
| 3 |
+
size 190059249
|
dashboard/.DS_Store
ADDED
|
Binary file (10.2 kB). View file
|
|
|
dashboard/confusion/cm-glove-bilstm-train-pool.png
ADDED
|
dashboard/confusion/internal-test-confusion-matrix.png
ADDED
|
dashboard/curves/training-history.json
ADDED
|
@@ -0,0 +1,66 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"source_file": "complexity/logs/complexity-classification_GloVe_BiLSTM_[train_pool].log",
|
| 3 |
+
"x_axis": "epoch",
|
| 4 |
+
"points": [
|
| 5 |
+
{
|
| 6 |
+
"epoch": 1,
|
| 7 |
+
"total_epochs": 20,
|
| 8 |
+
"train_loss": 0.8229,
|
| 9 |
+
"val_loss": 0.7119,
|
| 10 |
+
"val_f1_macro": 0.6324,
|
| 11 |
+
"epoch_seconds": 79.1
|
| 12 |
+
},
|
| 13 |
+
{
|
| 14 |
+
"epoch": 2,
|
| 15 |
+
"total_epochs": 20,
|
| 16 |
+
"train_loss": 0.488,
|
| 17 |
+
"val_loss": 0.6723,
|
| 18 |
+
"val_f1_macro": 0.655,
|
| 19 |
+
"epoch_seconds": 83.1
|
| 20 |
+
},
|
| 21 |
+
{
|
| 22 |
+
"epoch": 3,
|
| 23 |
+
"total_epochs": 20,
|
| 24 |
+
"train_loss": 0.2493,
|
| 25 |
+
"val_loss": 0.8044,
|
| 26 |
+
"val_f1_macro": 0.6605,
|
| 27 |
+
"epoch_seconds": 83.2
|
| 28 |
+
},
|
| 29 |
+
{
|
| 30 |
+
"epoch": 4,
|
| 31 |
+
"total_epochs": 20,
|
| 32 |
+
"train_loss": 0.116,
|
| 33 |
+
"val_loss": 1.2446,
|
| 34 |
+
"val_f1_macro": 0.6473,
|
| 35 |
+
"epoch_seconds": 82.7
|
| 36 |
+
},
|
| 37 |
+
{
|
| 38 |
+
"epoch": 5,
|
| 39 |
+
"total_epochs": 20,
|
| 40 |
+
"train_loss": 0.0496,
|
| 41 |
+
"val_loss": 1.5788,
|
| 42 |
+
"val_f1_macro": 0.6302,
|
| 43 |
+
"epoch_seconds": 80.7
|
| 44 |
+
},
|
| 45 |
+
{
|
| 46 |
+
"epoch": 6,
|
| 47 |
+
"total_epochs": 20,
|
| 48 |
+
"train_loss": 0.0151,
|
| 49 |
+
"val_loss": 1.9807,
|
| 50 |
+
"val_f1_macro": 0.6283,
|
| 51 |
+
"epoch_seconds": 79.6
|
| 52 |
+
}
|
| 53 |
+
],
|
| 54 |
+
"best_eval_event": {
|
| 55 |
+
"epoch": 3,
|
| 56 |
+
"total_epochs": 20,
|
| 57 |
+
"train_loss": 0.2493,
|
| 58 |
+
"val_loss": 0.8044,
|
| 59 |
+
"val_f1_macro": 0.6605,
|
| 60 |
+
"epoch_seconds": 83.2
|
| 61 |
+
},
|
| 62 |
+
"notes": [
|
| 63 |
+
"Early stopping triggered at epoch 6.",
|
| 64 |
+
"Restored best checkpoint | val_f1=0.6605 | path=models/glove_bilstm_complexity_train_pool_20260307_163358/best_model/best.pt"
|
| 65 |
+
]
|
| 66 |
+
}
|
dashboard/dashboard-manifest.json
ADDED
|
@@ -0,0 +1,187 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"schema_version": "1.0.0",
|
| 3 |
+
"generated_at": "2026-03-12T17:02:22+00:00",
|
| 4 |
+
"bundle_builder": "generic-v1",
|
| 5 |
+
"dashboard_root": "app/app-models/prod-model-complexity/dashboard",
|
| 6 |
+
"model": {
|
| 7 |
+
"model_id": "complexity-bilstm-final-v1",
|
| 8 |
+
"display_name": "Complexity BiLSTM Final v1",
|
| 9 |
+
"domain": "complexity",
|
| 10 |
+
"description": "Final BiLSTM with additive attention for CEFR-based text complexity classification."
|
| 11 |
+
},
|
| 12 |
+
"entrypoints": {
|
| 13 |
+
"overview": "app/app-models/prod-model-complexity/dashboard/summary/overview.json",
|
| 14 |
+
"source_audit": "app/app-models/prod-model-complexity/dashboard/summary/source-audit.json"
|
| 15 |
+
},
|
| 16 |
+
"sections": [
|
| 17 |
+
{
|
| 18 |
+
"id": "metadata",
|
| 19 |
+
"title": "Model Metadata",
|
| 20 |
+
"status": "available",
|
| 21 |
+
"description": "Model identity, runtime settings, and optional experiment configuration.",
|
| 22 |
+
"files": [
|
| 23 |
+
"app/app-models/prod-model-complexity/dashboard/metadata/model.json",
|
| 24 |
+
"app/app-models/prod-model-complexity/dashboard/metadata/experiment-config.json"
|
| 25 |
+
]
|
| 26 |
+
},
|
| 27 |
+
{
|
| 28 |
+
"id": "summary",
|
| 29 |
+
"title": "Summary",
|
| 30 |
+
"status": "available",
|
| 31 |
+
"description": "Dashboard status overview and source audit for the generated bundle.",
|
| 32 |
+
"files": [
|
| 33 |
+
"app/app-models/prod-model-complexity/dashboard/summary/overview.json",
|
| 34 |
+
"app/app-models/prod-model-complexity/dashboard/summary/source-audit.json"
|
| 35 |
+
]
|
| 36 |
+
},
|
| 37 |
+
{
|
| 38 |
+
"id": "evaluation",
|
| 39 |
+
"title": "Primary Evaluation",
|
| 40 |
+
"status": "available",
|
| 41 |
+
"description": "Primary validation and test metrics for the production model.",
|
| 42 |
+
"files": [
|
| 43 |
+
"app/app-models/prod-model-complexity/dashboard/metrics/primary-evaluation.json"
|
| 44 |
+
]
|
| 45 |
+
},
|
| 46 |
+
{
|
| 47 |
+
"id": "benchmark",
|
| 48 |
+
"title": "Benchmark",
|
| 49 |
+
"status": "available",
|
| 50 |
+
"description": "Comparison rows that place the production model in the wider benchmark context.",
|
| 51 |
+
"files": [
|
| 52 |
+
"app/app-models/prod-model-complexity/dashboard/metrics/benchmark-test.json",
|
| 53 |
+
"app/app-models/prod-model-complexity/dashboard/figures/benchmark-test-f1.plotly.json"
|
| 54 |
+
],
|
| 55 |
+
"charts": [
|
| 56 |
+
"benchmark-test-f1"
|
| 57 |
+
]
|
| 58 |
+
},
|
| 59 |
+
{
|
| 60 |
+
"id": "training_curves",
|
| 61 |
+
"title": "Training Curves",
|
| 62 |
+
"status": "available",
|
| 63 |
+
"description": "Training history exported from the model training run.",
|
| 64 |
+
"files": [
|
| 65 |
+
"app/app-models/prod-model-complexity/dashboard/curves/training-history.json",
|
| 66 |
+
"app/app-models/prod-model-complexity/dashboard/figures/training-loss.plotly.json",
|
| 67 |
+
"app/app-models/prod-model-complexity/dashboard/figures/eval-metrics.plotly.json"
|
| 68 |
+
],
|
| 69 |
+
"charts": [
|
| 70 |
+
"training-loss",
|
| 71 |
+
"eval-metrics"
|
| 72 |
+
]
|
| 73 |
+
},
|
| 74 |
+
{
|
| 75 |
+
"id": "learning_curves",
|
| 76 |
+
"title": "Learning Curves",
|
| 77 |
+
"status": "not_applicable",
|
| 78 |
+
"description": "Sample-size or checkpoint learning-curve artifacts for the domain.",
|
| 79 |
+
"files": [],
|
| 80 |
+
"reason": "The complexity benchmark is built around a fixed train_pool dataset rather than multiple prod-relevant train sizes."
|
| 81 |
+
},
|
| 82 |
+
{
|
| 83 |
+
"id": "cross_dataset",
|
| 84 |
+
"title": "Cross Dataset Evaluation",
|
| 85 |
+
"status": "available",
|
| 86 |
+
"description": "Evaluation rows produced on datasets outside the primary split.",
|
| 87 |
+
"files": [
|
| 88 |
+
"app/app-models/prod-model-complexity/dashboard/metrics/cross-dataset.json",
|
| 89 |
+
"app/app-models/prod-model-complexity/dashboard/figures/cross-dataset-f1.plotly.json"
|
| 90 |
+
],
|
| 91 |
+
"charts": [
|
| 92 |
+
"cross-dataset-f1"
|
| 93 |
+
]
|
| 94 |
+
},
|
| 95 |
+
{
|
| 96 |
+
"id": "confusion_matrix",
|
| 97 |
+
"title": "Confusion Matrix",
|
| 98 |
+
"status": "image_only",
|
| 99 |
+
"description": "Static confusion-matrix image assets copied into the dashboard bundle.",
|
| 100 |
+
"files": [
|
| 101 |
+
"app/app-models/prod-model-complexity/dashboard/confusion/cm-glove-bilstm-train-pool.png"
|
| 102 |
+
]
|
| 103 |
+
},
|
| 104 |
+
{
|
| 105 |
+
"id": "class_distribution",
|
| 106 |
+
"title": "Class Distribution",
|
| 107 |
+
"status": "missing",
|
| 108 |
+
"description": "Class and optional source-dataset distributions derived from explicit split inputs.",
|
| 109 |
+
"files": [],
|
| 110 |
+
"reason": "No class_distribution source was configured."
|
| 111 |
+
},
|
| 112 |
+
{
|
| 113 |
+
"id": "samples",
|
| 114 |
+
"title": "Prediction Samples",
|
| 115 |
+
"status": "available",
|
| 116 |
+
"description": "Prediction examples for qualitative inspection.",
|
| 117 |
+
"files": [
|
| 118 |
+
"app/app-models/prod-model-complexity/dashboard/samples/prediction-samples.json"
|
| 119 |
+
]
|
| 120 |
+
}
|
| 121 |
+
],
|
| 122 |
+
"selected_sources": [
|
| 123 |
+
{
|
| 124 |
+
"category": "metadata",
|
| 125 |
+
"path": "app/app-models/prod-model-complexity/model-config.yaml",
|
| 126 |
+
"reason": "Production model identity, runtime settings, and label mapping."
|
| 127 |
+
},
|
| 128 |
+
{
|
| 129 |
+
"category": "experiment_config",
|
| 130 |
+
"path": "complexity/outputs/metrics/cfg_20260310_2125.json",
|
| 131 |
+
"reason": "Experiment or evaluation config attached for traceability."
|
| 132 |
+
},
|
| 133 |
+
{
|
| 134 |
+
"category": "primary_evaluation",
|
| 135 |
+
"path": "complexity/models/glove_bilstm_complexity_train_pool_20260307_163358/runs/metrics_latest.json",
|
| 136 |
+
"reason": "Primary validation/test metrics for the production model."
|
| 137 |
+
},
|
| 138 |
+
{
|
| 139 |
+
"category": "benchmark",
|
| 140 |
+
"path": "complexity/outputs/metrics/results_complexity-classification.csv",
|
| 141 |
+
"reason": "Benchmark rows used to compare the production model against peers."
|
| 142 |
+
},
|
| 143 |
+
{
|
| 144 |
+
"category": "training_history",
|
| 145 |
+
"path": "complexity/logs/complexity-classification_GloVe_BiLSTM_[train_pool].log",
|
| 146 |
+
"reason": "Training-history artifact used to build learning and loss curves."
|
| 147 |
+
},
|
| 148 |
+
{
|
| 149 |
+
"category": "cross_dataset",
|
| 150 |
+
"path": "complexity/outputs/cross_dataset_eval/summary_latest.csv",
|
| 151 |
+
"reason": "Cross-dataset evaluation summary rows."
|
| 152 |
+
},
|
| 153 |
+
{
|
| 154 |
+
"category": "class_distribution",
|
| 155 |
+
"path": "complexity/data/train_pool_train.parquet",
|
| 156 |
+
"reason": "Explicit split artifacts used to derive class distributions."
|
| 157 |
+
},
|
| 158 |
+
{
|
| 159 |
+
"category": "class_distribution",
|
| 160 |
+
"path": "complexity/data/train_pool_val.parquet",
|
| 161 |
+
"reason": "Explicit split artifacts used to derive class distributions."
|
| 162 |
+
},
|
| 163 |
+
{
|
| 164 |
+
"category": "class_distribution",
|
| 165 |
+
"path": "complexity/data/train_pool_test.parquet",
|
| 166 |
+
"reason": "Explicit split artifacts used to derive class distributions."
|
| 167 |
+
},
|
| 168 |
+
{
|
| 169 |
+
"category": "prediction_samples",
|
| 170 |
+
"path": "complexity/outputs/metrics/manual_example_predictions.csv",
|
| 171 |
+
"reason": "Prediction samples used for qualitative dashboard review."
|
| 172 |
+
},
|
| 173 |
+
{
|
| 174 |
+
"category": "confusion_matrix",
|
| 175 |
+
"path": "complexity/outputs/plots/confusion_matrices/cm_glove_bilstm_train_pool.png",
|
| 176 |
+
"reason": "Confusion-matrix image copied into the dashboard bundle."
|
| 177 |
+
}
|
| 178 |
+
],
|
| 179 |
+
"notes": [
|
| 180 |
+
"Primary evaluation uses the production GloVe BiLSTM metrics_latest.json referenced by prod-model-complexity/model-config.yaml.",
|
| 181 |
+
"Complexity is the richest dashboard domain in the repo: internal benchmark data, external evaluation summaries, split parquets, manual sample predictions, and prod-model training logs are all present.",
|
| 182 |
+
"Confusion matrices exist only as saved images for the production model; no numeric matrix artifact was found.",
|
| 183 |
+
"class_distribution parsing failed for complexity/data/train_pool_train.parquet: Parquet dashboard sources require the optional pandas dependency.",
|
| 184 |
+
"class_distribution parsing failed for complexity/data/train_pool_val.parquet: Parquet dashboard sources require the optional pandas dependency.",
|
| 185 |
+
"class_distribution parsing failed for complexity/data/train_pool_test.parquet: Parquet dashboard sources require the optional pandas dependency."
|
| 186 |
+
]
|
| 187 |
+
}
|
dashboard/distributions/class-distribution.json
ADDED
|
@@ -0,0 +1,78 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"overall": [
|
| 3 |
+
{
|
| 4 |
+
"split": "overall",
|
| 5 |
+
"label": "A1-A2",
|
| 6 |
+
"count": 13598,
|
| 7 |
+
"share": 0.304049
|
| 8 |
+
},
|
| 9 |
+
{
|
| 10 |
+
"split": "overall",
|
| 11 |
+
"label": "B1-B2",
|
| 12 |
+
"count": 24366,
|
| 13 |
+
"share": 0.54482
|
| 14 |
+
},
|
| 15 |
+
{
|
| 16 |
+
"split": "overall",
|
| 17 |
+
"label": "C1-C2",
|
| 18 |
+
"count": 6759,
|
| 19 |
+
"share": 0.15113
|
| 20 |
+
}
|
| 21 |
+
],
|
| 22 |
+
"splits": [
|
| 23 |
+
{
|
| 24 |
+
"split": "train",
|
| 25 |
+
"label": "A1-A2",
|
| 26 |
+
"count": 9518,
|
| 27 |
+
"share": 0.304041
|
| 28 |
+
},
|
| 29 |
+
{
|
| 30 |
+
"split": "train",
|
| 31 |
+
"label": "B1-B2",
|
| 32 |
+
"count": 17056,
|
| 33 |
+
"share": 0.544833
|
| 34 |
+
},
|
| 35 |
+
{
|
| 36 |
+
"split": "train",
|
| 37 |
+
"label": "C1-C2",
|
| 38 |
+
"count": 4731,
|
| 39 |
+
"share": 0.151126
|
| 40 |
+
},
|
| 41 |
+
{
|
| 42 |
+
"split": "val",
|
| 43 |
+
"label": "A1-A2",
|
| 44 |
+
"count": 2040,
|
| 45 |
+
"share": 0.304069
|
| 46 |
+
},
|
| 47 |
+
{
|
| 48 |
+
"split": "val",
|
| 49 |
+
"label": "B1-B2",
|
| 50 |
+
"count": 3655,
|
| 51 |
+
"share": 0.544791
|
| 52 |
+
},
|
| 53 |
+
{
|
| 54 |
+
"split": "val",
|
| 55 |
+
"label": "C1-C2",
|
| 56 |
+
"count": 1014,
|
| 57 |
+
"share": 0.15114
|
| 58 |
+
},
|
| 59 |
+
{
|
| 60 |
+
"split": "test",
|
| 61 |
+
"label": "A1-A2",
|
| 62 |
+
"count": 2040,
|
| 63 |
+
"share": 0.304069
|
| 64 |
+
},
|
| 65 |
+
{
|
| 66 |
+
"split": "test",
|
| 67 |
+
"label": "B1-B2",
|
| 68 |
+
"count": 3655,
|
| 69 |
+
"share": 0.544791
|
| 70 |
+
},
|
| 71 |
+
{
|
| 72 |
+
"split": "test",
|
| 73 |
+
"label": "C1-C2",
|
| 74 |
+
"count": 1014,
|
| 75 |
+
"share": 0.15114
|
| 76 |
+
}
|
| 77 |
+
]
|
| 78 |
+
}
|
dashboard/distributions/source-dataset-distribution.json
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"overall": [
|
| 3 |
+
{
|
| 4 |
+
"split": "overall",
|
| 5 |
+
"source_dataset": "asap-2-0",
|
| 6 |
+
"count": 24728,
|
| 7 |
+
"share": 0.552915
|
| 8 |
+
},
|
| 9 |
+
{
|
| 10 |
+
"split": "overall",
|
| 11 |
+
"source_dataset": "uk-key-stage-readability-for-english-texts",
|
| 12 |
+
"count": 19995,
|
| 13 |
+
"share": 0.447085
|
| 14 |
+
}
|
| 15 |
+
],
|
| 16 |
+
"splits": [
|
| 17 |
+
{
|
| 18 |
+
"split": "train",
|
| 19 |
+
"source_dataset": "asap-2-0",
|
| 20 |
+
"count": 17363,
|
| 21 |
+
"share": 0.55464
|
| 22 |
+
},
|
| 23 |
+
{
|
| 24 |
+
"split": "train",
|
| 25 |
+
"source_dataset": "uk-key-stage-readability-for-english-texts",
|
| 26 |
+
"count": 13942,
|
| 27 |
+
"share": 0.44536
|
| 28 |
+
},
|
| 29 |
+
{
|
| 30 |
+
"split": "val",
|
| 31 |
+
"source_dataset": "asap-2-0",
|
| 32 |
+
"count": 3684,
|
| 33 |
+
"share": 0.549113
|
| 34 |
+
},
|
| 35 |
+
{
|
| 36 |
+
"split": "val",
|
| 37 |
+
"source_dataset": "uk-key-stage-readability-for-english-texts",
|
| 38 |
+
"count": 3025,
|
| 39 |
+
"share": 0.450887
|
| 40 |
+
},
|
| 41 |
+
{
|
| 42 |
+
"split": "test",
|
| 43 |
+
"source_dataset": "asap-2-0",
|
| 44 |
+
"count": 3681,
|
| 45 |
+
"share": 0.548666
|
| 46 |
+
},
|
| 47 |
+
{
|
| 48 |
+
"split": "test",
|
| 49 |
+
"source_dataset": "uk-key-stage-readability-for-english-texts",
|
| 50 |
+
"count": 3028,
|
| 51 |
+
"share": 0.451334
|
| 52 |
+
}
|
| 53 |
+
]
|
| 54 |
+
}
|
dashboard/figures/benchmark-test-f1.plotly.json
ADDED
|
@@ -0,0 +1,77 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"data": [
|
| 3 |
+
{
|
| 4 |
+
"type": "bar",
|
| 5 |
+
"orientation": "v",
|
| 6 |
+
"x": [
|
| 7 |
+
"DeBERTaV3 train pool",
|
| 8 |
+
"DistilBERT train pool",
|
| 9 |
+
"RoBERTa train pool",
|
| 10 |
+
"TF-IDF + SVC [train pool]",
|
| 11 |
+
"TF-IDF + LogReg [train pool]",
|
| 12 |
+
"GloVe BiLSTM [train pool]",
|
| 13 |
+
"GloVe CNN [train pool]",
|
| 14 |
+
"GloVe MLP [train pool]",
|
| 15 |
+
"TF-IDF + XGBoost [train pool]",
|
| 16 |
+
"Majority Class [train pool]"
|
| 17 |
+
],
|
| 18 |
+
"y": [
|
| 19 |
+
0.7510812492382728,
|
| 20 |
+
0.7430667400906253,
|
| 21 |
+
0.7297663021875974,
|
| 22 |
+
0.6686789738725382,
|
| 23 |
+
0.6607874127954448,
|
| 24 |
+
0.6551661294897166,
|
| 25 |
+
0.6388266463257223,
|
| 26 |
+
0.5964460940300637,
|
| 27 |
+
0.534220517963146,
|
| 28 |
+
0.2351087096359192
|
| 29 |
+
],
|
| 30 |
+
"marker": {
|
| 31 |
+
"color": "#0f766e"
|
| 32 |
+
},
|
| 33 |
+
"text": [
|
| 34 |
+
"0.751",
|
| 35 |
+
"0.743",
|
| 36 |
+
"0.730",
|
| 37 |
+
"0.669",
|
| 38 |
+
"0.661",
|
| 39 |
+
"0.655",
|
| 40 |
+
"0.639",
|
| 41 |
+
"0.596",
|
| 42 |
+
"0.534",
|
| 43 |
+
"0.235"
|
| 44 |
+
],
|
| 45 |
+
"textposition": "auto"
|
| 46 |
+
}
|
| 47 |
+
],
|
| 48 |
+
"layout": {
|
| 49 |
+
"title": {
|
| 50 |
+
"text": "Benchmark Comparison"
|
| 51 |
+
},
|
| 52 |
+
"paper_bgcolor": "white",
|
| 53 |
+
"plot_bgcolor": "white",
|
| 54 |
+
"font": {
|
| 55 |
+
"family": "Arial, sans-serif",
|
| 56 |
+
"size": 12
|
| 57 |
+
},
|
| 58 |
+
"margin": {
|
| 59 |
+
"l": 60,
|
| 60 |
+
"r": 20,
|
| 61 |
+
"t": 60,
|
| 62 |
+
"b": 60
|
| 63 |
+
},
|
| 64 |
+
"xaxis": {
|
| 65 |
+
"title": {
|
| 66 |
+
"text": "Model"
|
| 67 |
+
},
|
| 68 |
+
"automargin": true
|
| 69 |
+
},
|
| 70 |
+
"yaxis": {
|
| 71 |
+
"title": {
|
| 72 |
+
"text": "F1 Macro"
|
| 73 |
+
},
|
| 74 |
+
"automargin": true
|
| 75 |
+
}
|
| 76 |
+
}
|
| 77 |
+
}
|
dashboard/figures/class-distribution.plotly.json
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"data": [
|
| 3 |
+
{
|
| 4 |
+
"type": "bar",
|
| 5 |
+
"orientation": "v",
|
| 6 |
+
"x": [
|
| 7 |
+
"A1-A2",
|
| 8 |
+
"B1-B2",
|
| 9 |
+
"C1-C2"
|
| 10 |
+
],
|
| 11 |
+
"y": [
|
| 12 |
+
13598,
|
| 13 |
+
24366,
|
| 14 |
+
6759
|
| 15 |
+
],
|
| 16 |
+
"marker": {
|
| 17 |
+
"color": "#1d4ed8"
|
| 18 |
+
},
|
| 19 |
+
"text": [
|
| 20 |
+
"13598",
|
| 21 |
+
"24366",
|
| 22 |
+
"6759"
|
| 23 |
+
],
|
| 24 |
+
"textposition": "auto"
|
| 25 |
+
}
|
| 26 |
+
],
|
| 27 |
+
"layout": {
|
| 28 |
+
"title": {
|
| 29 |
+
"text": "Complexity Overall Class Distribution"
|
| 30 |
+
},
|
| 31 |
+
"paper_bgcolor": "white",
|
| 32 |
+
"plot_bgcolor": "white",
|
| 33 |
+
"font": {
|
| 34 |
+
"family": "Arial, sans-serif",
|
| 35 |
+
"size": 12
|
| 36 |
+
},
|
| 37 |
+
"margin": {
|
| 38 |
+
"l": 60,
|
| 39 |
+
"r": 20,
|
| 40 |
+
"t": 60,
|
| 41 |
+
"b": 60
|
| 42 |
+
},
|
| 43 |
+
"xaxis": {
|
| 44 |
+
"title": {
|
| 45 |
+
"text": "Class"
|
| 46 |
+
},
|
| 47 |
+
"automargin": true
|
| 48 |
+
},
|
| 49 |
+
"yaxis": {
|
| 50 |
+
"title": {
|
| 51 |
+
"text": "Count"
|
| 52 |
+
},
|
| 53 |
+
"automargin": true
|
| 54 |
+
}
|
| 55 |
+
}
|
| 56 |
+
}
|
dashboard/figures/cross-dataset-f1.plotly.json
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"data": [
|
| 3 |
+
{
|
| 4 |
+
"type": "bar",
|
| 5 |
+
"orientation": "v",
|
| 6 |
+
"x": [
|
| 7 |
+
"asap_aes",
|
| 8 |
+
"cambridge",
|
| 9 |
+
"cerf",
|
| 10 |
+
"commonlit",
|
| 11 |
+
"one_stop"
|
| 12 |
+
],
|
| 13 |
+
"y": [
|
| 14 |
+
0.355652614304878,
|
| 15 |
+
0.5316323731138546,
|
| 16 |
+
0.6026179931249024,
|
| 17 |
+
0.33112328650236905,
|
| 18 |
+
0.26832434123074517
|
| 19 |
+
],
|
| 20 |
+
"marker": {
|
| 21 |
+
"color": "#b45309"
|
| 22 |
+
},
|
| 23 |
+
"text": [
|
| 24 |
+
"0.356",
|
| 25 |
+
"0.532",
|
| 26 |
+
"0.603",
|
| 27 |
+
"0.331",
|
| 28 |
+
"0.268"
|
| 29 |
+
],
|
| 30 |
+
"textposition": "auto"
|
| 31 |
+
}
|
| 32 |
+
],
|
| 33 |
+
"layout": {
|
| 34 |
+
"title": {
|
| 35 |
+
"text": "Cross Dataset Evaluation"
|
| 36 |
+
},
|
| 37 |
+
"paper_bgcolor": "white",
|
| 38 |
+
"plot_bgcolor": "white",
|
| 39 |
+
"font": {
|
| 40 |
+
"family": "Arial, sans-serif",
|
| 41 |
+
"size": 12
|
| 42 |
+
},
|
| 43 |
+
"margin": {
|
| 44 |
+
"l": 60,
|
| 45 |
+
"r": 20,
|
| 46 |
+
"t": 60,
|
| 47 |
+
"b": 60
|
| 48 |
+
},
|
| 49 |
+
"xaxis": {
|
| 50 |
+
"title": {
|
| 51 |
+
"text": "Dataset"
|
| 52 |
+
},
|
| 53 |
+
"automargin": true
|
| 54 |
+
},
|
| 55 |
+
"yaxis": {
|
| 56 |
+
"title": {
|
| 57 |
+
"text": "F1 Macro"
|
| 58 |
+
},
|
| 59 |
+
"automargin": true
|
| 60 |
+
}
|
| 61 |
+
}
|
| 62 |
+
}
|
dashboard/figures/eval-metrics.plotly.json
ADDED
|
@@ -0,0 +1,65 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"data": [
|
| 3 |
+
{
|
| 4 |
+
"type": "scatter",
|
| 5 |
+
"mode": "lines+markers",
|
| 6 |
+
"name": "Validation F1 Macro",
|
| 7 |
+
"x": [
|
| 8 |
+
1,
|
| 9 |
+
2,
|
| 10 |
+
3,
|
| 11 |
+
4,
|
| 12 |
+
5,
|
| 13 |
+
6
|
| 14 |
+
],
|
| 15 |
+
"y": [
|
| 16 |
+
0.6324,
|
| 17 |
+
0.655,
|
| 18 |
+
0.6605,
|
| 19 |
+
0.6473,
|
| 20 |
+
0.6302,
|
| 21 |
+
0.6283
|
| 22 |
+
],
|
| 23 |
+
"line": {
|
| 24 |
+
"color": "#0f766e",
|
| 25 |
+
"width": 2
|
| 26 |
+
},
|
| 27 |
+
"marker": {
|
| 28 |
+
"size": 6
|
| 29 |
+
}
|
| 30 |
+
}
|
| 31 |
+
],
|
| 32 |
+
"layout": {
|
| 33 |
+
"title": {
|
| 34 |
+
"text": "Evaluation Metrics"
|
| 35 |
+
},
|
| 36 |
+
"paper_bgcolor": "white",
|
| 37 |
+
"plot_bgcolor": "white",
|
| 38 |
+
"font": {
|
| 39 |
+
"family": "Arial, sans-serif",
|
| 40 |
+
"size": 12
|
| 41 |
+
},
|
| 42 |
+
"margin": {
|
| 43 |
+
"l": 60,
|
| 44 |
+
"r": 20,
|
| 45 |
+
"t": 60,
|
| 46 |
+
"b": 60
|
| 47 |
+
},
|
| 48 |
+
"xaxis": {
|
| 49 |
+
"title": {
|
| 50 |
+
"text": "Epoch"
|
| 51 |
+
},
|
| 52 |
+
"automargin": true
|
| 53 |
+
},
|
| 54 |
+
"yaxis": {
|
| 55 |
+
"title": {
|
| 56 |
+
"text": "Score"
|
| 57 |
+
},
|
| 58 |
+
"automargin": true
|
| 59 |
+
},
|
| 60 |
+
"legend": {
|
| 61 |
+
"orientation": "h",
|
| 62 |
+
"y": 1.12
|
| 63 |
+
}
|
| 64 |
+
}
|
| 65 |
+
}
|
dashboard/figures/source-dataset-distribution.plotly.json
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"data": [
|
| 3 |
+
{
|
| 4 |
+
"type": "bar",
|
| 5 |
+
"orientation": "v",
|
| 6 |
+
"x": [
|
| 7 |
+
"asap-2-0",
|
| 8 |
+
"uk-key-stage-readability-for-english-texts"
|
| 9 |
+
],
|
| 10 |
+
"y": [
|
| 11 |
+
24728,
|
| 12 |
+
19995
|
| 13 |
+
],
|
| 14 |
+
"marker": {
|
| 15 |
+
"color": "#475569"
|
| 16 |
+
},
|
| 17 |
+
"text": [
|
| 18 |
+
"24728",
|
| 19 |
+
"19995"
|
| 20 |
+
],
|
| 21 |
+
"textposition": "auto"
|
| 22 |
+
}
|
| 23 |
+
],
|
| 24 |
+
"layout": {
|
| 25 |
+
"title": {
|
| 26 |
+
"text": "Complexity Overall Source Dataset Distribution"
|
| 27 |
+
},
|
| 28 |
+
"paper_bgcolor": "white",
|
| 29 |
+
"plot_bgcolor": "white",
|
| 30 |
+
"font": {
|
| 31 |
+
"family": "Arial, sans-serif",
|
| 32 |
+
"size": 12
|
| 33 |
+
},
|
| 34 |
+
"margin": {
|
| 35 |
+
"l": 60,
|
| 36 |
+
"r": 20,
|
| 37 |
+
"t": 60,
|
| 38 |
+
"b": 60
|
| 39 |
+
},
|
| 40 |
+
"xaxis": {
|
| 41 |
+
"title": {
|
| 42 |
+
"text": "Source Dataset"
|
| 43 |
+
},
|
| 44 |
+
"automargin": true
|
| 45 |
+
},
|
| 46 |
+
"yaxis": {
|
| 47 |
+
"title": {
|
| 48 |
+
"text": "Count"
|
| 49 |
+
},
|
| 50 |
+
"automargin": true
|
| 51 |
+
}
|
| 52 |
+
}
|
| 53 |
+
}
|
dashboard/figures/training-loss.plotly.json
ADDED
|
@@ -0,0 +1,93 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"data": [
|
| 3 |
+
{
|
| 4 |
+
"type": "scatter",
|
| 5 |
+
"mode": "lines+markers",
|
| 6 |
+
"name": "Train Loss",
|
| 7 |
+
"x": [
|
| 8 |
+
1,
|
| 9 |
+
2,
|
| 10 |
+
3,
|
| 11 |
+
4,
|
| 12 |
+
5,
|
| 13 |
+
6
|
| 14 |
+
],
|
| 15 |
+
"y": [
|
| 16 |
+
0.8229,
|
| 17 |
+
0.488,
|
| 18 |
+
0.2493,
|
| 19 |
+
0.116,
|
| 20 |
+
0.0496,
|
| 21 |
+
0.0151
|
| 22 |
+
],
|
| 23 |
+
"line": {
|
| 24 |
+
"color": "#0f766e",
|
| 25 |
+
"width": 2
|
| 26 |
+
},
|
| 27 |
+
"marker": {
|
| 28 |
+
"size": 6
|
| 29 |
+
}
|
| 30 |
+
},
|
| 31 |
+
{
|
| 32 |
+
"type": "scatter",
|
| 33 |
+
"mode": "lines+markers",
|
| 34 |
+
"name": "Validation Loss",
|
| 35 |
+
"x": [
|
| 36 |
+
1,
|
| 37 |
+
2,
|
| 38 |
+
3,
|
| 39 |
+
4,
|
| 40 |
+
5,
|
| 41 |
+
6
|
| 42 |
+
],
|
| 43 |
+
"y": [
|
| 44 |
+
0.7119,
|
| 45 |
+
0.6723,
|
| 46 |
+
0.8044,
|
| 47 |
+
1.2446,
|
| 48 |
+
1.5788,
|
| 49 |
+
1.9807
|
| 50 |
+
],
|
| 51 |
+
"line": {
|
| 52 |
+
"color": "#b45309",
|
| 53 |
+
"width": 2
|
| 54 |
+
},
|
| 55 |
+
"marker": {
|
| 56 |
+
"size": 6
|
| 57 |
+
}
|
| 58 |
+
}
|
| 59 |
+
],
|
| 60 |
+
"layout": {
|
| 61 |
+
"title": {
|
| 62 |
+
"text": "Training Loss"
|
| 63 |
+
},
|
| 64 |
+
"paper_bgcolor": "white",
|
| 65 |
+
"plot_bgcolor": "white",
|
| 66 |
+
"font": {
|
| 67 |
+
"family": "Arial, sans-serif",
|
| 68 |
+
"size": 12
|
| 69 |
+
},
|
| 70 |
+
"margin": {
|
| 71 |
+
"l": 60,
|
| 72 |
+
"r": 20,
|
| 73 |
+
"t": 60,
|
| 74 |
+
"b": 60
|
| 75 |
+
},
|
| 76 |
+
"xaxis": {
|
| 77 |
+
"title": {
|
| 78 |
+
"text": "Epoch"
|
| 79 |
+
},
|
| 80 |
+
"automargin": true
|
| 81 |
+
},
|
| 82 |
+
"yaxis": {
|
| 83 |
+
"title": {
|
| 84 |
+
"text": "Loss"
|
| 85 |
+
},
|
| 86 |
+
"automargin": true
|
| 87 |
+
},
|
| 88 |
+
"legend": {
|
| 89 |
+
"orientation": "h",
|
| 90 |
+
"y": 1.12
|
| 91 |
+
}
|
| 92 |
+
}
|
| 93 |
+
}
|
dashboard/metadata/experiment-config.json
ADDED
|
@@ -0,0 +1,75 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"seed": 42,
|
| 3 |
+
"data_dir": "data",
|
| 4 |
+
"output_dir": "outputs",
|
| 5 |
+
"model_dir": "models",
|
| 6 |
+
"log_dir": "logs",
|
| 7 |
+
"task": "complexity-classification",
|
| 8 |
+
"text_col": "text",
|
| 9 |
+
"label_col": "label",
|
| 10 |
+
"num_labels": 3,
|
| 11 |
+
"encoded_label_col": "label_enc",
|
| 12 |
+
"train_pool_key": "train_pool",
|
| 13 |
+
"train_pool_datasets": [
|
| 14 |
+
"uk_key_stage",
|
| 15 |
+
"asap2"
|
| 16 |
+
],
|
| 17 |
+
"external_eval_dataset_keys": [
|
| 18 |
+
"one_stop",
|
| 19 |
+
"commonlit",
|
| 20 |
+
"cerf",
|
| 21 |
+
"cambridge",
|
| 22 |
+
"asap_aes"
|
| 23 |
+
],
|
| 24 |
+
"split_artifact_path": "data/complexity_splits.pkl",
|
| 25 |
+
"experiment_dataset_slug": "complexity",
|
| 26 |
+
"run_data_prep": false,
|
| 27 |
+
"run_transformer_eval": false,
|
| 28 |
+
"deberta_execution_mode": "legacy_eval",
|
| 29 |
+
"dl_train_mode": false,
|
| 30 |
+
"prefer_cached_internal_metrics": true,
|
| 31 |
+
"test_size": 0.15,
|
| 32 |
+
"val_size": 0.15,
|
| 33 |
+
"use_cv": true,
|
| 34 |
+
"cv_folds": 5,
|
| 35 |
+
"tfidf_word_ngrams": [
|
| 36 |
+
1,
|
| 37 |
+
2
|
| 38 |
+
],
|
| 39 |
+
"use_char_ngrams": true,
|
| 40 |
+
"class_weight": "balanced",
|
| 41 |
+
"embedding_model": "fasttext-wiki-news-subwords-300",
|
| 42 |
+
"embedding_dim": 300,
|
| 43 |
+
"vocab_size": 50000,
|
| 44 |
+
"max_seq_len": 256,
|
| 45 |
+
"pad_token": "<PAD>",
|
| 46 |
+
"unk_token": "<UNK>",
|
| 47 |
+
"dl_batch_size": 64,
|
| 48 |
+
"dl_epochs": 20,
|
| 49 |
+
"dl_lr": 0.001,
|
| 50 |
+
"dl_patience": 3,
|
| 51 |
+
"dropout": 0.3,
|
| 52 |
+
"cnn_num_filters": 128,
|
| 53 |
+
"cnn_kernel_sizes": [
|
| 54 |
+
2,
|
| 55 |
+
3,
|
| 56 |
+
4
|
| 57 |
+
],
|
| 58 |
+
"lstm_hidden_dim": 128,
|
| 59 |
+
"lstm_num_layers": 2,
|
| 60 |
+
"trf_model": "distilbert-base-uncased",
|
| 61 |
+
"max_len": 256,
|
| 62 |
+
"batch_size": 8,
|
| 63 |
+
"epochs": 3,
|
| 64 |
+
"lr": 2e-05,
|
| 65 |
+
"device": "mps",
|
| 66 |
+
"output_paths": {
|
| 67 |
+
"eda": "outputs/eda",
|
| 68 |
+
"metrics": "outputs/metrics",
|
| 69 |
+
"runs": "outputs/runs",
|
| 70 |
+
"plots_confusion": "outputs/plots/confusion_matrices",
|
| 71 |
+
"plots_comparison": "outputs/plots/comparisons",
|
| 72 |
+
"plots_learning": "outputs/plots/learning_curves",
|
| 73 |
+
"plots_history": "outputs/plots/histories"
|
| 74 |
+
}
|
| 75 |
+
}
|
dashboard/metadata/model.json
ADDED
|
@@ -0,0 +1,88 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"model_id": "complexity-bilstm-final-v1",
|
| 3 |
+
"domain": "complexity",
|
| 4 |
+
"display_name": "Complexity BiLSTM Final v1",
|
| 5 |
+
"description": "Final BiLSTM with additive attention for CEFR-based text complexity classification.",
|
| 6 |
+
"is_active": true,
|
| 7 |
+
"priority": 5,
|
| 8 |
+
"framework": {
|
| 9 |
+
"type": "pytorch",
|
| 10 |
+
"task": "sequence-classification",
|
| 11 |
+
"library": "torch",
|
| 12 |
+
"architecture": "bilstm-attention",
|
| 13 |
+
"embeddings": "fasttext-wiki-news-subwords-300"
|
| 14 |
+
},
|
| 15 |
+
"artifacts": {
|
| 16 |
+
"weights": [
|
| 17 |
+
"models/glove_bilstm_complexity_train_pool_20260307_163358/best_model/best.pt"
|
| 18 |
+
],
|
| 19 |
+
"tokenizer": [],
|
| 20 |
+
"config": [
|
| 21 |
+
"outputs/metrics/cfg_20260310_2125.json",
|
| 22 |
+
"models/glove_bilstm_complexity_train_pool_20260307_163358/runs/metrics_latest.json"
|
| 23 |
+
],
|
| 24 |
+
"vocabulary": [
|
| 25 |
+
"models/shared/vocab.pkl"
|
| 26 |
+
],
|
| 27 |
+
"label_map_file": "models/shared/class2id.json",
|
| 28 |
+
"label_classes_file": "models/shared/label_classes.json",
|
| 29 |
+
"label_encoder_file": "models/shared/label_encoder.pkl"
|
| 30 |
+
},
|
| 31 |
+
"model": {
|
| 32 |
+
"embedding_dim": 300,
|
| 33 |
+
"hidden_dim": 128,
|
| 34 |
+
"num_layers": 2,
|
| 35 |
+
"dropout": 0.3,
|
| 36 |
+
"bidirectional": true,
|
| 37 |
+
"attention": "additive",
|
| 38 |
+
"vocab_size": 50000,
|
| 39 |
+
"pad_token": "<PAD>",
|
| 40 |
+
"unk_token": "<UNK>"
|
| 41 |
+
},
|
| 42 |
+
"runtime": {
|
| 43 |
+
"max_sequence_length": 256,
|
| 44 |
+
"truncation": true,
|
| 45 |
+
"padding": true,
|
| 46 |
+
"batch_size": 1,
|
| 47 |
+
"device": "cpu",
|
| 48 |
+
"preprocessing": "normalize_text + preprocess_from_normalized + texts_to_sequences"
|
| 49 |
+
},
|
| 50 |
+
"inference": {
|
| 51 |
+
"return_probabilities": true,
|
| 52 |
+
"confidence_method": "softmax_max"
|
| 53 |
+
},
|
| 54 |
+
"ui": {
|
| 55 |
+
"domain_display_name": "Text Complexity",
|
| 56 |
+
"color_token": "complexity",
|
| 57 |
+
"group": "complexity-core"
|
| 58 |
+
},
|
| 59 |
+
"labels": {
|
| 60 |
+
"type": "single-label-classification",
|
| 61 |
+
"classes": [
|
| 62 |
+
{
|
| 63 |
+
"id": 0,
|
| 64 |
+
"name": "A1-A2",
|
| 65 |
+
"display_name": "A1-A2"
|
| 66 |
+
},
|
| 67 |
+
{
|
| 68 |
+
"id": 1,
|
| 69 |
+
"name": "B1-B2",
|
| 70 |
+
"display_name": "B1-B2"
|
| 71 |
+
},
|
| 72 |
+
{
|
| 73 |
+
"id": 2,
|
| 74 |
+
"name": "C1-C2",
|
| 75 |
+
"display_name": "C1-C2"
|
| 76 |
+
}
|
| 77 |
+
]
|
| 78 |
+
},
|
| 79 |
+
"prod_model_dir": "app/app-models/prod-model-complexity",
|
| 80 |
+
"artifacts_present": [
|
| 81 |
+
"app/app-models/prod-model-complexity/.DS_Store",
|
| 82 |
+
"app/app-models/prod-model-complexity/best.pt",
|
| 83 |
+
"app/app-models/prod-model-complexity/label_classes.json",
|
| 84 |
+
"app/app-models/prod-model-complexity/model-config.yaml",
|
| 85 |
+
"app/app-models/prod-model-complexity/test_inference.ipynb",
|
| 86 |
+
"app/app-models/prod-model-complexity/vocab.pkl"
|
| 87 |
+
]
|
| 88 |
+
}
|
dashboard/metrics/benchmark-test.json
ADDED
|
@@ -0,0 +1,122 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
[
|
| 2 |
+
{
|
| 3 |
+
"model": "DeBERTaV3_train_pool",
|
| 4 |
+
"display_name": "DeBERTaV3 train pool",
|
| 5 |
+
"family": "transformer",
|
| 6 |
+
"split": "test",
|
| 7 |
+
"accuracy": 0.7791026978685348,
|
| 8 |
+
"f1_macro": 0.7510812492382728,
|
| 9 |
+
"f1_weighted": 0.7760556709086348,
|
| 10 |
+
"loss": 0.5336738107592773,
|
| 11 |
+
"source_file": "complexity/outputs/metrics/results_complexity-classification.csv",
|
| 12 |
+
"is_production": false
|
| 13 |
+
},
|
| 14 |
+
{
|
| 15 |
+
"model": "DistilBERT_train_pool",
|
| 16 |
+
"display_name": "DistilBERT train pool",
|
| 17 |
+
"family": "transformer",
|
| 18 |
+
"split": "test",
|
| 19 |
+
"accuracy": 0.7746310925622298,
|
| 20 |
+
"f1_macro": 0.7430667400906253,
|
| 21 |
+
"f1_weighted": 0.7720896637566615,
|
| 22 |
+
"loss": null,
|
| 23 |
+
"source_file": "complexity/outputs/metrics/results_complexity-classification.csv",
|
| 24 |
+
"is_production": false
|
| 25 |
+
},
|
| 26 |
+
{
|
| 27 |
+
"model": "RoBERTa_train_pool",
|
| 28 |
+
"display_name": "RoBERTa train pool",
|
| 29 |
+
"family": "transformer",
|
| 30 |
+
"split": "test",
|
| 31 |
+
"accuracy": 0.7676255775823521,
|
| 32 |
+
"f1_macro": 0.7297663021875974,
|
| 33 |
+
"f1_weighted": 0.7644717465447768,
|
| 34 |
+
"loss": null,
|
| 35 |
+
"source_file": "complexity/outputs/metrics/results_complexity-classification.csv",
|
| 36 |
+
"is_production": false
|
| 37 |
+
},
|
| 38 |
+
{
|
| 39 |
+
"model": "TF-IDF + SVC [train_pool]",
|
| 40 |
+
"display_name": "TF-IDF + SVC [train pool]",
|
| 41 |
+
"family": "classical",
|
| 42 |
+
"split": "test",
|
| 43 |
+
"accuracy": 0.7002533909673573,
|
| 44 |
+
"f1_macro": 0.6686789738725382,
|
| 45 |
+
"f1_weighted": 0.699786931830328,
|
| 46 |
+
"loss": null,
|
| 47 |
+
"source_file": "complexity/outputs/metrics/results_complexity-classification.csv",
|
| 48 |
+
"is_production": false
|
| 49 |
+
},
|
| 50 |
+
{
|
| 51 |
+
"model": "TF-IDF + LogReg [train_pool]",
|
| 52 |
+
"display_name": "TF-IDF + LogReg [train pool]",
|
| 53 |
+
"family": "classical",
|
| 54 |
+
"split": "test",
|
| 55 |
+
"accuracy": 0.6835593978238188,
|
| 56 |
+
"f1_macro": 0.6607874127954448,
|
| 57 |
+
"f1_weighted": 0.6863970572448843,
|
| 58 |
+
"loss": null,
|
| 59 |
+
"source_file": "complexity/outputs/metrics/results_complexity-classification.csv",
|
| 60 |
+
"is_production": false
|
| 61 |
+
},
|
| 62 |
+
{
|
| 63 |
+
"model": "GloVe BiLSTM [train_pool]",
|
| 64 |
+
"display_name": "GloVe BiLSTM [train pool]",
|
| 65 |
+
"family": "deep",
|
| 66 |
+
"split": "test",
|
| 67 |
+
"accuracy": 0.6926516619466389,
|
| 68 |
+
"f1_macro": 0.6551661294897166,
|
| 69 |
+
"f1_weighted": 0.6923209903034657,
|
| 70 |
+
"loss": null,
|
| 71 |
+
"source_file": "complexity/outputs/metrics/results_complexity-classification.csv",
|
| 72 |
+
"is_production": true
|
| 73 |
+
},
|
| 74 |
+
{
|
| 75 |
+
"model": "GloVe CNN [train_pool]",
|
| 76 |
+
"display_name": "GloVe CNN [train pool]",
|
| 77 |
+
"family": "deep",
|
| 78 |
+
"split": "test",
|
| 79 |
+
"accuracy": 0.6795349530481443,
|
| 80 |
+
"f1_macro": 0.6388266463257223,
|
| 81 |
+
"f1_weighted": 0.6766999349479854,
|
| 82 |
+
"loss": null,
|
| 83 |
+
"source_file": "complexity/outputs/metrics/results_complexity-classification.csv",
|
| 84 |
+
"is_production": false
|
| 85 |
+
},
|
| 86 |
+
{
|
| 87 |
+
"model": "GloVe MLP [train_pool]",
|
| 88 |
+
"display_name": "GloVe MLP [train pool]",
|
| 89 |
+
"family": "deep",
|
| 90 |
+
"split": "test",
|
| 91 |
+
"accuracy": 0.6527053212103145,
|
| 92 |
+
"f1_macro": 0.5964460940300637,
|
| 93 |
+
"f1_weighted": 0.6426749637907794,
|
| 94 |
+
"loss": null,
|
| 95 |
+
"source_file": "complexity/outputs/metrics/results_complexity-classification.csv",
|
| 96 |
+
"is_production": false
|
| 97 |
+
},
|
| 98 |
+
{
|
| 99 |
+
"model": "TF-IDF + XGBoost [train_pool]",
|
| 100 |
+
"display_name": "TF-IDF + XGBoost [train pool]",
|
| 101 |
+
"family": "classical",
|
| 102 |
+
"split": "test",
|
| 103 |
+
"accuracy": 0.673870919660158,
|
| 104 |
+
"f1_macro": 0.534220517963146,
|
| 105 |
+
"f1_weighted": 0.6343891751219696,
|
| 106 |
+
"loss": null,
|
| 107 |
+
"source_file": "complexity/outputs/metrics/results_complexity-classification.csv",
|
| 108 |
+
"is_production": false
|
| 109 |
+
},
|
| 110 |
+
{
|
| 111 |
+
"model": "Majority Class [train_pool]",
|
| 112 |
+
"display_name": "Majority Class [train pool]",
|
| 113 |
+
"family": "classical",
|
| 114 |
+
"split": "test",
|
| 115 |
+
"accuracy": 0.5447905798181547,
|
| 116 |
+
"f1_macro": 0.2351087096359192,
|
| 117 |
+
"f1_weighted": 0.3842550307285518,
|
| 118 |
+
"loss": null,
|
| 119 |
+
"source_file": "complexity/outputs/metrics/results_complexity-classification.csv",
|
| 120 |
+
"is_production": false
|
| 121 |
+
}
|
| 122 |
+
]
|
dashboard/metrics/cross-dataset.json
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
[
|
| 2 |
+
{
|
| 3 |
+
"family": "deep",
|
| 4 |
+
"dataset": "asap_aes",
|
| 5 |
+
"model": "GloVe BiLSTM",
|
| 6 |
+
"accuracy": 0.414122725871107,
|
| 7 |
+
"f1_macro": 0.355652614304878,
|
| 8 |
+
"f1_weighted": 0.37092120365396425,
|
| 9 |
+
"source_file": "complexity/outputs/cross_dataset_eval/summary_latest.csv"
|
| 10 |
+
},
|
| 11 |
+
{
|
| 12 |
+
"family": "deep",
|
| 13 |
+
"dataset": "cambridge",
|
| 14 |
+
"model": "GloVe BiLSTM",
|
| 15 |
+
"accuracy": 0.5437956204379562,
|
| 16 |
+
"f1_macro": 0.5316323731138546,
|
| 17 |
+
"f1_weighted": 0.5240329218106996,
|
| 18 |
+
"source_file": "complexity/outputs/cross_dataset_eval/summary_latest.csv"
|
| 19 |
+
},
|
| 20 |
+
{
|
| 21 |
+
"family": "deep",
|
| 22 |
+
"dataset": "cerf",
|
| 23 |
+
"model": "GloVe BiLSTM",
|
| 24 |
+
"accuracy": 0.5934360348292029,
|
| 25 |
+
"f1_macro": 0.6026179931249024,
|
| 26 |
+
"f1_weighted": 0.6005301829938762,
|
| 27 |
+
"source_file": "complexity/outputs/cross_dataset_eval/summary_latest.csv"
|
| 28 |
+
},
|
| 29 |
+
{
|
| 30 |
+
"family": "deep",
|
| 31 |
+
"dataset": "commonlit",
|
| 32 |
+
"model": "GloVe BiLSTM",
|
| 33 |
+
"accuracy": 0.4262121532923989,
|
| 34 |
+
"f1_macro": 0.33112328650236905,
|
| 35 |
+
"f1_weighted": 0.3841412546822796,
|
| 36 |
+
"source_file": "complexity/outputs/cross_dataset_eval/summary_latest.csv"
|
| 37 |
+
},
|
| 38 |
+
{
|
| 39 |
+
"family": "deep",
|
| 40 |
+
"dataset": "one_stop",
|
| 41 |
+
"model": "GloVe BiLSTM",
|
| 42 |
+
"accuracy": 0.34714003944773175,
|
| 43 |
+
"f1_macro": 0.26832434123074517,
|
| 44 |
+
"f1_weighted": 0.26092763705495803,
|
| 45 |
+
"source_file": "complexity/outputs/cross_dataset_eval/summary_latest.csv"
|
| 46 |
+
}
|
| 47 |
+
]
|
dashboard/metrics/primary-evaluation.json
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"model": "GloVe BiLSTM [train_pool]",
|
| 3 |
+
"source_files": [
|
| 4 |
+
"complexity/models/glove_bilstm_complexity_train_pool_20260307_163358/runs/metrics_latest.json"
|
| 5 |
+
],
|
| 6 |
+
"splits": {
|
| 7 |
+
"val": {
|
| 8 |
+
"accuracy": 0.682963183782978,
|
| 9 |
+
"f1_macro": 0.6450992102932628,
|
| 10 |
+
"f1_weighted": 0.6830474215229027
|
| 11 |
+
},
|
| 12 |
+
"test": {
|
| 13 |
+
"accuracy": 0.6926516619466389,
|
| 14 |
+
"f1_macro": 0.6551661294897166,
|
| 15 |
+
"f1_weighted": 0.6923209903034657
|
| 16 |
+
}
|
| 17 |
+
},
|
| 18 |
+
"artifact_paths": {
|
| 19 |
+
"experiment_dir": "models/glove_bilstm_complexity_train_pool_20260307_163358",
|
| 20 |
+
"best_checkpoint": "models/glove_bilstm_complexity_train_pool_20260307_163358/best_model/best.pt"
|
| 21 |
+
}
|
| 22 |
+
}
|
dashboard/samples/prediction-samples.json
ADDED
|
@@ -0,0 +1,114 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
[
|
| 2 |
+
{
|
| 3 |
+
"example_id": "1",
|
| 4 |
+
"text": "The boy has a small dog. The dog is brown and friendly.",
|
| 5 |
+
"production_prediction": {
|
| 6 |
+
"model": "GloVe BiLSTM",
|
| 7 |
+
"label": "B1-B2",
|
| 8 |
+
"confidence": 0.9545841813087463
|
| 9 |
+
},
|
| 10 |
+
"reference_prediction": {
|
| 11 |
+
"model": "DeBERTaV3",
|
| 12 |
+
"label": "B1-B2",
|
| 13 |
+
"confidence": 0.5645282864570618
|
| 14 |
+
}
|
| 15 |
+
},
|
| 16 |
+
{
|
| 17 |
+
"example_id": "2",
|
| 18 |
+
"text": "My sister goes to school by bus and comes home in the afternoon.",
|
| 19 |
+
"production_prediction": {
|
| 20 |
+
"model": "GloVe BiLSTM",
|
| 21 |
+
"label": "A1-A2",
|
| 22 |
+
"confidence": 0.6837078332901001
|
| 23 |
+
},
|
| 24 |
+
"reference_prediction": {
|
| 25 |
+
"model": "DeBERTaV3",
|
| 26 |
+
"label": "B1-B2",
|
| 27 |
+
"confidence": 0.5060160160064697
|
| 28 |
+
}
|
| 29 |
+
},
|
| 30 |
+
{
|
| 31 |
+
"example_id": "3",
|
| 32 |
+
"text": "The museum opened a new room where visitors can learn about life in ancient cities.",
|
| 33 |
+
"production_prediction": {
|
| 34 |
+
"model": "GloVe BiLSTM",
|
| 35 |
+
"label": "B1-B2",
|
| 36 |
+
"confidence": 0.521766185760498
|
| 37 |
+
},
|
| 38 |
+
"reference_prediction": {
|
| 39 |
+
"model": "DeBERTaV3",
|
| 40 |
+
"label": "B1-B2",
|
| 41 |
+
"confidence": 0.5297347903251648
|
| 42 |
+
}
|
| 43 |
+
},
|
| 44 |
+
{
|
| 45 |
+
"example_id": "4",
|
| 46 |
+
"text": "Although the weather forecast predicted heavy rain, the match continued because the pitch remained playable.",
|
| 47 |
+
"production_prediction": {
|
| 48 |
+
"model": "GloVe BiLSTM",
|
| 49 |
+
"label": "B1-B2",
|
| 50 |
+
"confidence": 0.6220280528068542
|
| 51 |
+
},
|
| 52 |
+
"reference_prediction": {
|
| 53 |
+
"model": "DeBERTaV3",
|
| 54 |
+
"label": "B1-B2",
|
| 55 |
+
"confidence": 0.4810847342014313
|
| 56 |
+
}
|
| 57 |
+
},
|
| 58 |
+
{
|
| 59 |
+
"example_id": "5",
|
| 60 |
+
"text": "Researchers compared the two groups carefully in order to determine whether the intervention had any measurable effect.",
|
| 61 |
+
"production_prediction": {
|
| 62 |
+
"model": "GloVe BiLSTM",
|
| 63 |
+
"label": "B1-B2",
|
| 64 |
+
"confidence": 0.39631497859954834
|
| 65 |
+
},
|
| 66 |
+
"reference_prediction": {
|
| 67 |
+
"model": "DeBERTaV3",
|
| 68 |
+
"label": "B1-B2",
|
| 69 |
+
"confidence": 0.4548090994358063
|
| 70 |
+
}
|
| 71 |
+
},
|
| 72 |
+
{
|
| 73 |
+
"example_id": "6",
|
| 74 |
+
"text": "Notwithstanding the apparent simplicity of the proposal, its implementation would require a sequence of interdependent regulatory revisions.",
|
| 75 |
+
"production_prediction": {
|
| 76 |
+
"model": "GloVe BiLSTM",
|
| 77 |
+
"label": "C1-C2",
|
| 78 |
+
"confidence": 0.9676215052604675
|
| 79 |
+
},
|
| 80 |
+
"reference_prediction": {
|
| 81 |
+
"model": "DeBERTaV3",
|
| 82 |
+
"label": "B1-B2",
|
| 83 |
+
"confidence": 0.4681660234928131
|
| 84 |
+
}
|
| 85 |
+
},
|
| 86 |
+
{
|
| 87 |
+
"example_id": "7",
|
| 88 |
+
"text": "The committee acknowledged that, in the absence of reliable longitudinal evidence, any definitive conclusion would remain provisional.",
|
| 89 |
+
"production_prediction": {
|
| 90 |
+
"model": "GloVe BiLSTM",
|
| 91 |
+
"label": "A1-A2",
|
| 92 |
+
"confidence": 0.4590006172657013
|
| 93 |
+
},
|
| 94 |
+
"reference_prediction": {
|
| 95 |
+
"model": "DeBERTaV3",
|
| 96 |
+
"label": "C1-C2",
|
| 97 |
+
"confidence": 0.4668876528739929
|
| 98 |
+
}
|
| 99 |
+
},
|
| 100 |
+
{
|
| 101 |
+
"example_id": "8",
|
| 102 |
+
"text": "By foregrounding the tension between economic efficiency and social equity, the report complicates any straightforward interpretation of the policy debate.",
|
| 103 |
+
"production_prediction": {
|
| 104 |
+
"model": "GloVe BiLSTM",
|
| 105 |
+
"label": "B1-B2",
|
| 106 |
+
"confidence": 0.3824934661388397
|
| 107 |
+
},
|
| 108 |
+
"reference_prediction": {
|
| 109 |
+
"model": "DeBERTaV3",
|
| 110 |
+
"label": "B1-B2",
|
| 111 |
+
"confidence": 0.4470742642879486
|
| 112 |
+
}
|
| 113 |
+
}
|
| 114 |
+
]
|
dashboard/summary/overview.json
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"generated_at": "2026-03-12T17:02:22+00:00",
|
| 3 |
+
"model": {
|
| 4 |
+
"model_id": "complexity-bilstm-final-v1",
|
| 5 |
+
"display_name": "Complexity BiLSTM Final v1",
|
| 6 |
+
"domain": "complexity",
|
| 7 |
+
"framework_type": "pytorch",
|
| 8 |
+
"framework_architecture": "bilstm-attention"
|
| 9 |
+
},
|
| 10 |
+
"evaluation_highlights": {
|
| 11 |
+
"validation": {
|
| 12 |
+
"accuracy": 0.682963183782978,
|
| 13 |
+
"f1_macro": 0.6450992102932628,
|
| 14 |
+
"f1_weighted": 0.6830474215229027
|
| 15 |
+
},
|
| 16 |
+
"test": {
|
| 17 |
+
"accuracy": 0.6926516619466389,
|
| 18 |
+
"f1_macro": 0.6551661294897166,
|
| 19 |
+
"f1_weighted": 0.6923209903034657
|
| 20 |
+
},
|
| 21 |
+
"benchmark_rank": {
|
| 22 |
+
"rank": 6,
|
| 23 |
+
"out_of": 10,
|
| 24 |
+
"metric": "f1_macro",
|
| 25 |
+
"score": 0.6551661294897166
|
| 26 |
+
}
|
| 27 |
+
},
|
| 28 |
+
"cross_dataset_highlights": {
|
| 29 |
+
"datasets": 5,
|
| 30 |
+
"mean_accuracy": 0.464941,
|
| 31 |
+
"mean_f1_macro": 0.41787,
|
| 32 |
+
"mean_f1_weighted": 0.428111
|
| 33 |
+
},
|
| 34 |
+
"artifact_status": {
|
| 35 |
+
"metadata": "available",
|
| 36 |
+
"evaluation": "available",
|
| 37 |
+
"benchmark": "available",
|
| 38 |
+
"training_curves": "available",
|
| 39 |
+
"learning_curves": "not_applicable",
|
| 40 |
+
"cross_dataset": "available",
|
| 41 |
+
"confusion_matrix": "image_only",
|
| 42 |
+
"class_distribution": "missing",
|
| 43 |
+
"samples": "available"
|
| 44 |
+
},
|
| 45 |
+
"notes": [
|
| 46 |
+
"Primary evaluation uses the production GloVe BiLSTM metrics_latest.json referenced by prod-model-complexity/model-config.yaml.",
|
| 47 |
+
"Complexity is the richest dashboard domain in the repo: internal benchmark data, external evaluation summaries, split parquets, manual sample predictions, and prod-model training logs are all present.",
|
| 48 |
+
"Confusion matrices exist only as saved images for the production model; no numeric matrix artifact was found.",
|
| 49 |
+
"class_distribution parsing failed for complexity/data/train_pool_train.parquet: Parquet dashboard sources require the optional pandas dependency.",
|
| 50 |
+
"class_distribution parsing failed for complexity/data/train_pool_val.parquet: Parquet dashboard sources require the optional pandas dependency.",
|
| 51 |
+
"class_distribution parsing failed for complexity/data/train_pool_test.parquet: Parquet dashboard sources require the optional pandas dependency."
|
| 52 |
+
]
|
| 53 |
+
}
|
dashboard/summary/source-audit.json
ADDED
|
@@ -0,0 +1,1218 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"generated_at": "2026-03-12T17:02:22+00:00",
|
| 3 |
+
"scanned_roots": [
|
| 4 |
+
"app/app-models/prod-model-complexity",
|
| 5 |
+
"complexity/data",
|
| 6 |
+
"complexity/logs",
|
| 7 |
+
"complexity/models/glove_bilstm_complexity_train_pool_20260307_163358/runs",
|
| 8 |
+
"complexity/outputs/cross_dataset_eval",
|
| 9 |
+
"complexity/outputs/metrics",
|
| 10 |
+
"complexity/outputs/plots/confusion_matrices"
|
| 11 |
+
],
|
| 12 |
+
"artifact_counts": {
|
| 13 |
+
"logs": 815,
|
| 14 |
+
"metrics_and_configs": 146,
|
| 15 |
+
"other_structured_files": 40,
|
| 16 |
+
"plot_images": 24,
|
| 17 |
+
"structured_data": 11,
|
| 18 |
+
"tabular_data": 82
|
| 19 |
+
},
|
| 20 |
+
"candidate_artifacts_by_category": {
|
| 21 |
+
"logs": [
|
| 22 |
+
"complexity/data/archive/asap-2-0/source.txt",
|
| 23 |
+
"complexity/data/archive/asap-aes/source.txt",
|
| 24 |
+
"complexity/data/archive/cambridge-english-readability/CAE/1.txt",
|
| 25 |
+
"complexity/data/archive/cambridge-english-readability/CAE/10.txt",
|
| 26 |
+
"complexity/data/archive/cambridge-english-readability/CAE/11.txt",
|
| 27 |
+
"complexity/data/archive/cambridge-english-readability/CAE/12.txt",
|
| 28 |
+
"complexity/data/archive/cambridge-english-readability/CAE/13.txt",
|
| 29 |
+
"complexity/data/archive/cambridge-english-readability/CAE/14.txt",
|
| 30 |
+
"complexity/data/archive/cambridge-english-readability/CAE/15.txt",
|
| 31 |
+
"complexity/data/archive/cambridge-english-readability/CAE/16.txt",
|
| 32 |
+
"complexity/data/archive/cambridge-english-readability/CAE/17.txt",
|
| 33 |
+
"complexity/data/archive/cambridge-english-readability/CAE/18.txt",
|
| 34 |
+
"complexity/data/archive/cambridge-english-readability/CAE/19.txt",
|
| 35 |
+
"complexity/data/archive/cambridge-english-readability/CAE/2.txt",
|
| 36 |
+
"complexity/data/archive/cambridge-english-readability/CAE/20.txt",
|
| 37 |
+
"complexity/data/archive/cambridge-english-readability/CAE/21.txt",
|
| 38 |
+
"complexity/data/archive/cambridge-english-readability/CAE/22.txt",
|
| 39 |
+
"complexity/data/archive/cambridge-english-readability/CAE/23.txt",
|
| 40 |
+
"complexity/data/archive/cambridge-english-readability/CAE/24.txt",
|
| 41 |
+
"complexity/data/archive/cambridge-english-readability/CAE/25.txt",
|
| 42 |
+
"complexity/data/archive/cambridge-english-readability/CAE/26.txt",
|
| 43 |
+
"complexity/data/archive/cambridge-english-readability/CAE/27.txt",
|
| 44 |
+
"complexity/data/archive/cambridge-english-readability/CAE/28.txt",
|
| 45 |
+
"complexity/data/archive/cambridge-english-readability/CAE/29.txt",
|
| 46 |
+
"complexity/data/archive/cambridge-english-readability/CAE/3.txt",
|
| 47 |
+
"complexity/data/archive/cambridge-english-readability/CAE/30.txt",
|
| 48 |
+
"complexity/data/archive/cambridge-english-readability/CAE/31.txt",
|
| 49 |
+
"complexity/data/archive/cambridge-english-readability/CAE/32.txt",
|
| 50 |
+
"complexity/data/archive/cambridge-english-readability/CAE/33.txt",
|
| 51 |
+
"complexity/data/archive/cambridge-english-readability/CAE/34.txt",
|
| 52 |
+
"complexity/data/archive/cambridge-english-readability/CAE/35.txt",
|
| 53 |
+
"complexity/data/archive/cambridge-english-readability/CAE/36.txt",
|
| 54 |
+
"complexity/data/archive/cambridge-english-readability/CAE/37.txt",
|
| 55 |
+
"complexity/data/archive/cambridge-english-readability/CAE/38.txt",
|
| 56 |
+
"complexity/data/archive/cambridge-english-readability/CAE/39.txt",
|
| 57 |
+
"complexity/data/archive/cambridge-english-readability/CAE/4.txt",
|
| 58 |
+
"complexity/data/archive/cambridge-english-readability/CAE/40.txt",
|
| 59 |
+
"complexity/data/archive/cambridge-english-readability/CAE/41.txt",
|
| 60 |
+
"complexity/data/archive/cambridge-english-readability/CAE/42.txt",
|
| 61 |
+
"complexity/data/archive/cambridge-english-readability/CAE/43.txt",
|
| 62 |
+
"complexity/data/archive/cambridge-english-readability/CAE/44.txt",
|
| 63 |
+
"complexity/data/archive/cambridge-english-readability/CAE/45.txt",
|
| 64 |
+
"complexity/data/archive/cambridge-english-readability/CAE/46.txt",
|
| 65 |
+
"complexity/data/archive/cambridge-english-readability/CAE/47.txt",
|
| 66 |
+
"complexity/data/archive/cambridge-english-readability/CAE/48.txt",
|
| 67 |
+
"complexity/data/archive/cambridge-english-readability/CAE/49.txt",
|
| 68 |
+
"complexity/data/archive/cambridge-english-readability/CAE/5.txt",
|
| 69 |
+
"complexity/data/archive/cambridge-english-readability/CAE/50.txt",
|
| 70 |
+
"complexity/data/archive/cambridge-english-readability/CAE/51.txt",
|
| 71 |
+
"complexity/data/archive/cambridge-english-readability/CAE/52.txt",
|
| 72 |
+
"complexity/data/archive/cambridge-english-readability/CAE/53.txt",
|
| 73 |
+
"complexity/data/archive/cambridge-english-readability/CAE/54.txt",
|
| 74 |
+
"complexity/data/archive/cambridge-english-readability/CAE/55.txt",
|
| 75 |
+
"complexity/data/archive/cambridge-english-readability/CAE/6.txt",
|
| 76 |
+
"complexity/data/archive/cambridge-english-readability/CAE/7.txt",
|
| 77 |
+
"complexity/data/archive/cambridge-english-readability/CAE/8.txt",
|
| 78 |
+
"complexity/data/archive/cambridge-english-readability/CAE/9.txt",
|
| 79 |
+
"complexity/data/archive/cambridge-english-readability/CAE.txt",
|
| 80 |
+
"complexity/data/archive/cambridge-english-readability/CAE_raw.txt",
|
| 81 |
+
"complexity/data/archive/cambridge-english-readability/CPE/1.txt",
|
| 82 |
+
"complexity/data/archive/cambridge-english-readability/CPE/10.txt",
|
| 83 |
+
"complexity/data/archive/cambridge-english-readability/CPE/11.txt",
|
| 84 |
+
"complexity/data/archive/cambridge-english-readability/CPE/12.txt",
|
| 85 |
+
"complexity/data/archive/cambridge-english-readability/CPE/13.txt",
|
| 86 |
+
"complexity/data/archive/cambridge-english-readability/CPE/14.txt",
|
| 87 |
+
"complexity/data/archive/cambridge-english-readability/CPE/15.txt",
|
| 88 |
+
"complexity/data/archive/cambridge-english-readability/CPE/16.txt",
|
| 89 |
+
"complexity/data/archive/cambridge-english-readability/CPE/17.txt",
|
| 90 |
+
"complexity/data/archive/cambridge-english-readability/CPE/18.txt",
|
| 91 |
+
"complexity/data/archive/cambridge-english-readability/CPE/19.txt",
|
| 92 |
+
"complexity/data/archive/cambridge-english-readability/CPE/2.txt",
|
| 93 |
+
"complexity/data/archive/cambridge-english-readability/CPE/20.txt",
|
| 94 |
+
"complexity/data/archive/cambridge-english-readability/CPE/21.txt",
|
| 95 |
+
"complexity/data/archive/cambridge-english-readability/CPE/22.txt",
|
| 96 |
+
"complexity/data/archive/cambridge-english-readability/CPE/23.txt",
|
| 97 |
+
"complexity/data/archive/cambridge-english-readability/CPE/24.txt",
|
| 98 |
+
"complexity/data/archive/cambridge-english-readability/CPE/25.txt",
|
| 99 |
+
"complexity/data/archive/cambridge-english-readability/CPE/26.txt",
|
| 100 |
+
"complexity/data/archive/cambridge-english-readability/CPE/27.txt",
|
| 101 |
+
"complexity/data/archive/cambridge-english-readability/CPE/28.txt",
|
| 102 |
+
"complexity/data/archive/cambridge-english-readability/CPE/29.txt",
|
| 103 |
+
"complexity/data/archive/cambridge-english-readability/CPE/3.txt",
|
| 104 |
+
"complexity/data/archive/cambridge-english-readability/CPE/30.txt",
|
| 105 |
+
"complexity/data/archive/cambridge-english-readability/CPE/31.txt",
|
| 106 |
+
"complexity/data/archive/cambridge-english-readability/CPE/32.txt",
|
| 107 |
+
"complexity/data/archive/cambridge-english-readability/CPE/33.txt",
|
| 108 |
+
"complexity/data/archive/cambridge-english-readability/CPE/34.txt",
|
| 109 |
+
"complexity/data/archive/cambridge-english-readability/CPE/35.txt",
|
| 110 |
+
"complexity/data/archive/cambridge-english-readability/CPE/36.txt",
|
| 111 |
+
"complexity/data/archive/cambridge-english-readability/CPE/37.txt",
|
| 112 |
+
"complexity/data/archive/cambridge-english-readability/CPE/38.txt",
|
| 113 |
+
"complexity/data/archive/cambridge-english-readability/CPE/39.txt",
|
| 114 |
+
"complexity/data/archive/cambridge-english-readability/CPE/4.txt",
|
| 115 |
+
"complexity/data/archive/cambridge-english-readability/CPE/40.txt",
|
| 116 |
+
"complexity/data/archive/cambridge-english-readability/CPE/41.txt",
|
| 117 |
+
"complexity/data/archive/cambridge-english-readability/CPE/42.txt",
|
| 118 |
+
"complexity/data/archive/cambridge-english-readability/CPE/43.txt",
|
| 119 |
+
"complexity/data/archive/cambridge-english-readability/CPE/44.txt",
|
| 120 |
+
"complexity/data/archive/cambridge-english-readability/CPE/5.txt",
|
| 121 |
+
"complexity/data/archive/cambridge-english-readability/CPE/6.txt",
|
| 122 |
+
"complexity/data/archive/cambridge-english-readability/CPE/7.txt",
|
| 123 |
+
"complexity/data/archive/cambridge-english-readability/CPE/8.txt",
|
| 124 |
+
"complexity/data/archive/cambridge-english-readability/CPE/9.txt",
|
| 125 |
+
"complexity/data/archive/cambridge-english-readability/CPE.txt",
|
| 126 |
+
"complexity/data/archive/cambridge-english-readability/CPE_raw.txt",
|
| 127 |
+
"complexity/data/archive/cambridge-english-readability/FCE/1.txt",
|
| 128 |
+
"complexity/data/archive/cambridge-english-readability/FCE/10.txt",
|
| 129 |
+
"complexity/data/archive/cambridge-english-readability/FCE/11.txt",
|
| 130 |
+
"complexity/data/archive/cambridge-english-readability/FCE/12.txt",
|
| 131 |
+
"complexity/data/archive/cambridge-english-readability/FCE/13.txt",
|
| 132 |
+
"complexity/data/archive/cambridge-english-readability/FCE/14.txt",
|
| 133 |
+
"complexity/data/archive/cambridge-english-readability/FCE/15.txt",
|
| 134 |
+
"complexity/data/archive/cambridge-english-readability/FCE/16.txt",
|
| 135 |
+
"complexity/data/archive/cambridge-english-readability/FCE/17.txt",
|
| 136 |
+
"complexity/data/archive/cambridge-english-readability/FCE/18.txt",
|
| 137 |
+
"complexity/data/archive/cambridge-english-readability/FCE/19.txt",
|
| 138 |
+
"complexity/data/archive/cambridge-english-readability/FCE/2.txt",
|
| 139 |
+
"complexity/data/archive/cambridge-english-readability/FCE/20.txt",
|
| 140 |
+
"complexity/data/archive/cambridge-english-readability/FCE/21.txt",
|
| 141 |
+
"complexity/data/archive/cambridge-english-readability/FCE/22.txt",
|
| 142 |
+
"complexity/data/archive/cambridge-english-readability/FCE/23.txt",
|
| 143 |
+
"complexity/data/archive/cambridge-english-readability/FCE/24.txt",
|
| 144 |
+
"complexity/data/archive/cambridge-english-readability/FCE/25.txt",
|
| 145 |
+
"complexity/data/archive/cambridge-english-readability/FCE/26.txt",
|
| 146 |
+
"complexity/data/archive/cambridge-english-readability/FCE/27.txt",
|
| 147 |
+
"complexity/data/archive/cambridge-english-readability/FCE/28.txt",
|
| 148 |
+
"complexity/data/archive/cambridge-english-readability/FCE/29.txt",
|
| 149 |
+
"complexity/data/archive/cambridge-english-readability/FCE/3.txt",
|
| 150 |
+
"complexity/data/archive/cambridge-english-readability/FCE/30.txt",
|
| 151 |
+
"complexity/data/archive/cambridge-english-readability/FCE/31.txt",
|
| 152 |
+
"complexity/data/archive/cambridge-english-readability/FCE/32.txt",
|
| 153 |
+
"complexity/data/archive/cambridge-english-readability/FCE/33.txt",
|
| 154 |
+
"complexity/data/archive/cambridge-english-readability/FCE/34.txt",
|
| 155 |
+
"complexity/data/archive/cambridge-english-readability/FCE/35.txt",
|
| 156 |
+
"complexity/data/archive/cambridge-english-readability/FCE/36.txt",
|
| 157 |
+
"complexity/data/archive/cambridge-english-readability/FCE/37.txt",
|
| 158 |
+
"complexity/data/archive/cambridge-english-readability/FCE/38.txt",
|
| 159 |
+
"complexity/data/archive/cambridge-english-readability/FCE/39.txt",
|
| 160 |
+
"complexity/data/archive/cambridge-english-readability/FCE/4.txt",
|
| 161 |
+
"complexity/data/archive/cambridge-english-readability/FCE/40.txt",
|
| 162 |
+
"complexity/data/archive/cambridge-english-readability/FCE/41.txt",
|
| 163 |
+
"complexity/data/archive/cambridge-english-readability/FCE/42.txt",
|
| 164 |
+
"complexity/data/archive/cambridge-english-readability/FCE/43.txt",
|
| 165 |
+
"complexity/data/archive/cambridge-english-readability/FCE/44.txt",
|
| 166 |
+
"complexity/data/archive/cambridge-english-readability/FCE/45.txt",
|
| 167 |
+
"complexity/data/archive/cambridge-english-readability/FCE/46.txt",
|
| 168 |
+
"complexity/data/archive/cambridge-english-readability/FCE/47.txt",
|
| 169 |
+
"complexity/data/archive/cambridge-english-readability/FCE/48.txt",
|
| 170 |
+
"complexity/data/archive/cambridge-english-readability/FCE/49.txt",
|
| 171 |
+
"complexity/data/archive/cambridge-english-readability/FCE/5.txt",
|
| 172 |
+
"complexity/data/archive/cambridge-english-readability/FCE/50.txt",
|
| 173 |
+
"complexity/data/archive/cambridge-english-readability/FCE/51.txt",
|
| 174 |
+
"complexity/data/archive/cambridge-english-readability/FCE/52.txt",
|
| 175 |
+
"complexity/data/archive/cambridge-english-readability/FCE/53.txt",
|
| 176 |
+
"complexity/data/archive/cambridge-english-readability/FCE/54.txt",
|
| 177 |
+
"complexity/data/archive/cambridge-english-readability/FCE/55.txt",
|
| 178 |
+
"complexity/data/archive/cambridge-english-readability/FCE/56.txt",
|
| 179 |
+
"complexity/data/archive/cambridge-english-readability/FCE/57.txt",
|
| 180 |
+
"complexity/data/archive/cambridge-english-readability/FCE/58.txt",
|
| 181 |
+
"complexity/data/archive/cambridge-english-readability/FCE/59.txt",
|
| 182 |
+
"complexity/data/archive/cambridge-english-readability/FCE/6.txt",
|
| 183 |
+
"complexity/data/archive/cambridge-english-readability/FCE/60.txt",
|
| 184 |
+
"complexity/data/archive/cambridge-english-readability/FCE/61.txt",
|
| 185 |
+
"complexity/data/archive/cambridge-english-readability/FCE/62.txt",
|
| 186 |
+
"complexity/data/archive/cambridge-english-readability/FCE/63.txt",
|
| 187 |
+
"complexity/data/archive/cambridge-english-readability/FCE/64.txt",
|
| 188 |
+
"complexity/data/archive/cambridge-english-readability/FCE/65.txt",
|
| 189 |
+
"complexity/data/archive/cambridge-english-readability/FCE/66.txt",
|
| 190 |
+
"complexity/data/archive/cambridge-english-readability/FCE/67.txt",
|
| 191 |
+
"complexity/data/archive/cambridge-english-readability/FCE/7.txt",
|
| 192 |
+
"complexity/data/archive/cambridge-english-readability/FCE/8.txt",
|
| 193 |
+
"complexity/data/archive/cambridge-english-readability/FCE/9.txt",
|
| 194 |
+
"complexity/data/archive/cambridge-english-readability/FCE.txt",
|
| 195 |
+
"complexity/data/archive/cambridge-english-readability/FCE_raw.txt",
|
| 196 |
+
"complexity/data/archive/cambridge-english-readability/KET/1.txt",
|
| 197 |
+
"complexity/data/archive/cambridge-english-readability/KET/10.txt",
|
| 198 |
+
"complexity/data/archive/cambridge-english-readability/KET/11.txt",
|
| 199 |
+
"complexity/data/archive/cambridge-english-readability/KET/12.txt",
|
| 200 |
+
"complexity/data/archive/cambridge-english-readability/KET/13.txt",
|
| 201 |
+
"complexity/data/archive/cambridge-english-readability/KET/14.txt",
|
| 202 |
+
"complexity/data/archive/cambridge-english-readability/KET/15.txt",
|
| 203 |
+
"complexity/data/archive/cambridge-english-readability/KET/16.txt",
|
| 204 |
+
"complexity/data/archive/cambridge-english-readability/KET/17.txt",
|
| 205 |
+
"complexity/data/archive/cambridge-english-readability/KET/18.txt",
|
| 206 |
+
"complexity/data/archive/cambridge-english-readability/KET/19.txt",
|
| 207 |
+
"complexity/data/archive/cambridge-english-readability/KET/2.txt",
|
| 208 |
+
"complexity/data/archive/cambridge-english-readability/KET/20.txt",
|
| 209 |
+
"complexity/data/archive/cambridge-english-readability/KET/21.txt",
|
| 210 |
+
"complexity/data/archive/cambridge-english-readability/KET/22.txt",
|
| 211 |
+
"complexity/data/archive/cambridge-english-readability/KET/23.txt",
|
| 212 |
+
"complexity/data/archive/cambridge-english-readability/KET/24.txt",
|
| 213 |
+
"complexity/data/archive/cambridge-english-readability/KET/25.txt",
|
| 214 |
+
"complexity/data/archive/cambridge-english-readability/KET/26.txt",
|
| 215 |
+
"complexity/data/archive/cambridge-english-readability/KET/27.txt",
|
| 216 |
+
"complexity/data/archive/cambridge-english-readability/KET/28.txt",
|
| 217 |
+
"complexity/data/archive/cambridge-english-readability/KET/29.txt",
|
| 218 |
+
"complexity/data/archive/cambridge-english-readability/KET/3.txt",
|
| 219 |
+
"complexity/data/archive/cambridge-english-readability/KET/30.txt",
|
| 220 |
+
"complexity/data/archive/cambridge-english-readability/KET/31.txt",
|
| 221 |
+
"complexity/data/archive/cambridge-english-readability/KET/32.txt",
|
| 222 |
+
"complexity/data/archive/cambridge-english-readability/KET/33.txt",
|
| 223 |
+
"complexity/data/archive/cambridge-english-readability/KET/34.txt",
|
| 224 |
+
"complexity/data/archive/cambridge-english-readability/KET/35.txt",
|
| 225 |
+
"complexity/data/archive/cambridge-english-readability/KET/36.txt",
|
| 226 |
+
"complexity/data/archive/cambridge-english-readability/KET/37.txt",
|
| 227 |
+
"complexity/data/archive/cambridge-english-readability/KET/38.txt",
|
| 228 |
+
"complexity/data/archive/cambridge-english-readability/KET/39.txt",
|
| 229 |
+
"complexity/data/archive/cambridge-english-readability/KET/4.txt",
|
| 230 |
+
"complexity/data/archive/cambridge-english-readability/KET/40.txt",
|
| 231 |
+
"complexity/data/archive/cambridge-english-readability/KET/41.txt",
|
| 232 |
+
"complexity/data/archive/cambridge-english-readability/KET/42.txt",
|
| 233 |
+
"complexity/data/archive/cambridge-english-readability/KET/43.txt",
|
| 234 |
+
"complexity/data/archive/cambridge-english-readability/KET/44.txt",
|
| 235 |
+
"complexity/data/archive/cambridge-english-readability/KET/45.txt",
|
| 236 |
+
"complexity/data/archive/cambridge-english-readability/KET/46.txt",
|
| 237 |
+
"complexity/data/archive/cambridge-english-readability/KET/47.txt",
|
| 238 |
+
"complexity/data/archive/cambridge-english-readability/KET/48.txt",
|
| 239 |
+
"complexity/data/archive/cambridge-english-readability/KET/49.txt",
|
| 240 |
+
"complexity/data/archive/cambridge-english-readability/KET/5.txt",
|
| 241 |
+
"complexity/data/archive/cambridge-english-readability/KET/50.txt",
|
| 242 |
+
"complexity/data/archive/cambridge-english-readability/KET/51.txt",
|
| 243 |
+
"complexity/data/archive/cambridge-english-readability/KET/52.txt",
|
| 244 |
+
"complexity/data/archive/cambridge-english-readability/KET/53.txt",
|
| 245 |
+
"complexity/data/archive/cambridge-english-readability/KET/54.txt",
|
| 246 |
+
"complexity/data/archive/cambridge-english-readability/KET/55.txt",
|
| 247 |
+
"complexity/data/archive/cambridge-english-readability/KET/56.txt",
|
| 248 |
+
"complexity/data/archive/cambridge-english-readability/KET/57.txt",
|
| 249 |
+
"complexity/data/archive/cambridge-english-readability/KET/58.txt",
|
| 250 |
+
"complexity/data/archive/cambridge-english-readability/KET/59.txt",
|
| 251 |
+
"complexity/data/archive/cambridge-english-readability/KET/6.txt",
|
| 252 |
+
"complexity/data/archive/cambridge-english-readability/KET/60.txt",
|
| 253 |
+
"complexity/data/archive/cambridge-english-readability/KET/61.txt",
|
| 254 |
+
"complexity/data/archive/cambridge-english-readability/KET/7.txt",
|
| 255 |
+
"complexity/data/archive/cambridge-english-readability/KET/8.txt",
|
| 256 |
+
"complexity/data/archive/cambridge-english-readability/KET/9.txt",
|
| 257 |
+
"complexity/data/archive/cambridge-english-readability/KET.txt",
|
| 258 |
+
"complexity/data/archive/cambridge-english-readability/KET_raw.txt",
|
| 259 |
+
"complexity/data/archive/cambridge-english-readability/PET/1.txt",
|
| 260 |
+
"complexity/data/archive/cambridge-english-readability/PET/10.txt",
|
| 261 |
+
"complexity/data/archive/cambridge-english-readability/PET/11.txt",
|
| 262 |
+
"complexity/data/archive/cambridge-english-readability/PET/12.txt",
|
| 263 |
+
"complexity/data/archive/cambridge-english-readability/PET/13.txt",
|
| 264 |
+
"complexity/data/archive/cambridge-english-readability/PET/14.txt",
|
| 265 |
+
"complexity/data/archive/cambridge-english-readability/PET/15.txt",
|
| 266 |
+
"complexity/data/archive/cambridge-english-readability/PET/16.txt",
|
| 267 |
+
"complexity/data/archive/cambridge-english-readability/PET/17.txt",
|
| 268 |
+
"complexity/data/archive/cambridge-english-readability/PET/18.txt",
|
| 269 |
+
"complexity/data/archive/cambridge-english-readability/PET/19.txt",
|
| 270 |
+
"complexity/data/archive/cambridge-english-readability/PET/2.txt",
|
| 271 |
+
"complexity/data/archive/cambridge-english-readability/PET/20.txt",
|
| 272 |
+
"complexity/data/archive/cambridge-english-readability/PET/21.txt",
|
| 273 |
+
"complexity/data/archive/cambridge-english-readability/PET/22.txt",
|
| 274 |
+
"complexity/data/archive/cambridge-english-readability/PET/23.txt",
|
| 275 |
+
"complexity/data/archive/cambridge-english-readability/PET/24.txt",
|
| 276 |
+
"complexity/data/archive/cambridge-english-readability/PET/25.txt",
|
| 277 |
+
"complexity/data/archive/cambridge-english-readability/PET/26.txt",
|
| 278 |
+
"complexity/data/archive/cambridge-english-readability/PET/27.txt",
|
| 279 |
+
"complexity/data/archive/cambridge-english-readability/PET/28.txt",
|
| 280 |
+
"complexity/data/archive/cambridge-english-readability/PET/29.txt",
|
| 281 |
+
"complexity/data/archive/cambridge-english-readability/PET/3.txt",
|
| 282 |
+
"complexity/data/archive/cambridge-english-readability/PET/30.txt",
|
| 283 |
+
"complexity/data/archive/cambridge-english-readability/PET/31.txt",
|
| 284 |
+
"complexity/data/archive/cambridge-english-readability/PET/32.txt",
|
| 285 |
+
"complexity/data/archive/cambridge-english-readability/PET/33.txt",
|
| 286 |
+
"complexity/data/archive/cambridge-english-readability/PET/34.txt",
|
| 287 |
+
"complexity/data/archive/cambridge-english-readability/PET/35.txt",
|
| 288 |
+
"complexity/data/archive/cambridge-english-readability/PET/36.txt",
|
| 289 |
+
"complexity/data/archive/cambridge-english-readability/PET/37.txt",
|
| 290 |
+
"complexity/data/archive/cambridge-english-readability/PET/38.txt",
|
| 291 |
+
"complexity/data/archive/cambridge-english-readability/PET/39.txt",
|
| 292 |
+
"complexity/data/archive/cambridge-english-readability/PET/4.txt",
|
| 293 |
+
"complexity/data/archive/cambridge-english-readability/PET/40.txt",
|
| 294 |
+
"complexity/data/archive/cambridge-english-readability/PET/41.txt",
|
| 295 |
+
"complexity/data/archive/cambridge-english-readability/PET/42.txt",
|
| 296 |
+
"complexity/data/archive/cambridge-english-readability/PET/43.txt",
|
| 297 |
+
"complexity/data/archive/cambridge-english-readability/PET/44.txt",
|
| 298 |
+
"complexity/data/archive/cambridge-english-readability/PET/45.txt",
|
| 299 |
+
"complexity/data/archive/cambridge-english-readability/PET/46.txt",
|
| 300 |
+
"complexity/data/archive/cambridge-english-readability/PET/47.txt",
|
| 301 |
+
"complexity/data/archive/cambridge-english-readability/PET/48.txt",
|
| 302 |
+
"complexity/data/archive/cambridge-english-readability/PET/49.txt",
|
| 303 |
+
"complexity/data/archive/cambridge-english-readability/PET/5.txt",
|
| 304 |
+
"complexity/data/archive/cambridge-english-readability/PET/50.txt",
|
| 305 |
+
"complexity/data/archive/cambridge-english-readability/PET/51.txt",
|
| 306 |
+
"complexity/data/archive/cambridge-english-readability/PET/52.txt",
|
| 307 |
+
"complexity/data/archive/cambridge-english-readability/PET/53.txt",
|
| 308 |
+
"complexity/data/archive/cambridge-english-readability/PET/54.txt",
|
| 309 |
+
"complexity/data/archive/cambridge-english-readability/PET/55.txt",
|
| 310 |
+
"complexity/data/archive/cambridge-english-readability/PET/6.txt",
|
| 311 |
+
"complexity/data/archive/cambridge-english-readability/PET/7.txt",
|
| 312 |
+
"complexity/data/archive/cambridge-english-readability/PET/8.txt",
|
| 313 |
+
"complexity/data/archive/cambridge-english-readability/PET/9.txt",
|
| 314 |
+
"complexity/data/archive/cambridge-english-readability/PET.txt",
|
| 315 |
+
"complexity/data/archive/cambridge-english-readability/PET_raw.txt",
|
| 316 |
+
"complexity/data/archive/cambridge-english-readability/source.txt",
|
| 317 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/1.txt",
|
| 318 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/10.txt",
|
| 319 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/100.txt",
|
| 320 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/101.txt",
|
| 321 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/102.txt",
|
| 322 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/103.txt",
|
| 323 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/104.txt",
|
| 324 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/105.txt",
|
| 325 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/106.txt",
|
| 326 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/107.txt",
|
| 327 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/108.txt",
|
| 328 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/109.txt",
|
| 329 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/11.txt",
|
| 330 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/110.txt",
|
| 331 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/111.txt",
|
| 332 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/112.txt",
|
| 333 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/113.txt",
|
| 334 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/114.txt",
|
| 335 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/115.txt",
|
| 336 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/116.txt",
|
| 337 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/117.txt",
|
| 338 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/118.txt",
|
| 339 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/119.txt",
|
| 340 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/12.txt",
|
| 341 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/120.txt",
|
| 342 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/121.txt",
|
| 343 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/122.txt",
|
| 344 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/123.txt",
|
| 345 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/124.txt",
|
| 346 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/125.txt",
|
| 347 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/126.txt",
|
| 348 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/127.txt",
|
| 349 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/128.txt",
|
| 350 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/129.txt",
|
| 351 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/13.txt",
|
| 352 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/130.txt",
|
| 353 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/131.txt",
|
| 354 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/132.txt",
|
| 355 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/133.txt",
|
| 356 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/134.txt",
|
| 357 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/135.txt",
|
| 358 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/136.txt",
|
| 359 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/137.txt",
|
| 360 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/138.txt",
|
| 361 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/139.txt",
|
| 362 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/14.txt",
|
| 363 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/140.txt",
|
| 364 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/141.txt",
|
| 365 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/142.txt",
|
| 366 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/143.txt",
|
| 367 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/144.txt",
|
| 368 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/145.txt",
|
| 369 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/146.txt",
|
| 370 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/147.txt",
|
| 371 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/148.txt",
|
| 372 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/149.txt",
|
| 373 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/15.txt",
|
| 374 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/150.txt",
|
| 375 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/151.txt",
|
| 376 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/152.txt",
|
| 377 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/153.txt",
|
| 378 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/154.txt",
|
| 379 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/155.txt",
|
| 380 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/156.txt",
|
| 381 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/157.txt",
|
| 382 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/158.txt",
|
| 383 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/159.txt",
|
| 384 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/16.txt",
|
| 385 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/160.txt",
|
| 386 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/161.txt",
|
| 387 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/17.txt",
|
| 388 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/18.txt",
|
| 389 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/19.txt",
|
| 390 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/2.txt",
|
| 391 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/20.txt",
|
| 392 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/21.txt",
|
| 393 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/22.txt",
|
| 394 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/23.txt",
|
| 395 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/24.txt",
|
| 396 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/25.txt",
|
| 397 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/26.txt",
|
| 398 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/27.txt",
|
| 399 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/28.txt",
|
| 400 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/29.txt",
|
| 401 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/3.txt",
|
| 402 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/30.txt",
|
| 403 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/31.txt",
|
| 404 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/32.txt",
|
| 405 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/33.txt",
|
| 406 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/34.txt",
|
| 407 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/35.txt",
|
| 408 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/36.txt",
|
| 409 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/37.txt",
|
| 410 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/38.txt",
|
| 411 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/39.txt",
|
| 412 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/4.txt",
|
| 413 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/40.txt",
|
| 414 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/41.txt",
|
| 415 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/42.txt",
|
| 416 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/43.txt",
|
| 417 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/44.txt",
|
| 418 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/45.txt",
|
| 419 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/46.txt",
|
| 420 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/47.txt",
|
| 421 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/48.txt",
|
| 422 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/49.txt",
|
| 423 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/5.txt",
|
| 424 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/50.txt",
|
| 425 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/51.txt",
|
| 426 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/52.txt",
|
| 427 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/53.txt",
|
| 428 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/54.txt",
|
| 429 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/55.txt",
|
| 430 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/56.txt",
|
| 431 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/57.txt",
|
| 432 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/58.txt",
|
| 433 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/59.txt",
|
| 434 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/6.txt",
|
| 435 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/60.txt",
|
| 436 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/61.txt",
|
| 437 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/62.txt",
|
| 438 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/63.txt",
|
| 439 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/64.txt",
|
| 440 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/65.txt",
|
| 441 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/66.txt",
|
| 442 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/67.txt",
|
| 443 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/68.txt",
|
| 444 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/69.txt",
|
| 445 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/7.txt",
|
| 446 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/70.txt",
|
| 447 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/71.txt",
|
| 448 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/72.txt",
|
| 449 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/73.txt",
|
| 450 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/74.txt",
|
| 451 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/75.txt",
|
| 452 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/76.txt",
|
| 453 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/77.txt",
|
| 454 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/78.txt",
|
| 455 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/79.txt",
|
| 456 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/8.txt",
|
| 457 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/80.txt",
|
| 458 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/81.txt",
|
| 459 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/82.txt",
|
| 460 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/83.txt",
|
| 461 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/84.txt",
|
| 462 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/85.txt",
|
| 463 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/86.txt",
|
| 464 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/87.txt",
|
| 465 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/88.txt",
|
| 466 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/89.txt",
|
| 467 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/9.txt",
|
| 468 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/90.txt",
|
| 469 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/91.txt",
|
| 470 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/92.txt",
|
| 471 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/93.txt",
|
| 472 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/94.txt",
|
| 473 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/95.txt",
|
| 474 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/96.txt",
|
| 475 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/97.txt",
|
| 476 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/98.txt",
|
| 477 |
+
"complexity/data/archive/one-stop-corpus-english/Adv/99.txt",
|
| 478 |
+
"complexity/data/archive/one-stop-corpus-english/Adv.txt",
|
| 479 |
+
"complexity/data/archive/one-stop-corpus-english/Adv_raw.txt",
|
| 480 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/1.txt",
|
| 481 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/10.txt",
|
| 482 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/100.txt",
|
| 483 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/101.txt",
|
| 484 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/102.txt",
|
| 485 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/103.txt",
|
| 486 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/104.txt",
|
| 487 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/105.txt",
|
| 488 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/106.txt",
|
| 489 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/107.txt",
|
| 490 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/108.txt",
|
| 491 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/109.txt",
|
| 492 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/11.txt",
|
| 493 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/110.txt",
|
| 494 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/111.txt",
|
| 495 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/112.txt",
|
| 496 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/113.txt",
|
| 497 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/114.txt",
|
| 498 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/115.txt",
|
| 499 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/116.txt",
|
| 500 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/117.txt",
|
| 501 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/118.txt",
|
| 502 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/119.txt",
|
| 503 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/12.txt",
|
| 504 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/120.txt",
|
| 505 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/121.txt",
|
| 506 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/122.txt",
|
| 507 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/123.txt",
|
| 508 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/124.txt",
|
| 509 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/125.txt",
|
| 510 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/126.txt",
|
| 511 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/127.txt",
|
| 512 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/128.txt",
|
| 513 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/129.txt",
|
| 514 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/13.txt",
|
| 515 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/130.txt",
|
| 516 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/131.txt",
|
| 517 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/132.txt",
|
| 518 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/133.txt",
|
| 519 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/134.txt",
|
| 520 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/135.txt",
|
| 521 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/136.txt",
|
| 522 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/137.txt",
|
| 523 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/138.txt",
|
| 524 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/139.txt",
|
| 525 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/14.txt",
|
| 526 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/140.txt",
|
| 527 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/141.txt",
|
| 528 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/142.txt",
|
| 529 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/143.txt",
|
| 530 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/144.txt",
|
| 531 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/145.txt",
|
| 532 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/146.txt",
|
| 533 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/147.txt",
|
| 534 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/148.txt",
|
| 535 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/149.txt",
|
| 536 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/15.txt",
|
| 537 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/150.txt",
|
| 538 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/151.txt",
|
| 539 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/152.txt",
|
| 540 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/153.txt",
|
| 541 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/154.txt",
|
| 542 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/155.txt",
|
| 543 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/156.txt",
|
| 544 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/157.txt",
|
| 545 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/158.txt",
|
| 546 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/159.txt",
|
| 547 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/16.txt",
|
| 548 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/160.txt",
|
| 549 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/161.txt",
|
| 550 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/162.txt",
|
| 551 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/163.txt",
|
| 552 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/164.txt",
|
| 553 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/165.txt",
|
| 554 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/166.txt",
|
| 555 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/167.txt",
|
| 556 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/168.txt",
|
| 557 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/169.txt",
|
| 558 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/17.txt",
|
| 559 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/170.txt",
|
| 560 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/171.txt",
|
| 561 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/172.txt",
|
| 562 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/173.txt",
|
| 563 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/174.txt",
|
| 564 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/175.txt",
|
| 565 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/176.txt",
|
| 566 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/177.txt",
|
| 567 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/178.txt",
|
| 568 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/18.txt",
|
| 569 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/19.txt",
|
| 570 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/2.txt",
|
| 571 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/20.txt",
|
| 572 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/21.txt",
|
| 573 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/22.txt",
|
| 574 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/23.txt",
|
| 575 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/24.txt",
|
| 576 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/25.txt",
|
| 577 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/26.txt",
|
| 578 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/27.txt",
|
| 579 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/28.txt",
|
| 580 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/29.txt",
|
| 581 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/3.txt",
|
| 582 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/30.txt",
|
| 583 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/31.txt",
|
| 584 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/32.txt",
|
| 585 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/33.txt",
|
| 586 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/34.txt",
|
| 587 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/35.txt",
|
| 588 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/36.txt",
|
| 589 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/37.txt",
|
| 590 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/38.txt",
|
| 591 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/39.txt",
|
| 592 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/4.txt",
|
| 593 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/40.txt",
|
| 594 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/41.txt",
|
| 595 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/42.txt",
|
| 596 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/43.txt",
|
| 597 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/44.txt",
|
| 598 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/45.txt",
|
| 599 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/46.txt",
|
| 600 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/47.txt",
|
| 601 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/48.txt",
|
| 602 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/49.txt",
|
| 603 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/5.txt",
|
| 604 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/50.txt",
|
| 605 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/51.txt",
|
| 606 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/52.txt",
|
| 607 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/53.txt",
|
| 608 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/54.txt",
|
| 609 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/55.txt",
|
| 610 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/56.txt",
|
| 611 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/57.txt",
|
| 612 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/58.txt",
|
| 613 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/59.txt",
|
| 614 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/6.txt",
|
| 615 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/60.txt",
|
| 616 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/61.txt",
|
| 617 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/62.txt",
|
| 618 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/63.txt",
|
| 619 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/64.txt",
|
| 620 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/65.txt",
|
| 621 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/66.txt",
|
| 622 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/67.txt",
|
| 623 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/68.txt",
|
| 624 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/69.txt",
|
| 625 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/7.txt",
|
| 626 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/70.txt",
|
| 627 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/71.txt",
|
| 628 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/72.txt",
|
| 629 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/73.txt",
|
| 630 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/74.txt",
|
| 631 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/75.txt",
|
| 632 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/76.txt",
|
| 633 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/77.txt",
|
| 634 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/78.txt",
|
| 635 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/79.txt",
|
| 636 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/8.txt",
|
| 637 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/80.txt",
|
| 638 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/81.txt",
|
| 639 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/82.txt",
|
| 640 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/83.txt",
|
| 641 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/84.txt",
|
| 642 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/85.txt",
|
| 643 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/86.txt",
|
| 644 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/87.txt",
|
| 645 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/88.txt",
|
| 646 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/89.txt",
|
| 647 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/9.txt",
|
| 648 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/90.txt",
|
| 649 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/91.txt",
|
| 650 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/92.txt",
|
| 651 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/93.txt",
|
| 652 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/94.txt",
|
| 653 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/95.txt",
|
| 654 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/96.txt",
|
| 655 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/97.txt",
|
| 656 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/98.txt",
|
| 657 |
+
"complexity/data/archive/one-stop-corpus-english/Ele/99.txt",
|
| 658 |
+
"complexity/data/archive/one-stop-corpus-english/Ele.txt",
|
| 659 |
+
"complexity/data/archive/one-stop-corpus-english/Ele_raw.txt",
|
| 660 |
+
"complexity/data/archive/one-stop-corpus-english/Int/1.txt",
|
| 661 |
+
"complexity/data/archive/one-stop-corpus-english/Int/10.txt",
|
| 662 |
+
"complexity/data/archive/one-stop-corpus-english/Int/100.txt",
|
| 663 |
+
"complexity/data/archive/one-stop-corpus-english/Int/101.txt",
|
| 664 |
+
"complexity/data/archive/one-stop-corpus-english/Int/102.txt",
|
| 665 |
+
"complexity/data/archive/one-stop-corpus-english/Int/103.txt",
|
| 666 |
+
"complexity/data/archive/one-stop-corpus-english/Int/104.txt",
|
| 667 |
+
"complexity/data/archive/one-stop-corpus-english/Int/105.txt",
|
| 668 |
+
"complexity/data/archive/one-stop-corpus-english/Int/106.txt",
|
| 669 |
+
"complexity/data/archive/one-stop-corpus-english/Int/107.txt",
|
| 670 |
+
"complexity/data/archive/one-stop-corpus-english/Int/108.txt",
|
| 671 |
+
"complexity/data/archive/one-stop-corpus-english/Int/109.txt",
|
| 672 |
+
"complexity/data/archive/one-stop-corpus-english/Int/11.txt",
|
| 673 |
+
"complexity/data/archive/one-stop-corpus-english/Int/110.txt",
|
| 674 |
+
"complexity/data/archive/one-stop-corpus-english/Int/111.txt",
|
| 675 |
+
"complexity/data/archive/one-stop-corpus-english/Int/112.txt",
|
| 676 |
+
"complexity/data/archive/one-stop-corpus-english/Int/113.txt",
|
| 677 |
+
"complexity/data/archive/one-stop-corpus-english/Int/114.txt",
|
| 678 |
+
"complexity/data/archive/one-stop-corpus-english/Int/115.txt",
|
| 679 |
+
"complexity/data/archive/one-stop-corpus-english/Int/116.txt",
|
| 680 |
+
"complexity/data/archive/one-stop-corpus-english/Int/117.txt",
|
| 681 |
+
"complexity/data/archive/one-stop-corpus-english/Int/118.txt",
|
| 682 |
+
"complexity/data/archive/one-stop-corpus-english/Int/119.txt",
|
| 683 |
+
"complexity/data/archive/one-stop-corpus-english/Int/12.txt",
|
| 684 |
+
"complexity/data/archive/one-stop-corpus-english/Int/120.txt",
|
| 685 |
+
"complexity/data/archive/one-stop-corpus-english/Int/121.txt",
|
| 686 |
+
"complexity/data/archive/one-stop-corpus-english/Int/122.txt",
|
| 687 |
+
"complexity/data/archive/one-stop-corpus-english/Int/123.txt",
|
| 688 |
+
"complexity/data/archive/one-stop-corpus-english/Int/124.txt",
|
| 689 |
+
"complexity/data/archive/one-stop-corpus-english/Int/125.txt",
|
| 690 |
+
"complexity/data/archive/one-stop-corpus-english/Int/126.txt",
|
| 691 |
+
"complexity/data/archive/one-stop-corpus-english/Int/127.txt",
|
| 692 |
+
"complexity/data/archive/one-stop-corpus-english/Int/128.txt",
|
| 693 |
+
"complexity/data/archive/one-stop-corpus-english/Int/129.txt",
|
| 694 |
+
"complexity/data/archive/one-stop-corpus-english/Int/13.txt",
|
| 695 |
+
"complexity/data/archive/one-stop-corpus-english/Int/130.txt",
|
| 696 |
+
"complexity/data/archive/one-stop-corpus-english/Int/131.txt",
|
| 697 |
+
"complexity/data/archive/one-stop-corpus-english/Int/132.txt",
|
| 698 |
+
"complexity/data/archive/one-stop-corpus-english/Int/133.txt",
|
| 699 |
+
"complexity/data/archive/one-stop-corpus-english/Int/134.txt",
|
| 700 |
+
"complexity/data/archive/one-stop-corpus-english/Int/135.txt",
|
| 701 |
+
"complexity/data/archive/one-stop-corpus-english/Int/136.txt",
|
| 702 |
+
"complexity/data/archive/one-stop-corpus-english/Int/137.txt",
|
| 703 |
+
"complexity/data/archive/one-stop-corpus-english/Int/138.txt",
|
| 704 |
+
"complexity/data/archive/one-stop-corpus-english/Int/139.txt",
|
| 705 |
+
"complexity/data/archive/one-stop-corpus-english/Int/14.txt",
|
| 706 |
+
"complexity/data/archive/one-stop-corpus-english/Int/140.txt",
|
| 707 |
+
"complexity/data/archive/one-stop-corpus-english/Int/141.txt",
|
| 708 |
+
"complexity/data/archive/one-stop-corpus-english/Int/142.txt",
|
| 709 |
+
"complexity/data/archive/one-stop-corpus-english/Int/143.txt",
|
| 710 |
+
"complexity/data/archive/one-stop-corpus-english/Int/144.txt",
|
| 711 |
+
"complexity/data/archive/one-stop-corpus-english/Int/145.txt",
|
| 712 |
+
"complexity/data/archive/one-stop-corpus-english/Int/146.txt",
|
| 713 |
+
"complexity/data/archive/one-stop-corpus-english/Int/147.txt",
|
| 714 |
+
"complexity/data/archive/one-stop-corpus-english/Int/148.txt",
|
| 715 |
+
"complexity/data/archive/one-stop-corpus-english/Int/149.txt",
|
| 716 |
+
"complexity/data/archive/one-stop-corpus-english/Int/15.txt",
|
| 717 |
+
"complexity/data/archive/one-stop-corpus-english/Int/150.txt",
|
| 718 |
+
"complexity/data/archive/one-stop-corpus-english/Int/151.txt",
|
| 719 |
+
"complexity/data/archive/one-stop-corpus-english/Int/152.txt",
|
| 720 |
+
"complexity/data/archive/one-stop-corpus-english/Int/153.txt",
|
| 721 |
+
"complexity/data/archive/one-stop-corpus-english/Int/154.txt",
|
| 722 |
+
"complexity/data/archive/one-stop-corpus-english/Int/155.txt",
|
| 723 |
+
"complexity/data/archive/one-stop-corpus-english/Int/156.txt",
|
| 724 |
+
"complexity/data/archive/one-stop-corpus-english/Int/157.txt",
|
| 725 |
+
"complexity/data/archive/one-stop-corpus-english/Int/158.txt",
|
| 726 |
+
"complexity/data/archive/one-stop-corpus-english/Int/159.txt",
|
| 727 |
+
"complexity/data/archive/one-stop-corpus-english/Int/16.txt",
|
| 728 |
+
"complexity/data/archive/one-stop-corpus-english/Int/160.txt",
|
| 729 |
+
"complexity/data/archive/one-stop-corpus-english/Int/161.txt",
|
| 730 |
+
"complexity/data/archive/one-stop-corpus-english/Int/162.txt",
|
| 731 |
+
"complexity/data/archive/one-stop-corpus-english/Int/163.txt",
|
| 732 |
+
"complexity/data/archive/one-stop-corpus-english/Int/164.txt",
|
| 733 |
+
"complexity/data/archive/one-stop-corpus-english/Int/165.txt",
|
| 734 |
+
"complexity/data/archive/one-stop-corpus-english/Int/166.txt",
|
| 735 |
+
"complexity/data/archive/one-stop-corpus-english/Int/167.txt",
|
| 736 |
+
"complexity/data/archive/one-stop-corpus-english/Int/168.txt",
|
| 737 |
+
"complexity/data/archive/one-stop-corpus-english/Int/169.txt",
|
| 738 |
+
"complexity/data/archive/one-stop-corpus-english/Int/17.txt",
|
| 739 |
+
"complexity/data/archive/one-stop-corpus-english/Int/170.txt",
|
| 740 |
+
"complexity/data/archive/one-stop-corpus-english/Int/18.txt",
|
| 741 |
+
"complexity/data/archive/one-stop-corpus-english/Int/19.txt",
|
| 742 |
+
"complexity/data/archive/one-stop-corpus-english/Int/2.txt",
|
| 743 |
+
"complexity/data/archive/one-stop-corpus-english/Int/20.txt",
|
| 744 |
+
"complexity/data/archive/one-stop-corpus-english/Int/21.txt",
|
| 745 |
+
"complexity/data/archive/one-stop-corpus-english/Int/22.txt",
|
| 746 |
+
"complexity/data/archive/one-stop-corpus-english/Int/23.txt",
|
| 747 |
+
"complexity/data/archive/one-stop-corpus-english/Int/24.txt",
|
| 748 |
+
"complexity/data/archive/one-stop-corpus-english/Int/25.txt",
|
| 749 |
+
"complexity/data/archive/one-stop-corpus-english/Int/26.txt",
|
| 750 |
+
"complexity/data/archive/one-stop-corpus-english/Int/27.txt",
|
| 751 |
+
"complexity/data/archive/one-stop-corpus-english/Int/28.txt",
|
| 752 |
+
"complexity/data/archive/one-stop-corpus-english/Int/29.txt",
|
| 753 |
+
"complexity/data/archive/one-stop-corpus-english/Int/3.txt",
|
| 754 |
+
"complexity/data/archive/one-stop-corpus-english/Int/30.txt",
|
| 755 |
+
"complexity/data/archive/one-stop-corpus-english/Int/31.txt",
|
| 756 |
+
"complexity/data/archive/one-stop-corpus-english/Int/32.txt",
|
| 757 |
+
"complexity/data/archive/one-stop-corpus-english/Int/33.txt",
|
| 758 |
+
"complexity/data/archive/one-stop-corpus-english/Int/34.txt",
|
| 759 |
+
"complexity/data/archive/one-stop-corpus-english/Int/35.txt",
|
| 760 |
+
"complexity/data/archive/one-stop-corpus-english/Int/36.txt",
|
| 761 |
+
"complexity/data/archive/one-stop-corpus-english/Int/37.txt",
|
| 762 |
+
"complexity/data/archive/one-stop-corpus-english/Int/38.txt",
|
| 763 |
+
"complexity/data/archive/one-stop-corpus-english/Int/39.txt",
|
| 764 |
+
"complexity/data/archive/one-stop-corpus-english/Int/4.txt",
|
| 765 |
+
"complexity/data/archive/one-stop-corpus-english/Int/40.txt",
|
| 766 |
+
"complexity/data/archive/one-stop-corpus-english/Int/41.txt",
|
| 767 |
+
"complexity/data/archive/one-stop-corpus-english/Int/42.txt",
|
| 768 |
+
"complexity/data/archive/one-stop-corpus-english/Int/43.txt",
|
| 769 |
+
"complexity/data/archive/one-stop-corpus-english/Int/44.txt",
|
| 770 |
+
"complexity/data/archive/one-stop-corpus-english/Int/45.txt",
|
| 771 |
+
"complexity/data/archive/one-stop-corpus-english/Int/46.txt",
|
| 772 |
+
"complexity/data/archive/one-stop-corpus-english/Int/47.txt",
|
| 773 |
+
"complexity/data/archive/one-stop-corpus-english/Int/48.txt",
|
| 774 |
+
"complexity/data/archive/one-stop-corpus-english/Int/49.txt",
|
| 775 |
+
"complexity/data/archive/one-stop-corpus-english/Int/5.txt",
|
| 776 |
+
"complexity/data/archive/one-stop-corpus-english/Int/50.txt",
|
| 777 |
+
"complexity/data/archive/one-stop-corpus-english/Int/51.txt",
|
| 778 |
+
"complexity/data/archive/one-stop-corpus-english/Int/52.txt",
|
| 779 |
+
"complexity/data/archive/one-stop-corpus-english/Int/53.txt",
|
| 780 |
+
"complexity/data/archive/one-stop-corpus-english/Int/54.txt",
|
| 781 |
+
"complexity/data/archive/one-stop-corpus-english/Int/55.txt",
|
| 782 |
+
"complexity/data/archive/one-stop-corpus-english/Int/56.txt",
|
| 783 |
+
"complexity/data/archive/one-stop-corpus-english/Int/57.txt",
|
| 784 |
+
"complexity/data/archive/one-stop-corpus-english/Int/58.txt",
|
| 785 |
+
"complexity/data/archive/one-stop-corpus-english/Int/59.txt",
|
| 786 |
+
"complexity/data/archive/one-stop-corpus-english/Int/6.txt",
|
| 787 |
+
"complexity/data/archive/one-stop-corpus-english/Int/60.txt",
|
| 788 |
+
"complexity/data/archive/one-stop-corpus-english/Int/61.txt",
|
| 789 |
+
"complexity/data/archive/one-stop-corpus-english/Int/62.txt",
|
| 790 |
+
"complexity/data/archive/one-stop-corpus-english/Int/63.txt",
|
| 791 |
+
"complexity/data/archive/one-stop-corpus-english/Int/64.txt",
|
| 792 |
+
"complexity/data/archive/one-stop-corpus-english/Int/65.txt",
|
| 793 |
+
"complexity/data/archive/one-stop-corpus-english/Int/66.txt",
|
| 794 |
+
"complexity/data/archive/one-stop-corpus-english/Int/67.txt",
|
| 795 |
+
"complexity/data/archive/one-stop-corpus-english/Int/68.txt",
|
| 796 |
+
"complexity/data/archive/one-stop-corpus-english/Int/69.txt",
|
| 797 |
+
"complexity/data/archive/one-stop-corpus-english/Int/7.txt",
|
| 798 |
+
"complexity/data/archive/one-stop-corpus-english/Int/70.txt",
|
| 799 |
+
"complexity/data/archive/one-stop-corpus-english/Int/71.txt",
|
| 800 |
+
"complexity/data/archive/one-stop-corpus-english/Int/72.txt",
|
| 801 |
+
"complexity/data/archive/one-stop-corpus-english/Int/73.txt",
|
| 802 |
+
"complexity/data/archive/one-stop-corpus-english/Int/74.txt",
|
| 803 |
+
"complexity/data/archive/one-stop-corpus-english/Int/75.txt",
|
| 804 |
+
"complexity/data/archive/one-stop-corpus-english/Int/76.txt",
|
| 805 |
+
"complexity/data/archive/one-stop-corpus-english/Int/77.txt",
|
| 806 |
+
"complexity/data/archive/one-stop-corpus-english/Int/78.txt",
|
| 807 |
+
"complexity/data/archive/one-stop-corpus-english/Int/79.txt",
|
| 808 |
+
"complexity/data/archive/one-stop-corpus-english/Int/8.txt",
|
| 809 |
+
"complexity/data/archive/one-stop-corpus-english/Int/80.txt",
|
| 810 |
+
"complexity/data/archive/one-stop-corpus-english/Int/81.txt",
|
| 811 |
+
"complexity/data/archive/one-stop-corpus-english/Int/82.txt",
|
| 812 |
+
"complexity/data/archive/one-stop-corpus-english/Int/83.txt",
|
| 813 |
+
"complexity/data/archive/one-stop-corpus-english/Int/84.txt",
|
| 814 |
+
"complexity/data/archive/one-stop-corpus-english/Int/85.txt",
|
| 815 |
+
"complexity/data/archive/one-stop-corpus-english/Int/86.txt",
|
| 816 |
+
"complexity/data/archive/one-stop-corpus-english/Int/87.txt",
|
| 817 |
+
"complexity/data/archive/one-stop-corpus-english/Int/88.txt",
|
| 818 |
+
"complexity/data/archive/one-stop-corpus-english/Int/89.txt",
|
| 819 |
+
"complexity/data/archive/one-stop-corpus-english/Int/9.txt",
|
| 820 |
+
"complexity/data/archive/one-stop-corpus-english/Int/90.txt",
|
| 821 |
+
"complexity/data/archive/one-stop-corpus-english/Int/91.txt",
|
| 822 |
+
"complexity/data/archive/one-stop-corpus-english/Int/92.txt",
|
| 823 |
+
"complexity/data/archive/one-stop-corpus-english/Int/93.txt",
|
| 824 |
+
"complexity/data/archive/one-stop-corpus-english/Int/94.txt",
|
| 825 |
+
"complexity/data/archive/one-stop-corpus-english/Int/95.txt",
|
| 826 |
+
"complexity/data/archive/one-stop-corpus-english/Int/96.txt",
|
| 827 |
+
"complexity/data/archive/one-stop-corpus-english/Int/97.txt",
|
| 828 |
+
"complexity/data/archive/one-stop-corpus-english/Int/98.txt",
|
| 829 |
+
"complexity/data/archive/one-stop-corpus-english/Int/99.txt",
|
| 830 |
+
"complexity/data/archive/one-stop-corpus-english/Int.txt",
|
| 831 |
+
"complexity/data/archive/one-stop-corpus-english/Int_raw.txt",
|
| 832 |
+
"complexity/data/archive/uk-key-stage-readability-for-english-texts/source.txt",
|
| 833 |
+
"complexity/data/archive/\u0441ommonlit-readability-prize/source.txt",
|
| 834 |
+
"complexity/logs/complexity-classification_GloVe_BiLSTM_[train_pool].log",
|
| 835 |
+
"complexity/logs/complexity-classification_GloVe_CNN_[train_pool].log",
|
| 836 |
+
"complexity/logs/complexity-classification_GloVe_MLP_[train_pool].log"
|
| 837 |
+
],
|
| 838 |
+
"metrics_and_configs": [
|
| 839 |
+
"app/app-models/prod-model-complexity/dashboard/figures/eval-metrics.plotly.json",
|
| 840 |
+
"complexity/models/glove_bilstm_complexity_train_pool_20260307_163358/runs/metrics_20260307_164217.json",
|
| 841 |
+
"complexity/models/glove_bilstm_complexity_train_pool_20260307_163358/runs/metrics_20260307_202849.json",
|
| 842 |
+
"complexity/models/glove_bilstm_complexity_train_pool_20260307_163358/runs/metrics_20260308_105127.json",
|
| 843 |
+
"complexity/models/glove_bilstm_complexity_train_pool_20260307_163358/runs/metrics_20260308_133743.json",
|
| 844 |
+
"complexity/models/glove_bilstm_complexity_train_pool_20260307_163358/runs/metrics_20260308_140555.json",
|
| 845 |
+
"complexity/models/glove_bilstm_complexity_train_pool_20260307_163358/runs/metrics_20260309_151810.json",
|
| 846 |
+
"complexity/models/glove_bilstm_complexity_train_pool_20260307_163358/runs/metrics_20260310_122220.json",
|
| 847 |
+
"complexity/models/glove_bilstm_complexity_train_pool_20260307_163358/runs/metrics_20260310_122755.json",
|
| 848 |
+
"complexity/models/glove_bilstm_complexity_train_pool_20260307_163358/runs/metrics_20260310_133023.json",
|
| 849 |
+
"complexity/models/glove_bilstm_complexity_train_pool_20260307_163358/runs/metrics_20260310_135252.json",
|
| 850 |
+
"complexity/models/glove_bilstm_complexity_train_pool_20260307_163358/runs/metrics_20260310_180434.json",
|
| 851 |
+
"complexity/models/glove_bilstm_complexity_train_pool_20260307_163358/runs/metrics_20260310_182313.json",
|
| 852 |
+
"complexity/models/glove_bilstm_complexity_train_pool_20260307_163358/runs/metrics_latest.json",
|
| 853 |
+
"complexity/outputs/cross_dataset_eval/classical/asap_aes/majority_class/metrics_20260307_204030.json",
|
| 854 |
+
"complexity/outputs/cross_dataset_eval/classical/asap_aes/majority_class/metrics_latest.json",
|
| 855 |
+
"complexity/outputs/cross_dataset_eval/classical/asap_aes/tf_idf_logreg/metrics_20260307_204016.json",
|
| 856 |
+
"complexity/outputs/cross_dataset_eval/classical/asap_aes/tf_idf_logreg/metrics_latest.json",
|
| 857 |
+
"complexity/outputs/cross_dataset_eval/classical/asap_aes/tf_idf_svc/metrics_20260307_204010.json",
|
| 858 |
+
"complexity/outputs/cross_dataset_eval/classical/asap_aes/tf_idf_svc/metrics_latest.json",
|
| 859 |
+
"complexity/outputs/cross_dataset_eval/classical/asap_aes/tf_idf_xgboost/metrics_20260307_204024.json",
|
| 860 |
+
"complexity/outputs/cross_dataset_eval/classical/asap_aes/tf_idf_xgboost/metrics_latest.json",
|
| 861 |
+
"complexity/outputs/cross_dataset_eval/classical/cambridge/majority_class/metrics_20260307_204004.json",
|
| 862 |
+
"complexity/outputs/cross_dataset_eval/classical/cambridge/majority_class/metrics_latest.json",
|
| 863 |
+
"complexity/outputs/cross_dataset_eval/classical/cambridge/tf_idf_logreg/metrics_20260307_204003.json",
|
| 864 |
+
"complexity/outputs/cross_dataset_eval/classical/cambridge/tf_idf_logreg/metrics_latest.json",
|
| 865 |
+
"complexity/outputs/cross_dataset_eval/classical/cambridge/tf_idf_svc/metrics_20260307_204003.json",
|
| 866 |
+
"complexity/outputs/cross_dataset_eval/classical/cambridge/tf_idf_svc/metrics_latest.json",
|
| 867 |
+
"complexity/outputs/cross_dataset_eval/classical/cambridge/tf_idf_xgboost/metrics_20260307_204003.json",
|
| 868 |
+
"complexity/outputs/cross_dataset_eval/classical/cambridge/tf_idf_xgboost/metrics_latest.json",
|
| 869 |
+
"complexity/outputs/cross_dataset_eval/classical/cerf/majority_class/metrics_20260307_204002.json",
|
| 870 |
+
"complexity/outputs/cross_dataset_eval/classical/cerf/majority_class/metrics_latest.json",
|
| 871 |
+
"complexity/outputs/cross_dataset_eval/classical/cerf/tf_idf_logreg/metrics_20260307_203959.json",
|
| 872 |
+
"complexity/outputs/cross_dataset_eval/classical/cerf/tf_idf_logreg/metrics_latest.json",
|
| 873 |
+
"complexity/outputs/cross_dataset_eval/classical/cerf/tf_idf_svc/metrics_20260307_203958.json",
|
| 874 |
+
"complexity/outputs/cross_dataset_eval/classical/cerf/tf_idf_svc/metrics_latest.json",
|
| 875 |
+
"complexity/outputs/cross_dataset_eval/classical/cerf/tf_idf_xgboost/metrics_20260307_204001.json",
|
| 876 |
+
"complexity/outputs/cross_dataset_eval/classical/cerf/tf_idf_xgboost/metrics_latest.json",
|
| 877 |
+
"complexity/outputs/cross_dataset_eval/classical/commonlit/majority_class/metrics_20260307_203957.json",
|
| 878 |
+
"complexity/outputs/cross_dataset_eval/classical/commonlit/majority_class/metrics_latest.json",
|
| 879 |
+
"complexity/outputs/cross_dataset_eval/classical/commonlit/tf_idf_logreg/metrics_20260307_203953.json",
|
| 880 |
+
"complexity/outputs/cross_dataset_eval/classical/commonlit/tf_idf_logreg/metrics_latest.json",
|
| 881 |
+
"complexity/outputs/cross_dataset_eval/classical/commonlit/tf_idf_svc/metrics_20260307_203951.json",
|
| 882 |
+
"complexity/outputs/cross_dataset_eval/classical/commonlit/tf_idf_svc/metrics_latest.json",
|
| 883 |
+
"complexity/outputs/cross_dataset_eval/classical/commonlit/tf_idf_xgboost/metrics_20260307_203955.json",
|
| 884 |
+
"complexity/outputs/cross_dataset_eval/classical/commonlit/tf_idf_xgboost/metrics_latest.json",
|
| 885 |
+
"complexity/outputs/cross_dataset_eval/classical/one_stop/majority_class/metrics_20260307_203949.json",
|
| 886 |
+
"complexity/outputs/cross_dataset_eval/classical/one_stop/majority_class/metrics_latest.json",
|
| 887 |
+
"complexity/outputs/cross_dataset_eval/classical/one_stop/tf_idf_logreg/metrics_20260307_203947.json",
|
| 888 |
+
"complexity/outputs/cross_dataset_eval/classical/one_stop/tf_idf_logreg/metrics_latest.json",
|
| 889 |
+
"complexity/outputs/cross_dataset_eval/classical/one_stop/tf_idf_svc/metrics_20260307_203946.json",
|
| 890 |
+
"complexity/outputs/cross_dataset_eval/classical/one_stop/tf_idf_svc/metrics_latest.json",
|
| 891 |
+
"complexity/outputs/cross_dataset_eval/classical/one_stop/tf_idf_xgboost/metrics_20260307_203948.json",
|
| 892 |
+
"complexity/outputs/cross_dataset_eval/classical/one_stop/tf_idf_xgboost/metrics_latest.json",
|
| 893 |
+
"complexity/outputs/cross_dataset_eval/deep/asap_aes/glove_bilstm/metrics_20260307_204056.json",
|
| 894 |
+
"complexity/outputs/cross_dataset_eval/deep/asap_aes/glove_bilstm/metrics_latest.json",
|
| 895 |
+
"complexity/outputs/cross_dataset_eval/deep/asap_aes/glove_cnn/metrics_20260307_204048.json",
|
| 896 |
+
"complexity/outputs/cross_dataset_eval/deep/asap_aes/glove_cnn/metrics_latest.json",
|
| 897 |
+
"complexity/outputs/cross_dataset_eval/deep/asap_aes/glove_mlp/metrics_20260307_204046.json",
|
| 898 |
+
"complexity/outputs/cross_dataset_eval/deep/asap_aes/glove_mlp/metrics_latest.json",
|
| 899 |
+
"complexity/outputs/cross_dataset_eval/deep/cambridge/glove_bilstm/metrics_20260307_204040.json",
|
| 900 |
+
"complexity/outputs/cross_dataset_eval/deep/cambridge/glove_bilstm/metrics_latest.json",
|
| 901 |
+
"complexity/outputs/cross_dataset_eval/deep/cambridge/glove_cnn/metrics_20260307_204040.json",
|
| 902 |
+
"complexity/outputs/cross_dataset_eval/deep/cambridge/glove_cnn/metrics_latest.json",
|
| 903 |
+
"complexity/outputs/cross_dataset_eval/deep/cambridge/glove_mlp/metrics_20260307_204039.json",
|
| 904 |
+
"complexity/outputs/cross_dataset_eval/deep/cambridge/glove_mlp/metrics_latest.json",
|
| 905 |
+
"complexity/outputs/cross_dataset_eval/deep/cerf/glove_bilstm/metrics_20260307_204039.json",
|
| 906 |
+
"complexity/outputs/cross_dataset_eval/deep/cerf/glove_bilstm/metrics_latest.json",
|
| 907 |
+
"complexity/outputs/cross_dataset_eval/deep/cerf/glove_cnn/metrics_20260307_204038.json",
|
| 908 |
+
"complexity/outputs/cross_dataset_eval/deep/cerf/glove_cnn/metrics_latest.json",
|
| 909 |
+
"complexity/outputs/cross_dataset_eval/deep/cerf/glove_mlp/metrics_20260307_204038.json",
|
| 910 |
+
"complexity/outputs/cross_dataset_eval/deep/cerf/glove_mlp/metrics_latest.json",
|
| 911 |
+
"complexity/outputs/cross_dataset_eval/deep/commonlit/glove_bilstm/metrics_20260307_204036.json",
|
| 912 |
+
"complexity/outputs/cross_dataset_eval/deep/commonlit/glove_bilstm/metrics_latest.json",
|
| 913 |
+
"complexity/outputs/cross_dataset_eval/deep/commonlit/glove_cnn/metrics_20260307_204034.json",
|
| 914 |
+
"complexity/outputs/cross_dataset_eval/deep/commonlit/glove_cnn/metrics_latest.json",
|
| 915 |
+
"complexity/outputs/cross_dataset_eval/deep/commonlit/glove_mlp/metrics_20260307_204033.json",
|
| 916 |
+
"complexity/outputs/cross_dataset_eval/deep/commonlit/glove_mlp/metrics_latest.json",
|
| 917 |
+
"complexity/outputs/cross_dataset_eval/deep/one_stop/glove_bilstm/metrics_20260307_204031.json",
|
| 918 |
+
"complexity/outputs/cross_dataset_eval/deep/one_stop/glove_bilstm/metrics_latest.json",
|
| 919 |
+
"complexity/outputs/cross_dataset_eval/deep/one_stop/glove_cnn/metrics_20260307_204031.json",
|
| 920 |
+
"complexity/outputs/cross_dataset_eval/deep/one_stop/glove_cnn/metrics_latest.json",
|
| 921 |
+
"complexity/outputs/cross_dataset_eval/deep/one_stop/glove_mlp/metrics_20260307_204031.json",
|
| 922 |
+
"complexity/outputs/cross_dataset_eval/deep/one_stop/glove_mlp/metrics_latest.json",
|
| 923 |
+
"complexity/outputs/cross_dataset_eval/transformer/asap_aes/metrics_20260307_205123.json",
|
| 924 |
+
"complexity/outputs/cross_dataset_eval/transformer/asap_aes/metrics_20260308_115229.json",
|
| 925 |
+
"complexity/outputs/cross_dataset_eval/transformer/asap_aes/metrics_latest.json",
|
| 926 |
+
"complexity/outputs/cross_dataset_eval/transformer/cambridge/metrics_20260307_204929.json",
|
| 927 |
+
"complexity/outputs/cross_dataset_eval/transformer/cambridge/metrics_20260308_114603.json",
|
| 928 |
+
"complexity/outputs/cross_dataset_eval/transformer/cambridge/metrics_latest.json",
|
| 929 |
+
"complexity/outputs/cross_dataset_eval/transformer/cerf/metrics_20260307_204925.json",
|
| 930 |
+
"complexity/outputs/cross_dataset_eval/transformer/cerf/metrics_20260308_114553.json",
|
| 931 |
+
"complexity/outputs/cross_dataset_eval/transformer/cerf/metrics_latest.json",
|
| 932 |
+
"complexity/outputs/cross_dataset_eval/transformer/commonlit/metrics_20260307_204911.json",
|
| 933 |
+
"complexity/outputs/cross_dataset_eval/transformer/commonlit/metrics_20260308_114507.json",
|
| 934 |
+
"complexity/outputs/cross_dataset_eval/transformer/commonlit/metrics_latest.json",
|
| 935 |
+
"complexity/outputs/cross_dataset_eval/transformer/debertav3_train_pool/asap_aes/metrics_20260308_122313.json",
|
| 936 |
+
"complexity/outputs/cross_dataset_eval/transformer/debertav3_train_pool/asap_aes/metrics_latest.json",
|
| 937 |
+
"complexity/outputs/cross_dataset_eval/transformer/debertav3_train_pool/cambridge/metrics_20260308_121646.json",
|
| 938 |
+
"complexity/outputs/cross_dataset_eval/transformer/debertav3_train_pool/cambridge/metrics_latest.json",
|
| 939 |
+
"complexity/outputs/cross_dataset_eval/transformer/debertav3_train_pool/cerf/metrics_20260308_121637.json",
|
| 940 |
+
"complexity/outputs/cross_dataset_eval/transformer/debertav3_train_pool/cerf/metrics_latest.json",
|
| 941 |
+
"complexity/outputs/cross_dataset_eval/transformer/debertav3_train_pool/commonlit/metrics_20260308_121550.json",
|
| 942 |
+
"complexity/outputs/cross_dataset_eval/transformer/debertav3_train_pool/commonlit/metrics_latest.json",
|
| 943 |
+
"complexity/outputs/cross_dataset_eval/transformer/debertav3_train_pool/one_stop/metrics_20260308_121328.json",
|
| 944 |
+
"complexity/outputs/cross_dataset_eval/transformer/debertav3_train_pool/one_stop/metrics_latest.json",
|
| 945 |
+
"complexity/outputs/cross_dataset_eval/transformer/distilbert_train_pool/asap_aes/metrics_20260308_122612.json",
|
| 946 |
+
"complexity/outputs/cross_dataset_eval/transformer/distilbert_train_pool/asap_aes/metrics_latest.json",
|
| 947 |
+
"complexity/outputs/cross_dataset_eval/transformer/distilbert_train_pool/cambridge/metrics_20260308_122418.json",
|
| 948 |
+
"complexity/outputs/cross_dataset_eval/transformer/distilbert_train_pool/cambridge/metrics_latest.json",
|
| 949 |
+
"complexity/outputs/cross_dataset_eval/transformer/distilbert_train_pool/cerf/metrics_20260308_122415.json",
|
| 950 |
+
"complexity/outputs/cross_dataset_eval/transformer/distilbert_train_pool/cerf/metrics_latest.json",
|
| 951 |
+
"complexity/outputs/cross_dataset_eval/transformer/distilbert_train_pool/commonlit/metrics_20260308_122401.json",
|
| 952 |
+
"complexity/outputs/cross_dataset_eval/transformer/distilbert_train_pool/commonlit/metrics_latest.json",
|
| 953 |
+
"complexity/outputs/cross_dataset_eval/transformer/distilbert_train_pool/one_stop/metrics_20260308_122318.json",
|
| 954 |
+
"complexity/outputs/cross_dataset_eval/transformer/distilbert_train_pool/one_stop/metrics_latest.json",
|
| 955 |
+
"complexity/outputs/cross_dataset_eval/transformer/one_stop/metrics_20260307_204829.json",
|
| 956 |
+
"complexity/outputs/cross_dataset_eval/transformer/one_stop/metrics_20260308_114246.json",
|
| 957 |
+
"complexity/outputs/cross_dataset_eval/transformer/one_stop/metrics_latest.json",
|
| 958 |
+
"complexity/outputs/cross_dataset_eval/transformer/roberta_train_pool/asap_aes/metrics_20260308_123146.json",
|
| 959 |
+
"complexity/outputs/cross_dataset_eval/transformer/roberta_train_pool/asap_aes/metrics_latest.json",
|
| 960 |
+
"complexity/outputs/cross_dataset_eval/transformer/roberta_train_pool/cambridge/metrics_20260308_122812.json",
|
| 961 |
+
"complexity/outputs/cross_dataset_eval/transformer/roberta_train_pool/cambridge/metrics_latest.json",
|
| 962 |
+
"complexity/outputs/cross_dataset_eval/transformer/roberta_train_pool/cerf/metrics_20260308_122806.json",
|
| 963 |
+
"complexity/outputs/cross_dataset_eval/transformer/roberta_train_pool/cerf/metrics_latest.json",
|
| 964 |
+
"complexity/outputs/cross_dataset_eval/transformer/roberta_train_pool/commonlit/metrics_20260308_122740.json",
|
| 965 |
+
"complexity/outputs/cross_dataset_eval/transformer/roberta_train_pool/commonlit/metrics_latest.json",
|
| 966 |
+
"complexity/outputs/cross_dataset_eval/transformer/roberta_train_pool/one_stop/metrics_20260308_122621.json",
|
| 967 |
+
"complexity/outputs/cross_dataset_eval/transformer/roberta_train_pool/one_stop/metrics_latest.json",
|
| 968 |
+
"complexity/outputs/metrics/results_20260308_1242.json",
|
| 969 |
+
"complexity/outputs/metrics/results_20260308_1406.json",
|
| 970 |
+
"complexity/outputs/metrics/results_20260310_1225.json",
|
| 971 |
+
"complexity/outputs/metrics/results_20260310_1228.json",
|
| 972 |
+
"complexity/outputs/metrics/results_20260310_1331.json",
|
| 973 |
+
"complexity/outputs/metrics/results_20260310_1353.json",
|
| 974 |
+
"complexity/outputs/metrics/results_20260310_1805.json",
|
| 975 |
+
"complexity/outputs/metrics/results_20260310_1824.json",
|
| 976 |
+
"complexity/outputs/metrics/results_20260310_2039.json",
|
| 977 |
+
"complexity/outputs/metrics/results_20260310_2112.json",
|
| 978 |
+
"complexity/outputs/metrics/results_20260310_2125.json",
|
| 979 |
+
"complexity/outputs/metrics/results_20260310_2213.json",
|
| 980 |
+
"complexity/outputs/metrics/results_20260310_2229.json",
|
| 981 |
+
"complexity/outputs/metrics/results_20260311_1746.json",
|
| 982 |
+
"complexity/outputs/metrics/results_20260311_1802.json",
|
| 983 |
+
"complexity/outputs/metrics/results_20260311_1816.json",
|
| 984 |
+
"complexity/outputs/metrics/results_20260311_1836.json"
|
| 985 |
+
],
|
| 986 |
+
"other_structured_files": [
|
| 987 |
+
"app/app-models/prod-model-complexity/dashboard/curves/training-history.json",
|
| 988 |
+
"app/app-models/prod-model-complexity/dashboard/dashboard-manifest.json",
|
| 989 |
+
"app/app-models/prod-model-complexity/dashboard/distributions/class-distribution.json",
|
| 990 |
+
"app/app-models/prod-model-complexity/dashboard/distributions/source-dataset-distribution.json",
|
| 991 |
+
"app/app-models/prod-model-complexity/dashboard/figures/benchmark-test-f1.plotly.json",
|
| 992 |
+
"app/app-models/prod-model-complexity/dashboard/figures/class-distribution.plotly.json",
|
| 993 |
+
"app/app-models/prod-model-complexity/dashboard/figures/cross-dataset-f1.plotly.json",
|
| 994 |
+
"app/app-models/prod-model-complexity/dashboard/figures/source-dataset-distribution.plotly.json",
|
| 995 |
+
"app/app-models/prod-model-complexity/dashboard/figures/training-loss.plotly.json",
|
| 996 |
+
"app/app-models/prod-model-complexity/dashboard/metadata/experiment-config.json",
|
| 997 |
+
"app/app-models/prod-model-complexity/dashboard/metadata/model.json",
|
| 998 |
+
"app/app-models/prod-model-complexity/dashboard/metrics/benchmark-test.json",
|
| 999 |
+
"app/app-models/prod-model-complexity/dashboard/metrics/cross-dataset.json",
|
| 1000 |
+
"app/app-models/prod-model-complexity/dashboard/metrics/primary-evaluation.json",
|
| 1001 |
+
"app/app-models/prod-model-complexity/dashboard/samples/prediction-samples.json",
|
| 1002 |
+
"app/app-models/prod-model-complexity/dashboard/summary/overview.json",
|
| 1003 |
+
"app/app-models/prod-model-complexity/dashboard/summary/source-audit.json",
|
| 1004 |
+
"app/app-models/prod-model-complexity/label_classes.json",
|
| 1005 |
+
"app/app-models/prod-model-complexity/model-config.yaml",
|
| 1006 |
+
"complexity/outputs/metrics/baseline_model_registry.json",
|
| 1007 |
+
"complexity/outputs/metrics/cfg_20260308_1242.json",
|
| 1008 |
+
"complexity/outputs/metrics/cfg_20260308_1406.json",
|
| 1009 |
+
"complexity/outputs/metrics/cfg_20260310_1225.json",
|
| 1010 |
+
"complexity/outputs/metrics/cfg_20260310_1228.json",
|
| 1011 |
+
"complexity/outputs/metrics/cfg_20260310_1331.json",
|
| 1012 |
+
"complexity/outputs/metrics/cfg_20260310_1353.json",
|
| 1013 |
+
"complexity/outputs/metrics/cfg_20260310_1805.json",
|
| 1014 |
+
"complexity/outputs/metrics/cfg_20260310_1824.json",
|
| 1015 |
+
"complexity/outputs/metrics/cfg_20260310_2039.json",
|
| 1016 |
+
"complexity/outputs/metrics/cfg_20260310_2112.json",
|
| 1017 |
+
"complexity/outputs/metrics/cfg_20260310_2125.json",
|
| 1018 |
+
"complexity/outputs/metrics/cfg_20260310_2213.json",
|
| 1019 |
+
"complexity/outputs/metrics/cfg_20260310_2229.json",
|
| 1020 |
+
"complexity/outputs/metrics/cfg_20260311_1746.json",
|
| 1021 |
+
"complexity/outputs/metrics/cfg_20260311_1802.json",
|
| 1022 |
+
"complexity/outputs/metrics/cfg_20260311_1816.json",
|
| 1023 |
+
"complexity/outputs/metrics/cfg_20260311_1836.json",
|
| 1024 |
+
"complexity/outputs/metrics/transformers/deberta_v3_base_train_pool_latest.json",
|
| 1025 |
+
"complexity/outputs/metrics/transformers/distilbert_train_pool_latest.json",
|
| 1026 |
+
"complexity/outputs/metrics/transformers/roberta_train_pool_latest.json"
|
| 1027 |
+
],
|
| 1028 |
+
"plot_images": [
|
| 1029 |
+
"app/app-models/prod-model-complexity/dashboard/confusion/cm-glove-bilstm-train-pool.png",
|
| 1030 |
+
"app/app-models/prod-model-complexity/dashboard/confusion/internal-test-confusion-matrix.png",
|
| 1031 |
+
"complexity/outputs/cross_dataset_eval/plots/cross_dataset_overview_f1_macro.png",
|
| 1032 |
+
"complexity/outputs/plots/confusion_matrices/cm_debertav3_train_pool.png",
|
| 1033 |
+
"complexity/outputs/plots/confusion_matrices/cm_debertav3_train_pool_asap_aes.png",
|
| 1034 |
+
"complexity/outputs/plots/confusion_matrices/cm_debertav3_train_pool_cambridge.png",
|
| 1035 |
+
"complexity/outputs/plots/confusion_matrices/cm_debertav3_train_pool_cerf.png",
|
| 1036 |
+
"complexity/outputs/plots/confusion_matrices/cm_debertav3_train_pool_commonlit.png",
|
| 1037 |
+
"complexity/outputs/plots/confusion_matrices/cm_debertav3_train_pool_one_stop.png",
|
| 1038 |
+
"complexity/outputs/plots/confusion_matrices/cm_distilbert_train_pool.png",
|
| 1039 |
+
"complexity/outputs/plots/confusion_matrices/cm_distilbert_train_pool_asap_aes.png",
|
| 1040 |
+
"complexity/outputs/plots/confusion_matrices/cm_distilbert_train_pool_cambridge.png",
|
| 1041 |
+
"complexity/outputs/plots/confusion_matrices/cm_distilbert_train_pool_cerf.png",
|
| 1042 |
+
"complexity/outputs/plots/confusion_matrices/cm_distilbert_train_pool_commonlit.png",
|
| 1043 |
+
"complexity/outputs/plots/confusion_matrices/cm_distilbert_train_pool_one_stop.png",
|
| 1044 |
+
"complexity/outputs/plots/confusion_matrices/cm_glove_bilstm_train_pool.png",
|
| 1045 |
+
"complexity/outputs/plots/confusion_matrices/cm_glove_cnn_train_pool.png",
|
| 1046 |
+
"complexity/outputs/plots/confusion_matrices/cm_glove_mlp_train_pool.png",
|
| 1047 |
+
"complexity/outputs/plots/confusion_matrices/cm_roberta_train_pool.png",
|
| 1048 |
+
"complexity/outputs/plots/confusion_matrices/cm_roberta_train_pool_asap_aes.png",
|
| 1049 |
+
"complexity/outputs/plots/confusion_matrices/cm_roberta_train_pool_cambridge.png",
|
| 1050 |
+
"complexity/outputs/plots/confusion_matrices/cm_roberta_train_pool_cerf.png",
|
| 1051 |
+
"complexity/outputs/plots/confusion_matrices/cm_roberta_train_pool_commonlit.png",
|
| 1052 |
+
"complexity/outputs/plots/confusion_matrices/cm_roberta_train_pool_one_stop.png"
|
| 1053 |
+
],
|
| 1054 |
+
"structured_data": [
|
| 1055 |
+
"complexity/data/all-datasets-unified.parquet",
|
| 1056 |
+
"complexity/data/asap-2-0.parquet",
|
| 1057 |
+
"complexity/data/asap-aes.parquet",
|
| 1058 |
+
"complexity/data/cambridge-english-readability.parquet",
|
| 1059 |
+
"complexity/data/cerf-levelled-english-texts.parquet",
|
| 1060 |
+
"complexity/data/commonlit-readability-prize.parquet",
|
| 1061 |
+
"complexity/data/one-stop-corpus-english.parquet",
|
| 1062 |
+
"complexity/data/train_pool_test.parquet",
|
| 1063 |
+
"complexity/data/train_pool_train.parquet",
|
| 1064 |
+
"complexity/data/train_pool_val.parquet",
|
| 1065 |
+
"complexity/data/uk-key-stage-readability-for-english-texts.parquet"
|
| 1066 |
+
],
|
| 1067 |
+
"tabular_data": [
|
| 1068 |
+
"complexity/data/archive/asap-2-0/ASAP2_train_sourcetexts.csv",
|
| 1069 |
+
"complexity/data/archive/cerf-levelled-english-texts/cefr_leveled_texts.csv",
|
| 1070 |
+
"complexity/data/archive/uk-key-stage-readability-for-english-texts/TEST_balanced.csv",
|
| 1071 |
+
"complexity/data/archive/uk-key-stage-readability-for-english-texts/TRAIN_balanced.csv",
|
| 1072 |
+
"complexity/outputs/cross_dataset_eval/classical/asap_aes/majority_class/summary_latest.csv",
|
| 1073 |
+
"complexity/outputs/cross_dataset_eval/classical/asap_aes/tf_idf_logreg/summary_latest.csv",
|
| 1074 |
+
"complexity/outputs/cross_dataset_eval/classical/asap_aes/tf_idf_svc/summary_latest.csv",
|
| 1075 |
+
"complexity/outputs/cross_dataset_eval/classical/asap_aes/tf_idf_xgboost/summary_latest.csv",
|
| 1076 |
+
"complexity/outputs/cross_dataset_eval/classical/cambridge/majority_class/summary_latest.csv",
|
| 1077 |
+
"complexity/outputs/cross_dataset_eval/classical/cambridge/tf_idf_logreg/summary_latest.csv",
|
| 1078 |
+
"complexity/outputs/cross_dataset_eval/classical/cambridge/tf_idf_svc/summary_latest.csv",
|
| 1079 |
+
"complexity/outputs/cross_dataset_eval/classical/cambridge/tf_idf_xgboost/summary_latest.csv",
|
| 1080 |
+
"complexity/outputs/cross_dataset_eval/classical/cerf/majority_class/summary_latest.csv",
|
| 1081 |
+
"complexity/outputs/cross_dataset_eval/classical/cerf/tf_idf_logreg/summary_latest.csv",
|
| 1082 |
+
"complexity/outputs/cross_dataset_eval/classical/cerf/tf_idf_svc/summary_latest.csv",
|
| 1083 |
+
"complexity/outputs/cross_dataset_eval/classical/cerf/tf_idf_xgboost/summary_latest.csv",
|
| 1084 |
+
"complexity/outputs/cross_dataset_eval/classical/commonlit/majority_class/summary_latest.csv",
|
| 1085 |
+
"complexity/outputs/cross_dataset_eval/classical/commonlit/tf_idf_logreg/summary_latest.csv",
|
| 1086 |
+
"complexity/outputs/cross_dataset_eval/classical/commonlit/tf_idf_svc/summary_latest.csv",
|
| 1087 |
+
"complexity/outputs/cross_dataset_eval/classical/commonlit/tf_idf_xgboost/summary_latest.csv",
|
| 1088 |
+
"complexity/outputs/cross_dataset_eval/classical/one_stop/majority_class/summary_latest.csv",
|
| 1089 |
+
"complexity/outputs/cross_dataset_eval/classical/one_stop/tf_idf_logreg/summary_latest.csv",
|
| 1090 |
+
"complexity/outputs/cross_dataset_eval/classical/one_stop/tf_idf_svc/summary_latest.csv",
|
| 1091 |
+
"complexity/outputs/cross_dataset_eval/classical/one_stop/tf_idf_xgboost/summary_latest.csv",
|
| 1092 |
+
"complexity/outputs/cross_dataset_eval/deep/asap_aes/glove_bilstm/summary_latest.csv",
|
| 1093 |
+
"complexity/outputs/cross_dataset_eval/deep/asap_aes/glove_cnn/summary_latest.csv",
|
| 1094 |
+
"complexity/outputs/cross_dataset_eval/deep/asap_aes/glove_mlp/summary_latest.csv",
|
| 1095 |
+
"complexity/outputs/cross_dataset_eval/deep/cambridge/glove_bilstm/summary_latest.csv",
|
| 1096 |
+
"complexity/outputs/cross_dataset_eval/deep/cambridge/glove_cnn/summary_latest.csv",
|
| 1097 |
+
"complexity/outputs/cross_dataset_eval/deep/cambridge/glove_mlp/summary_latest.csv",
|
| 1098 |
+
"complexity/outputs/cross_dataset_eval/deep/cerf/glove_bilstm/summary_latest.csv",
|
| 1099 |
+
"complexity/outputs/cross_dataset_eval/deep/cerf/glove_cnn/summary_latest.csv",
|
| 1100 |
+
"complexity/outputs/cross_dataset_eval/deep/cerf/glove_mlp/summary_latest.csv",
|
| 1101 |
+
"complexity/outputs/cross_dataset_eval/deep/commonlit/glove_bilstm/summary_latest.csv",
|
| 1102 |
+
"complexity/outputs/cross_dataset_eval/deep/commonlit/glove_cnn/summary_latest.csv",
|
| 1103 |
+
"complexity/outputs/cross_dataset_eval/deep/commonlit/glove_mlp/summary_latest.csv",
|
| 1104 |
+
"complexity/outputs/cross_dataset_eval/deep/one_stop/glove_bilstm/summary_latest.csv",
|
| 1105 |
+
"complexity/outputs/cross_dataset_eval/deep/one_stop/glove_cnn/summary_latest.csv",
|
| 1106 |
+
"complexity/outputs/cross_dataset_eval/deep/one_stop/glove_mlp/summary_latest.csv",
|
| 1107 |
+
"complexity/outputs/cross_dataset_eval/family_summary_latest.csv",
|
| 1108 |
+
"complexity/outputs/cross_dataset_eval/model_external_mean_latest.csv",
|
| 1109 |
+
"complexity/outputs/cross_dataset_eval/plots/cross_dataset_matrix_f1_macro.csv",
|
| 1110 |
+
"complexity/outputs/cross_dataset_eval/summary_latest.csv",
|
| 1111 |
+
"complexity/outputs/cross_dataset_eval/transformer/asap_aes/summary_latest.csv",
|
| 1112 |
+
"complexity/outputs/cross_dataset_eval/transformer/cambridge/summary_latest.csv",
|
| 1113 |
+
"complexity/outputs/cross_dataset_eval/transformer/cerf/summary_latest.csv",
|
| 1114 |
+
"complexity/outputs/cross_dataset_eval/transformer/commonlit/summary_latest.csv",
|
| 1115 |
+
"complexity/outputs/cross_dataset_eval/transformer/debertav3_train_pool/asap_aes/summary_latest.csv",
|
| 1116 |
+
"complexity/outputs/cross_dataset_eval/transformer/debertav3_train_pool/cambridge/summary_latest.csv",
|
| 1117 |
+
"complexity/outputs/cross_dataset_eval/transformer/debertav3_train_pool/cerf/summary_latest.csv",
|
| 1118 |
+
"complexity/outputs/cross_dataset_eval/transformer/debertav3_train_pool/commonlit/summary_latest.csv",
|
| 1119 |
+
"complexity/outputs/cross_dataset_eval/transformer/debertav3_train_pool/one_stop/summary_latest.csv",
|
| 1120 |
+
"complexity/outputs/cross_dataset_eval/transformer/distilbert_train_pool/asap_aes/summary_latest.csv",
|
| 1121 |
+
"complexity/outputs/cross_dataset_eval/transformer/distilbert_train_pool/cambridge/summary_latest.csv",
|
| 1122 |
+
"complexity/outputs/cross_dataset_eval/transformer/distilbert_train_pool/cerf/summary_latest.csv",
|
| 1123 |
+
"complexity/outputs/cross_dataset_eval/transformer/distilbert_train_pool/commonlit/summary_latest.csv",
|
| 1124 |
+
"complexity/outputs/cross_dataset_eval/transformer/distilbert_train_pool/one_stop/summary_latest.csv",
|
| 1125 |
+
"complexity/outputs/cross_dataset_eval/transformer/one_stop/summary_latest.csv",
|
| 1126 |
+
"complexity/outputs/cross_dataset_eval/transformer/roberta_train_pool/asap_aes/summary_latest.csv",
|
| 1127 |
+
"complexity/outputs/cross_dataset_eval/transformer/roberta_train_pool/cambridge/summary_latest.csv",
|
| 1128 |
+
"complexity/outputs/cross_dataset_eval/transformer/roberta_train_pool/cerf/summary_latest.csv",
|
| 1129 |
+
"complexity/outputs/cross_dataset_eval/transformer/roberta_train_pool/commonlit/summary_latest.csv",
|
| 1130 |
+
"complexity/outputs/cross_dataset_eval/transformer/roberta_train_pool/one_stop/summary_latest.csv",
|
| 1131 |
+
"complexity/outputs/metrics/baseline_curve_metrics.csv",
|
| 1132 |
+
"complexity/outputs/metrics/baseline_eval_metrics.csv",
|
| 1133 |
+
"complexity/outputs/metrics/classical_lc_metrics.csv",
|
| 1134 |
+
"complexity/outputs/metrics/combined_curve_metrics.csv",
|
| 1135 |
+
"complexity/outputs/metrics/deep_curve_metrics.csv",
|
| 1136 |
+
"complexity/outputs/metrics/deep_eval_metrics_internal.csv",
|
| 1137 |
+
"complexity/outputs/metrics/deep_eval_metrics_test.csv",
|
| 1138 |
+
"complexity/outputs/metrics/deep_eval_metrics_val.csv",
|
| 1139 |
+
"complexity/outputs/metrics/family_internal_summary.csv",
|
| 1140 |
+
"complexity/outputs/metrics/final_transformer_error_analysis.csv",
|
| 1141 |
+
"complexity/outputs/metrics/internal_family_summary_metrics.csv",
|
| 1142 |
+
"complexity/outputs/metrics/internal_model_summary_metrics.csv",
|
| 1143 |
+
"complexity/outputs/metrics/internal_test_leaderboard.csv",
|
| 1144 |
+
"complexity/outputs/metrics/manual_example_predictions.csv",
|
| 1145 |
+
"complexity/outputs/metrics/results_complexity-classification.csv",
|
| 1146 |
+
"complexity/outputs/metrics/top10_test_accuracy.csv",
|
| 1147 |
+
"complexity/outputs/metrics/top10_test_f1_macro.csv",
|
| 1148 |
+
"complexity/outputs/metrics/top10_val_f1_macro.csv",
|
| 1149 |
+
"complexity/outputs/metrics/transformer_summary_metrics.csv"
|
| 1150 |
+
]
|
| 1151 |
+
},
|
| 1152 |
+
"selected_dashboard_sources": [
|
| 1153 |
+
{
|
| 1154 |
+
"category": "metadata",
|
| 1155 |
+
"path": "app/app-models/prod-model-complexity/model-config.yaml",
|
| 1156 |
+
"reason": "Production model identity, runtime settings, and label mapping."
|
| 1157 |
+
},
|
| 1158 |
+
{
|
| 1159 |
+
"category": "experiment_config",
|
| 1160 |
+
"path": "complexity/outputs/metrics/cfg_20260310_2125.json",
|
| 1161 |
+
"reason": "Experiment or evaluation config attached for traceability."
|
| 1162 |
+
},
|
| 1163 |
+
{
|
| 1164 |
+
"category": "primary_evaluation",
|
| 1165 |
+
"path": "complexity/models/glove_bilstm_complexity_train_pool_20260307_163358/runs/metrics_latest.json",
|
| 1166 |
+
"reason": "Primary validation/test metrics for the production model."
|
| 1167 |
+
},
|
| 1168 |
+
{
|
| 1169 |
+
"category": "benchmark",
|
| 1170 |
+
"path": "complexity/outputs/metrics/results_complexity-classification.csv",
|
| 1171 |
+
"reason": "Benchmark rows used to compare the production model against peers."
|
| 1172 |
+
},
|
| 1173 |
+
{
|
| 1174 |
+
"category": "training_history",
|
| 1175 |
+
"path": "complexity/logs/complexity-classification_GloVe_BiLSTM_[train_pool].log",
|
| 1176 |
+
"reason": "Training-history artifact used to build learning and loss curves."
|
| 1177 |
+
},
|
| 1178 |
+
{
|
| 1179 |
+
"category": "cross_dataset",
|
| 1180 |
+
"path": "complexity/outputs/cross_dataset_eval/summary_latest.csv",
|
| 1181 |
+
"reason": "Cross-dataset evaluation summary rows."
|
| 1182 |
+
},
|
| 1183 |
+
{
|
| 1184 |
+
"category": "class_distribution",
|
| 1185 |
+
"path": "complexity/data/train_pool_train.parquet",
|
| 1186 |
+
"reason": "Explicit split artifacts used to derive class distributions."
|
| 1187 |
+
},
|
| 1188 |
+
{
|
| 1189 |
+
"category": "class_distribution",
|
| 1190 |
+
"path": "complexity/data/train_pool_val.parquet",
|
| 1191 |
+
"reason": "Explicit split artifacts used to derive class distributions."
|
| 1192 |
+
},
|
| 1193 |
+
{
|
| 1194 |
+
"category": "class_distribution",
|
| 1195 |
+
"path": "complexity/data/train_pool_test.parquet",
|
| 1196 |
+
"reason": "Explicit split artifacts used to derive class distributions."
|
| 1197 |
+
},
|
| 1198 |
+
{
|
| 1199 |
+
"category": "prediction_samples",
|
| 1200 |
+
"path": "complexity/outputs/metrics/manual_example_predictions.csv",
|
| 1201 |
+
"reason": "Prediction samples used for qualitative dashboard review."
|
| 1202 |
+
},
|
| 1203 |
+
{
|
| 1204 |
+
"category": "confusion_matrix",
|
| 1205 |
+
"path": "complexity/outputs/plots/confusion_matrices/cm_glove_bilstm_train_pool.png",
|
| 1206 |
+
"reason": "Confusion-matrix image copied into the dashboard bundle."
|
| 1207 |
+
}
|
| 1208 |
+
],
|
| 1209 |
+
"missing_dashboard_sources": [],
|
| 1210 |
+
"notes": [
|
| 1211 |
+
"Primary evaluation uses the production GloVe BiLSTM metrics_latest.json referenced by prod-model-complexity/model-config.yaml.",
|
| 1212 |
+
"Complexity is the richest dashboard domain in the repo: internal benchmark data, external evaluation summaries, split parquets, manual sample predictions, and prod-model training logs are all present.",
|
| 1213 |
+
"Confusion matrices exist only as saved images for the production model; no numeric matrix artifact was found.",
|
| 1214 |
+
"class_distribution parsing failed for complexity/data/train_pool_train.parquet: Parquet dashboard sources require the optional pandas dependency.",
|
| 1215 |
+
"class_distribution parsing failed for complexity/data/train_pool_val.parquet: Parquet dashboard sources require the optional pandas dependency.",
|
| 1216 |
+
"class_distribution parsing failed for complexity/data/train_pool_test.parquet: Parquet dashboard sources require the optional pandas dependency."
|
| 1217 |
+
]
|
| 1218 |
+
}
|
label_classes.json
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
[
|
| 2 |
+
"A1-A2",
|
| 3 |
+
"B1-B2",
|
| 4 |
+
"C1-C2"
|
| 5 |
+
]
|
model-config.yaml
ADDED
|
@@ -0,0 +1,103 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
model_id: complexity-bilstm-final-v1
|
| 2 |
+
domain: complexity
|
| 3 |
+
display_name: BiLSTM Final v1
|
| 4 |
+
description: Final BiLSTM with additive attention for CEFR-based text complexity classification.
|
| 5 |
+
is_active: true
|
| 6 |
+
priority: 3
|
| 7 |
+
framework:
|
| 8 |
+
type: pytorch
|
| 9 |
+
task: sequence-classification
|
| 10 |
+
library: torch
|
| 11 |
+
architecture: bilstm-attention
|
| 12 |
+
embeddings: fasttext-wiki-news-subwords-300
|
| 13 |
+
artifacts:
|
| 14 |
+
weights:
|
| 15 |
+
- models/glove_bilstm_complexity_train_pool_20260307_163358/best_model/best.pt
|
| 16 |
+
tokenizer: []
|
| 17 |
+
config:
|
| 18 |
+
- outputs/metrics/cfg_20260310_2125.json
|
| 19 |
+
- models/glove_bilstm_complexity_train_pool_20260307_163358/runs/metrics_latest.json
|
| 20 |
+
vocabulary:
|
| 21 |
+
- models/shared/vocab.pkl
|
| 22 |
+
label_map_file: models/shared/class2id.json
|
| 23 |
+
label_classes_file: models/shared/label_classes.json
|
| 24 |
+
label_encoder_file: models/shared/label_encoder.pkl
|
| 25 |
+
model:
|
| 26 |
+
embedding_dim: 300
|
| 27 |
+
hidden_dim: 128
|
| 28 |
+
num_layers: 2
|
| 29 |
+
dropout: 0.3
|
| 30 |
+
bidirectional: true
|
| 31 |
+
attention: additive
|
| 32 |
+
vocab_size: 50000
|
| 33 |
+
pad_token: <PAD>
|
| 34 |
+
unk_token: <UNK>
|
| 35 |
+
runtime:
|
| 36 |
+
max_sequence_length: 256
|
| 37 |
+
truncation: true
|
| 38 |
+
padding: true
|
| 39 |
+
batch_size: 1
|
| 40 |
+
device: cpu
|
| 41 |
+
preprocessing: normalize_text + preprocess_from_normalized + texts_to_sequences
|
| 42 |
+
dashboard:
|
| 43 |
+
builder: generic-v1
|
| 44 |
+
notes:
|
| 45 |
+
- Primary evaluation uses the production GloVe BiLSTM metrics_latest.json referenced
|
| 46 |
+
by prod-model-complexity/model-config.yaml.
|
| 47 |
+
- 'Complexity is the richest dashboard domain in the repo: internal benchmark data,
|
| 48 |
+
external evaluation summaries, split parquets, manual sample predictions, and
|
| 49 |
+
prod-model training logs are all present.'
|
| 50 |
+
- Confusion matrices exist only as saved images for the production model; no numeric
|
| 51 |
+
matrix artifact was found.
|
| 52 |
+
sources:
|
| 53 |
+
experiment_config: complexity/outputs/metrics/cfg_20260310_2125.json
|
| 54 |
+
primary_evaluation:
|
| 55 |
+
path: complexity/models/glove_bilstm_complexity_train_pool_20260307_163358/runs/metrics_latest.json
|
| 56 |
+
model_name: GloVe BiLSTM [train_pool]
|
| 57 |
+
benchmark:
|
| 58 |
+
path: complexity/outputs/metrics/results_complexity-classification.csv
|
| 59 |
+
model_name: GloVe BiLSTM [train_pool]
|
| 60 |
+
training_history: complexity/logs/complexity-classification_GloVe_BiLSTM_[train_pool].log
|
| 61 |
+
learning_curve:
|
| 62 |
+
status: not_applicable
|
| 63 |
+
reason: The complexity benchmark is built around a fixed train_pool dataset
|
| 64 |
+
rather than multiple prod-relevant train sizes.
|
| 65 |
+
cross_dataset:
|
| 66 |
+
path: complexity/outputs/cross_dataset_eval/summary_latest.csv
|
| 67 |
+
model_name: GloVe BiLSTM
|
| 68 |
+
class_distribution:
|
| 69 |
+
train: complexity/data/train_pool_train.parquet
|
| 70 |
+
val: complexity/data/train_pool_val.parquet
|
| 71 |
+
test: complexity/data/train_pool_test.parquet
|
| 72 |
+
label_field: label
|
| 73 |
+
dataset_field: source_dataset
|
| 74 |
+
prediction_samples:
|
| 75 |
+
path: complexity/outputs/metrics/manual_example_predictions.csv
|
| 76 |
+
production_prediction:
|
| 77 |
+
model: GloVe BiLSTM
|
| 78 |
+
label_field: GloVe_BiLSTM_label
|
| 79 |
+
confidence_field: GloVe_BiLSTM_conf
|
| 80 |
+
reference_prediction:
|
| 81 |
+
model: DeBERTaV3
|
| 82 |
+
label_field: DeBERTaV3_label
|
| 83 |
+
confidence_field: DeBERTaV3_conf
|
| 84 |
+
confusion_matrix: complexity/outputs/plots/confusion_matrices/cm_glove_bilstm_train_pool.png
|
| 85 |
+
inference:
|
| 86 |
+
return_probabilities: true
|
| 87 |
+
confidence_method: softmax_max
|
| 88 |
+
ui:
|
| 89 |
+
domain_display_name: Text Complexity
|
| 90 |
+
color_token: complexity
|
| 91 |
+
group: complexity-core
|
| 92 |
+
labels:
|
| 93 |
+
type: single-label-classification
|
| 94 |
+
classes:
|
| 95 |
+
- id: 0
|
| 96 |
+
name: A1-A2
|
| 97 |
+
display_name: A1-A2
|
| 98 |
+
- id: 1
|
| 99 |
+
name: B1-B2
|
| 100 |
+
display_name: B1-B2
|
| 101 |
+
- id: 2
|
| 102 |
+
name: C1-C2
|
| 103 |
+
display_name: C1-C2
|
test_inference.ipynb
ADDED
|
@@ -0,0 +1,456 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"cells": [
|
| 3 |
+
{
|
| 4 |
+
"cell_type": "markdown",
|
| 5 |
+
"id": "af313b4f",
|
| 6 |
+
"metadata": {},
|
| 7 |
+
"source": [
|
| 8 |
+
"# Complexity Model Inference Test\n",
|
| 9 |
+
"\n",
|
| 10 |
+
"This notebook loads the saved production complexity model and its local artifacts from this folder, rebuilds the BiLSTM architecture, and runs inference on a few example sentences. It performs inference only."
|
| 11 |
+
]
|
| 12 |
+
},
|
| 13 |
+
{
|
| 14 |
+
"cell_type": "markdown",
|
| 15 |
+
"id": "9976ef3c",
|
| 16 |
+
"metadata": {},
|
| 17 |
+
"source": [
|
| 18 |
+
"## 1. Load the local artifacts\n",
|
| 19 |
+
"\n",
|
| 20 |
+
"The code below loads the checkpoint, model config, vocabulary, and label classes directly from the current folder."
|
| 21 |
+
]
|
| 22 |
+
},
|
| 23 |
+
{
|
| 24 |
+
"cell_type": "code",
|
| 25 |
+
"execution_count": 1,
|
| 26 |
+
"id": "635fe6e7",
|
| 27 |
+
"metadata": {},
|
| 28 |
+
"outputs": [
|
| 29 |
+
{
|
| 30 |
+
"name": "stdout",
|
| 31 |
+
"output_type": "stream",
|
| 32 |
+
"text": [
|
| 33 |
+
"Model directory: /Users/georgijkutivadze/projects/mago-text-scoring/app/app-models/prod-model-complexity\n",
|
| 34 |
+
"Device: cpu\n",
|
| 35 |
+
"Artifacts: ['best.pt', 'label_classes.json', 'model-config.yaml', 'test_inference.ipynb', 'vocab.pkl']\n",
|
| 36 |
+
"Checkpoint keys: ['epoch', 'model_state', 'optimizer_state', 'scheduler_state', 'best_f1', 'history', 'model_name', 'task']\n",
|
| 37 |
+
"Embedding matrix shape: (50000, 300)\n",
|
| 38 |
+
"Vocabulary size: 50000\n",
|
| 39 |
+
"Labels: ['A1-A2', 'B1-B2', 'C1-C2']\n"
|
| 40 |
+
]
|
| 41 |
+
}
|
| 42 |
+
],
|
| 43 |
+
"source": [
|
| 44 |
+
"from pathlib import Path\n",
|
| 45 |
+
"import json\n",
|
| 46 |
+
"import pickle\n",
|
| 47 |
+
"import re\n",
|
| 48 |
+
"import unicodedata\n",
|
| 49 |
+
"\n",
|
| 50 |
+
"import numpy as np\n",
|
| 51 |
+
"import pandas as pd\n",
|
| 52 |
+
"import torch\n",
|
| 53 |
+
"import torch.nn as nn\n",
|
| 54 |
+
"import yaml\n",
|
| 55 |
+
"\n",
|
| 56 |
+
"MODEL_DIR = Path(\".\").resolve()\n",
|
| 57 |
+
"device = torch.device(\"cuda\" if torch.cuda.is_available() else \"cpu\")\n",
|
| 58 |
+
"\n",
|
| 59 |
+
"with (MODEL_DIR / \"model-config.yaml\").open(\"r\", encoding=\"utf-8\") as handle:\n",
|
| 60 |
+
" model_config = yaml.safe_load(handle)\n",
|
| 61 |
+
"\n",
|
| 62 |
+
"with (MODEL_DIR / \"label_classes.json\").open(\"r\", encoding=\"utf-8\") as handle:\n",
|
| 63 |
+
" label_classes = json.load(handle)\n",
|
| 64 |
+
"\n",
|
| 65 |
+
"with (MODEL_DIR / \"vocab.pkl\").open(\"rb\") as handle:\n",
|
| 66 |
+
" vocab = pickle.load(handle)\n",
|
| 67 |
+
"\n",
|
| 68 |
+
"checkpoint = torch.load(MODEL_DIR / \"best.pt\", map_location=device)\n",
|
| 69 |
+
"state_dict = checkpoint[\"model_state\"] if isinstance(checkpoint, dict) and \"model_state\" in checkpoint else checkpoint\n",
|
| 70 |
+
"embedding_matrix = state_dict[\"embedding.weight\"].detach().cpu().numpy()\n",
|
| 71 |
+
"artifact_files = sorted(path.name for path in MODEL_DIR.iterdir() if path.is_file())\n",
|
| 72 |
+
"\n",
|
| 73 |
+
"print(f\"Model directory: {MODEL_DIR}\")\n",
|
| 74 |
+
"print(f\"Device: {device}\")\n",
|
| 75 |
+
"print(f\"Artifacts: {artifact_files}\")\n",
|
| 76 |
+
"print(f\"Checkpoint keys: {list(checkpoint.keys()) if isinstance(checkpoint, dict) else 'state_dict'}\")\n",
|
| 77 |
+
"print(f\"Embedding matrix shape: {embedding_matrix.shape}\")\n",
|
| 78 |
+
"print(f\"Vocabulary size: {len(vocab)}\")\n",
|
| 79 |
+
"print(f\"Labels: {label_classes}\")\n"
|
| 80 |
+
]
|
| 81 |
+
},
|
| 82 |
+
{
|
| 83 |
+
"cell_type": "markdown",
|
| 84 |
+
"id": "abe5a2e3",
|
| 85 |
+
"metadata": {},
|
| 86 |
+
"source": [
|
| 87 |
+
"## 2. Recreate the model and preprocessing pipeline\n",
|
| 88 |
+
"\n",
|
| 89 |
+
"The notebook rebuilds the saved BiLSTM + additive-attention classifier and applies the lightweight text normalization used for inference."
|
| 90 |
+
]
|
| 91 |
+
},
|
| 92 |
+
{
|
| 93 |
+
"cell_type": "code",
|
| 94 |
+
"execution_count": 2,
|
| 95 |
+
"id": "f86fa8a2",
|
| 96 |
+
"metadata": {},
|
| 97 |
+
"outputs": [],
|
| 98 |
+
"source": [
|
| 99 |
+
"class AdditiveAttention(nn.Module):\n",
|
| 100 |
+
" def __init__(self, hidden_dim: int):\n",
|
| 101 |
+
" super().__init__()\n",
|
| 102 |
+
" self.attn = nn.Linear(hidden_dim, 1, bias=False)\n",
|
| 103 |
+
"\n",
|
| 104 |
+
" def forward(self, hidden_states, mask=None):\n",
|
| 105 |
+
" scores = self.attn(hidden_states).squeeze(-1)\n",
|
| 106 |
+
" if mask is not None:\n",
|
| 107 |
+
" scores = scores.masked_fill(~mask, -1e9)\n",
|
| 108 |
+
" weights = torch.softmax(scores, dim=1)\n",
|
| 109 |
+
" context = (weights.unsqueeze(-1) * hidden_states).sum(dim=1)\n",
|
| 110 |
+
" return context, weights\n",
|
| 111 |
+
"\n",
|
| 112 |
+
"\n",
|
| 113 |
+
"class BiLSTMAttention(nn.Module):\n",
|
| 114 |
+
" def __init__(\n",
|
| 115 |
+
" self,\n",
|
| 116 |
+
" embedding_matrix: np.ndarray,\n",
|
| 117 |
+
" num_classes: int,\n",
|
| 118 |
+
" hidden_dim: int = 128,\n",
|
| 119 |
+
" num_layers: int = 2,\n",
|
| 120 |
+
" dropout: float = 0.3,\n",
|
| 121 |
+
" ):\n",
|
| 122 |
+
" super().__init__()\n",
|
| 123 |
+
" _, embedding_dim = embedding_matrix.shape\n",
|
| 124 |
+
" self.embedding = nn.Embedding.from_pretrained(\n",
|
| 125 |
+
" torch.tensor(embedding_matrix, dtype=torch.float32),\n",
|
| 126 |
+
" freeze=False,\n",
|
| 127 |
+
" padding_idx=0,\n",
|
| 128 |
+
" )\n",
|
| 129 |
+
" self.lstm = nn.LSTM(\n",
|
| 130 |
+
" input_size=embedding_dim,\n",
|
| 131 |
+
" hidden_size=hidden_dim,\n",
|
| 132 |
+
" num_layers=num_layers,\n",
|
| 133 |
+
" batch_first=True,\n",
|
| 134 |
+
" bidirectional=True,\n",
|
| 135 |
+
" dropout=dropout if num_layers > 1 else 0.0,\n",
|
| 136 |
+
" )\n",
|
| 137 |
+
" self.attention = AdditiveAttention(hidden_dim * 2)\n",
|
| 138 |
+
" self.dropout = nn.Dropout(dropout)\n",
|
| 139 |
+
" self.fc = nn.Linear(hidden_dim * 2, num_classes)\n",
|
| 140 |
+
"\n",
|
| 141 |
+
" def forward(self, token_ids):\n",
|
| 142 |
+
" mask = token_ids != 0\n",
|
| 143 |
+
" embeddings = self.dropout(self.embedding(token_ids))\n",
|
| 144 |
+
" hidden_states, _ = self.lstm(embeddings)\n",
|
| 145 |
+
" context, _ = self.attention(hidden_states, mask)\n",
|
| 146 |
+
" return self.fc(self.dropout(context))\n",
|
| 147 |
+
"\n",
|
| 148 |
+
"\n",
|
| 149 |
+
"DEFAULT_STOPWORDS = {\n",
|
| 150 |
+
" \"a\", \"an\", \"and\", \"are\", \"as\", \"at\", \"be\", \"by\", \"for\", \"from\",\n",
|
| 151 |
+
" \"has\", \"he\", \"in\", \"is\", \"it\", \"its\", \"of\", \"on\", \"that\", \"the\",\n",
|
| 152 |
+
" \"to\", \"was\", \"were\", \"will\", \"with\"\n",
|
| 153 |
+
"}\n",
|
| 154 |
+
"\n",
|
| 155 |
+
"try:\n",
|
| 156 |
+
" from nltk.corpus import stopwords\n",
|
| 157 |
+
" STOPWORDS = set(stopwords.words(\"english\"))\n",
|
| 158 |
+
"except Exception:\n",
|
| 159 |
+
" STOPWORDS = DEFAULT_STOPWORDS\n",
|
| 160 |
+
"\n",
|
| 161 |
+
"try:\n",
|
| 162 |
+
" from nltk.stem import WordNetLemmatizer\n",
|
| 163 |
+
" LEMMATIZER = WordNetLemmatizer()\n",
|
| 164 |
+
"except Exception:\n",
|
| 165 |
+
" LEMMATIZER = None\n",
|
| 166 |
+
"\n",
|
| 167 |
+
"\n",
|
| 168 |
+
"def maybe_lemmatize(token: str) -> str:\n",
|
| 169 |
+
" if LEMMATIZER is None:\n",
|
| 170 |
+
" return token\n",
|
| 171 |
+
" try:\n",
|
| 172 |
+
" return LEMMATIZER.lemmatize(token)\n",
|
| 173 |
+
" except Exception:\n",
|
| 174 |
+
" return token\n",
|
| 175 |
+
"\n",
|
| 176 |
+
"\n",
|
| 177 |
+
"def normalize_text(text: str) -> str:\n",
|
| 178 |
+
" text = str(text).lower()\n",
|
| 179 |
+
" text = unicodedata.normalize(\"NFKD\", text)\n",
|
| 180 |
+
" text = re.sub(r\"http\\S+|www\\S+\", \" \", text)\n",
|
| 181 |
+
" text = re.sub(r\"@\\w+|#\\w+\", \" \", text)\n",
|
| 182 |
+
" text = re.sub(r\"[^a-zA-Z0-9\\s!?.,'\\\"]\", \" \", text)\n",
|
| 183 |
+
" text = re.sub(r\"\\s+\", \" \", text).strip()\n",
|
| 184 |
+
" return text\n",
|
| 185 |
+
"\n",
|
| 186 |
+
"\n",
|
| 187 |
+
"def preprocess_from_normalized(text: str) -> str:\n",
|
| 188 |
+
" tokens = [token for token in text.split() if token not in STOPWORDS]\n",
|
| 189 |
+
" return \" \".join(maybe_lemmatize(token) for token in tokens)\n",
|
| 190 |
+
"\n",
|
| 191 |
+
"\n",
|
| 192 |
+
"def texts_to_sequences(texts, vocab_map, max_len, unk_token=\"<UNK>\"):\n",
|
| 193 |
+
" unk_idx = vocab_map.get(unk_token, 1)\n",
|
| 194 |
+
" sequences = np.zeros((len(texts), max_len), dtype=np.int64)\n",
|
| 195 |
+
" for row_idx, text in enumerate(texts):\n",
|
| 196 |
+
" for col_idx, token in enumerate(str(text).split()[:max_len]):\n",
|
| 197 |
+
" sequences[row_idx, col_idx] = vocab_map.get(token, unk_idx)\n",
|
| 198 |
+
" return sequences\n"
|
| 199 |
+
]
|
| 200 |
+
},
|
| 201 |
+
{
|
| 202 |
+
"cell_type": "markdown",
|
| 203 |
+
"id": "0c36b0e4",
|
| 204 |
+
"metadata": {},
|
| 205 |
+
"source": [
|
| 206 |
+
"## 3. Restore the checkpoint and run example inference\n",
|
| 207 |
+
"\n",
|
| 208 |
+
"This cell rebuilds the model, restores the saved weights, preprocesses example sentences, and displays the predicted complexity label with probabilities."
|
| 209 |
+
]
|
| 210 |
+
},
|
| 211 |
+
{
|
| 212 |
+
"cell_type": "code",
|
| 213 |
+
"execution_count": 5,
|
| 214 |
+
"id": "229ce4ed",
|
| 215 |
+
"metadata": {},
|
| 216 |
+
"outputs": [],
|
| 217 |
+
"source": [
|
| 218 |
+
"runtime_config = model_config.get(\"runtime\", {})\n",
|
| 219 |
+
"network_config = model_config.get(\"model\", {})\n",
|
| 220 |
+
"\n",
|
| 221 |
+
"model = BiLSTMAttention(\n",
|
| 222 |
+
" embedding_matrix=embedding_matrix,\n",
|
| 223 |
+
" num_classes=len(label_classes),\n",
|
| 224 |
+
" hidden_dim=network_config.get(\"hidden_dim\", 128),\n",
|
| 225 |
+
" num_layers=network_config.get(\"num_layers\", 2),\n",
|
| 226 |
+
" dropout=network_config.get(\"dropout\", 0.3),\n",
|
| 227 |
+
")\n",
|
| 228 |
+
"model.load_state_dict(state_dict)\n",
|
| 229 |
+
"model.to(device)\n",
|
| 230 |
+
"model.eval()\n",
|
| 231 |
+
"\n",
|
| 232 |
+
"MAX_LEN = runtime_config.get(\"max_sequence_length\", 256)\n",
|
| 233 |
+
"\n",
|
| 234 |
+
"\n",
|
| 235 |
+
"@torch.inference_mode()\n",
|
| 236 |
+
"def predict_texts(texts):\n",
|
| 237 |
+
" normalized = [normalize_text(text) for text in texts]\n",
|
| 238 |
+
" preprocessed = [preprocess_from_normalized(text) for text in normalized]\n",
|
| 239 |
+
" sequences = texts_to_sequences(preprocessed, vocab, MAX_LEN)\n",
|
| 240 |
+
" inputs = torch.tensor(sequences, dtype=torch.long, device=device)\n",
|
| 241 |
+
" logits = model(inputs)\n",
|
| 242 |
+
" probabilities = torch.softmax(logits, dim=-1).cpu().numpy()\n",
|
| 243 |
+
"\n",
|
| 244 |
+
" rows = []\n",
|
| 245 |
+
" for raw_text, normalized_text, preprocessed_text, probs in zip(texts, normalized, preprocessed, probabilities):\n",
|
| 246 |
+
" pred_idx = int(probs.argmax())\n",
|
| 247 |
+
" rows.append(\n",
|
| 248 |
+
" {\n",
|
| 249 |
+
" \"text\": raw_text,\n",
|
| 250 |
+
" \"normalized_text\": normalized_text,\n",
|
| 251 |
+
" \"preprocessed_text\": preprocessed_text,\n",
|
| 252 |
+
" \"predicted_label\": label_classes[pred_idx],\n",
|
| 253 |
+
" \"confidence\": round(float(probs[pred_idx]), 4),\n",
|
| 254 |
+
" \"probabilities\": {\n",
|
| 255 |
+
" label: round(float(score), 4)\n",
|
| 256 |
+
" for label, score in zip(label_classes, probs)\n",
|
| 257 |
+
" },\n",
|
| 258 |
+
" }\n",
|
| 259 |
+
" )\n",
|
| 260 |
+
"\n",
|
| 261 |
+
" return pd.DataFrame(rows)"
|
| 262 |
+
]
|
| 263 |
+
},
|
| 264 |
+
{
|
| 265 |
+
"cell_type": "code",
|
| 266 |
+
"execution_count": 7,
|
| 267 |
+
"id": "62c8eeb8-3663-40f7-9b75-20ba0e6017db",
|
| 268 |
+
"metadata": {},
|
| 269 |
+
"outputs": [
|
| 270 |
+
{
|
| 271 |
+
"data": {
|
| 272 |
+
"text/html": [
|
| 273 |
+
"<div>\n",
|
| 274 |
+
"<style scoped>\n",
|
| 275 |
+
" .dataframe tbody tr th:only-of-type {\n",
|
| 276 |
+
" vertical-align: middle;\n",
|
| 277 |
+
" }\n",
|
| 278 |
+
"\n",
|
| 279 |
+
" .dataframe tbody tr th {\n",
|
| 280 |
+
" vertical-align: top;\n",
|
| 281 |
+
" }\n",
|
| 282 |
+
"\n",
|
| 283 |
+
" .dataframe thead th {\n",
|
| 284 |
+
" text-align: right;\n",
|
| 285 |
+
" }\n",
|
| 286 |
+
"</style>\n",
|
| 287 |
+
"<table border=\"1\" class=\"dataframe\">\n",
|
| 288 |
+
" <thead>\n",
|
| 289 |
+
" <tr style=\"text-align: right;\">\n",
|
| 290 |
+
" <th></th>\n",
|
| 291 |
+
" <th>text</th>\n",
|
| 292 |
+
" <th>normalized_text</th>\n",
|
| 293 |
+
" <th>preprocessed_text</th>\n",
|
| 294 |
+
" <th>predicted_label</th>\n",
|
| 295 |
+
" <th>confidence</th>\n",
|
| 296 |
+
" <th>probabilities</th>\n",
|
| 297 |
+
" </tr>\n",
|
| 298 |
+
" </thead>\n",
|
| 299 |
+
" <tbody>\n",
|
| 300 |
+
" <tr>\n",
|
| 301 |
+
" <th>0</th>\n",
|
| 302 |
+
" <td>I have a dog. It is small and very cute. We play in the park every day.</td>\n",
|
| 303 |
+
" <td>i have a dog. it is small and very cute. we play in the park every day.</td>\n",
|
| 304 |
+
" <td>dog. small cute. play park every day.</td>\n",
|
| 305 |
+
" <td>A1-A2</td>\n",
|
| 306 |
+
" <td>0.6027</td>\n",
|
| 307 |
+
" <td>{'A1-A2': 0.6027, 'B1-B2': 0.3619, 'C1-C2': 0.0354}</td>\n",
|
| 308 |
+
" </tr>\n",
|
| 309 |
+
" <tr>\n",
|
| 310 |
+
" <th>1</th>\n",
|
| 311 |
+
" <td>My name is Anna. I am a student. I live with my family in a big city.</td>\n",
|
| 312 |
+
" <td>my name is anna. i am a student. i live with my family in a big city.</td>\n",
|
| 313 |
+
" <td>name anna. student. live family big city.</td>\n",
|
| 314 |
+
" <td>C1-C2</td>\n",
|
| 315 |
+
" <td>0.7338</td>\n",
|
| 316 |
+
" <td>{'A1-A2': 0.1452, 'B1-B2': 0.121, 'C1-C2': 0.7338}</td>\n",
|
| 317 |
+
" </tr>\n",
|
| 318 |
+
" <tr>\n",
|
| 319 |
+
" <th>2</th>\n",
|
| 320 |
+
" <td>Many people enjoy traveling by train because it is comfortable, affordable, and less stressful than flying.</td>\n",
|
| 321 |
+
" <td>many people enjoy traveling by train because it is comfortable, affordable, and less stressful than flying.</td>\n",
|
| 322 |
+
" <td>many people enjoy traveling train comfortable, affordable, less stressful flying.</td>\n",
|
| 323 |
+
" <td>C1-C2</td>\n",
|
| 324 |
+
" <td>0.8663</td>\n",
|
| 325 |
+
" <td>{'A1-A2': 0.0018, 'B1-B2': 0.1319, 'C1-C2': 0.8663}</td>\n",
|
| 326 |
+
" </tr>\n",
|
| 327 |
+
" <tr>\n",
|
| 328 |
+
" <th>3</th>\n",
|
| 329 |
+
" <td>If students manage their time well, they can improve their grades and still have enough time for rest and hobbies.</td>\n",
|
| 330 |
+
" <td>if students manage their time well, they can improve their grades and still have enough time for rest and hobbies.</td>\n",
|
| 331 |
+
" <td>student manage time well, improve grade still enough time rest hobbies.</td>\n",
|
| 332 |
+
" <td>B1-B2</td>\n",
|
| 333 |
+
" <td>0.9152</td>\n",
|
| 334 |
+
" <td>{'A1-A2': 0.0168, 'B1-B2': 0.9152, 'C1-C2': 0.068}</td>\n",
|
| 335 |
+
" </tr>\n",
|
| 336 |
+
" <tr>\n",
|
| 337 |
+
" <th>4</th>\n",
|
| 338 |
+
" <td>The committee’s recommendation, while ostensibly pragmatic, ultimately fails to address the structural asymmetries t...</td>\n",
|
| 339 |
+
" <td>the committee s recommendation, while ostensibly pragmatic, ultimately fails to address the structural asymmetries t...</td>\n",
|
| 340 |
+
" <td>committee recommendation, ostensibly pragmatic, ultimately fails address structural asymmetry perpetuate institution...</td>\n",
|
| 341 |
+
" <td>C1-C2</td>\n",
|
| 342 |
+
" <td>0.9565</td>\n",
|
| 343 |
+
" <td>{'A1-A2': 0.0023, 'B1-B2': 0.0412, 'C1-C2': 0.9565}</td>\n",
|
| 344 |
+
" </tr>\n",
|
| 345 |
+
" <tr>\n",
|
| 346 |
+
" <th>5</th>\n",
|
| 347 |
+
" <td>Her argument is particularly compelling because it synthesizes historical evidence, theoretical precision, and a sop...</td>\n",
|
| 348 |
+
" <td>her argument is particularly compelling because it synthesizes historical evidence, theoretical precision, and a sop...</td>\n",
|
| 349 |
+
" <td>argument particularly compelling synthesizes historical evidence, theoretical precision, sophisticated awareness cul...</td>\n",
|
| 350 |
+
" <td>B1-B2</td>\n",
|
| 351 |
+
" <td>0.6361</td>\n",
|
| 352 |
+
" <td>{'A1-A2': 0.2443, 'B1-B2': 0.6361, 'C1-C2': 0.1197}</td>\n",
|
| 353 |
+
" </tr>\n",
|
| 354 |
+
" </tbody>\n",
|
| 355 |
+
"</table>\n",
|
| 356 |
+
"</div>"
|
| 357 |
+
],
|
| 358 |
+
"text/plain": [
|
| 359 |
+
" text \\\n",
|
| 360 |
+
"0 I have a dog. It is small and very cute. We play in the park every day. \n",
|
| 361 |
+
"1 My name is Anna. I am a student. I live with my family in a big city. \n",
|
| 362 |
+
"2 Many people enjoy traveling by train because it is comfortable, affordable, and less stressful than flying. \n",
|
| 363 |
+
"3 If students manage their time well, they can improve their grades and still have enough time for rest and hobbies. \n",
|
| 364 |
+
"4 The committee’s recommendation, while ostensibly pragmatic, ultimately fails to address the structural asymmetries t... \n",
|
| 365 |
+
"5 Her argument is particularly compelling because it synthesizes historical evidence, theoretical precision, and a sop... \n",
|
| 366 |
+
"\n",
|
| 367 |
+
" normalized_text \\\n",
|
| 368 |
+
"0 i have a dog. it is small and very cute. we play in the park every day. \n",
|
| 369 |
+
"1 my name is anna. i am a student. i live with my family in a big city. \n",
|
| 370 |
+
"2 many people enjoy traveling by train because it is comfortable, affordable, and less stressful than flying. \n",
|
| 371 |
+
"3 if students manage their time well, they can improve their grades and still have enough time for rest and hobbies. \n",
|
| 372 |
+
"4 the committee s recommendation, while ostensibly pragmatic, ultimately fails to address the structural asymmetries t... \n",
|
| 373 |
+
"5 her argument is particularly compelling because it synthesizes historical evidence, theoretical precision, and a sop... \n",
|
| 374 |
+
"\n",
|
| 375 |
+
" preprocessed_text \\\n",
|
| 376 |
+
"0 dog. small cute. play park every day. \n",
|
| 377 |
+
"1 name anna. student. live family big city. \n",
|
| 378 |
+
"2 many people enjoy traveling train comfortable, affordable, less stressful flying. \n",
|
| 379 |
+
"3 student manage time well, improve grade still enough time rest hobbies. \n",
|
| 380 |
+
"4 committee recommendation, ostensibly pragmatic, ultimately fails address structural asymmetry perpetuate institution... \n",
|
| 381 |
+
"5 argument particularly compelling synthesizes historical evidence, theoretical precision, sophisticated awareness cul... \n",
|
| 382 |
+
"\n",
|
| 383 |
+
" predicted_label confidence \\\n",
|
| 384 |
+
"0 A1-A2 0.6027 \n",
|
| 385 |
+
"1 C1-C2 0.7338 \n",
|
| 386 |
+
"2 C1-C2 0.8663 \n",
|
| 387 |
+
"3 B1-B2 0.9152 \n",
|
| 388 |
+
"4 C1-C2 0.9565 \n",
|
| 389 |
+
"5 B1-B2 0.6361 \n",
|
| 390 |
+
"\n",
|
| 391 |
+
" probabilities \n",
|
| 392 |
+
"0 {'A1-A2': 0.6027, 'B1-B2': 0.3619, 'C1-C2': 0.0354} \n",
|
| 393 |
+
"1 {'A1-A2': 0.1452, 'B1-B2': 0.121, 'C1-C2': 0.7338} \n",
|
| 394 |
+
"2 {'A1-A2': 0.0018, 'B1-B2': 0.1319, 'C1-C2': 0.8663} \n",
|
| 395 |
+
"3 {'A1-A2': 0.0168, 'B1-B2': 0.9152, 'C1-C2': 0.068} \n",
|
| 396 |
+
"4 {'A1-A2': 0.0023, 'B1-B2': 0.0412, 'C1-C2': 0.9565} \n",
|
| 397 |
+
"5 {'A1-A2': 0.2443, 'B1-B2': 0.6361, 'C1-C2': 0.1197} "
|
| 398 |
+
]
|
| 399 |
+
},
|
| 400 |
+
"execution_count": 7,
|
| 401 |
+
"metadata": {},
|
| 402 |
+
"output_type": "execute_result"
|
| 403 |
+
}
|
| 404 |
+
],
|
| 405 |
+
"source": [
|
| 406 |
+
"pd.set_option(\"display.max_colwidth\", 120)\n",
|
| 407 |
+
"\n",
|
| 408 |
+
"example_sentences = [\n",
|
| 409 |
+
" # A1-A2\n",
|
| 410 |
+
" \"I have a dog. It is small and very cute. We play in the park every day.\",\n",
|
| 411 |
+
" \"My name is Anna. I am a student. I live with my family in a big city.\",\n",
|
| 412 |
+
"\n",
|
| 413 |
+
" # B1-B2\n",
|
| 414 |
+
" \"Many people enjoy traveling by train because it is comfortable, affordable, and less stressful than flying.\",\n",
|
| 415 |
+
" \"If students manage their time well, they can improve their grades and still have enough time for rest and hobbies.\",\n",
|
| 416 |
+
"\n",
|
| 417 |
+
" # C1-C2\n",
|
| 418 |
+
" \"The committee’s recommendation, while ostensibly pragmatic, ultimately fails to address the structural asymmetries that perpetuate institutional inefficiency.\",\n",
|
| 419 |
+
" \"Her argument is particularly compelling because it synthesizes historical evidence, theoretical precision, and a sophisticated awareness of cultural nuance.\"\n",
|
| 420 |
+
"]\n",
|
| 421 |
+
"\n",
|
| 422 |
+
"results = predict_texts(example_sentences)\n",
|
| 423 |
+
"results"
|
| 424 |
+
]
|
| 425 |
+
},
|
| 426 |
+
{
|
| 427 |
+
"cell_type": "code",
|
| 428 |
+
"execution_count": null,
|
| 429 |
+
"id": "31f6fc98-7438-4e16-a8aa-87e63c61ee6e",
|
| 430 |
+
"metadata": {},
|
| 431 |
+
"outputs": [],
|
| 432 |
+
"source": []
|
| 433 |
+
}
|
| 434 |
+
],
|
| 435 |
+
"metadata": {
|
| 436 |
+
"kernelspec": {
|
| 437 |
+
"display_name": "Python 3 (ipykernel)",
|
| 438 |
+
"language": "python",
|
| 439 |
+
"name": "python3"
|
| 440 |
+
},
|
| 441 |
+
"language_info": {
|
| 442 |
+
"codemirror_mode": {
|
| 443 |
+
"name": "ipython",
|
| 444 |
+
"version": 3
|
| 445 |
+
},
|
| 446 |
+
"file_extension": ".py",
|
| 447 |
+
"mimetype": "text/x-python",
|
| 448 |
+
"name": "python",
|
| 449 |
+
"nbconvert_exporter": "python",
|
| 450 |
+
"pygments_lexer": "ipython3",
|
| 451 |
+
"version": "3.11.11"
|
| 452 |
+
}
|
| 453 |
+
},
|
| 454 |
+
"nbformat": 4,
|
| 455 |
+
"nbformat_minor": 5
|
| 456 |
+
}
|
vocab.pkl
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:cbce8dfb87bf30450435d0e38f437b9b34c97b3a7d6faa485ce3e605c5a90278
|
| 3 |
+
size 675803
|