Upload folder using huggingface_hub
Browse filesThis view is limited to 50 files because it contains too many changes. See raw diff
- romanian/__init__.py +1 -0
- romanian/__pycache__/__init__.cpython-310.pyc +0 -0
- romanian/__pycache__/inference_engine_romanian.cpython-310.pyc +0 -0
- romanian/inference_engine_romanian.py +480 -0
- romanian/models/assignment_0/config.json +35 -0
- romanian/models/assignment_0/score_config.json +11 -0
- romanian/models/assignment_0/tokenizer.json +0 -0
- romanian/models/assignment_0/tokenizer_config.json +14 -0
- romanian/models/assignment_1/config.json +35 -0
- romanian/models/assignment_1/score_config.json +11 -0
- romanian/models/assignment_1/tokenizer.json +0 -0
- romanian/models/assignment_1/tokenizer_config.json +14 -0
- romanian/models/assignment_2/config.json +35 -0
- romanian/models/assignment_2/score_config.json +11 -0
- romanian/models/assignment_2/tokenizer.json +0 -0
- romanian/models/assignment_2/tokenizer_config.json +14 -0
- romanian/models/assignment_3/config.json +35 -0
- romanian/models/assignment_3/score_config.json +11 -0
- romanian/models/assignment_3/tokenizer.json +0 -0
- romanian/models/assignment_3/tokenizer_config.json +14 -0
- romanian/models/assignment_4/config.json +35 -0
- romanian/models/assignment_4/score_config.json +11 -0
- romanian/models/assignment_4/tokenizer.json +0 -0
- romanian/models/assignment_4/tokenizer_config.json +14 -0
- romanian/models/assignment_5/config.json +35 -0
- romanian/models/assignment_5/score_config.json +11 -0
- romanian/models/assignment_5/tokenizer.json +0 -0
- romanian/models/assignment_5/tokenizer_config.json +14 -0
- romanian/models/assignment_6/config.json +35 -0
- romanian/models/assignment_6/score_config.json +11 -0
- romanian/models/assignment_6/tokenizer.json +0 -0
- romanian/models/assignment_6/tokenizer_config.json +14 -0
- romanian/models/assignment_mapping.json +20 -0
- romanian/models/rf/assignment_0/rf_model.pkl +3 -0
- romanian/models/rf/assignment_0/score_config.json +10 -0
- romanian/models/rf/assignment_1/rf_model.pkl +3 -0
- romanian/models/rf/assignment_1/score_config.json +10 -0
- romanian/models/rf/assignment_2/rf_model.pkl +3 -0
- romanian/models/rf/assignment_2/score_config.json +10 -0
- romanian/models/rf/assignment_3/rf_model.pkl +3 -0
- romanian/models/rf/assignment_3/score_config.json +10 -0
- romanian/models/rf/assignment_4/rf_model.pkl +3 -0
- romanian/models/rf/assignment_4/score_config.json +10 -0
- romanian/models/rf/assignment_5/rf_model.pkl +3 -0
- romanian/models/rf/assignment_5/score_config.json +10 -0
- romanian/models/rf/assignment_6/rf_model.pkl +3 -0
- romanian/models/rf/assignment_6/score_config.json +10 -0
- romanian/models/rf/score_config.json +6 -0
- romanian/models/source_texts.json +58 -0
- romanian/models/xgb/assignment_0/scaler.pkl +3 -0
romanian/__init__.py
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
|
romanian/__pycache__/__init__.cpython-310.pyc
ADDED
|
Binary file (150 Bytes). View file
|
|
|
romanian/__pycache__/inference_engine_romanian.cpython-310.pyc
ADDED
|
Binary file (14.5 kB). View file
|
|
|
romanian/inference_engine_romanian.py
ADDED
|
@@ -0,0 +1,480 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import os
|
| 2 |
+
import json
|
| 3 |
+
import numpy as np
|
| 4 |
+
import torch
|
| 5 |
+
import joblib
|
| 6 |
+
import xgboost as xgb
|
| 7 |
+
import textstat
|
| 8 |
+
import nltk
|
| 9 |
+
import re
|
| 10 |
+
|
| 11 |
+
from scipy.special import expit
|
| 12 |
+
from sklearn.metrics.pairwise import cosine_similarity
|
| 13 |
+
from transformers import AutoTokenizer, AutoModelForSequenceClassification
|
| 14 |
+
|
| 15 |
+
nltk.download("punkt_tab", quiet=True)
|
| 16 |
+
|
| 17 |
+
BASE_DIR = os.path.dirname(__file__)
|
| 18 |
+
MODELS_DIR = os.path.join(BASE_DIR, "models")
|
| 19 |
+
|
| 20 |
+
DEVICE = torch.device("cuda" if torch.cuda.is_available() else "cpu")
|
| 21 |
+
|
| 22 |
+
CONNECTORS_RO = [
|
| 23 |
+
"însă", "deci", "prin urmare", "în concluzie", "de exemplu",
|
| 24 |
+
"de asemenea", "în plus", "pe de altă parte", "totuși", "astfel",
|
| 25 |
+
"în schimb", "în consecință", "cu toate acestea", "mai mult",
|
| 26 |
+
"în primul rând", "în al doilea rând", "în final", "mai ales",
|
| 27 |
+
"spre deosebire", "similar", "la fel", "față de", "comparativ",
|
| 28 |
+
"totodată", "ca urmare", "prin contrast", "în același timp",
|
| 29 |
+
]
|
| 30 |
+
|
| 31 |
+
STOPWORDS_RO = {
|
| 32 |
+
"și", "în", "la", "de", "cu", "pe", "că", "din", "un", "o",
|
| 33 |
+
"se", "nu", "este", "sunt", "mai", "care", "sa", "dar", "sau",
|
| 34 |
+
"pentru", "lui", "ei", "ele", "ale", "al", "cel", "cea", "cei",
|
| 35 |
+
"cele", "unei", "unui", "prin", "între", "după", "înainte", "când",
|
| 36 |
+
"dacă", "tot", "toți", "toate", "fi", "fost", "avea", "face",
|
| 37 |
+
}
|
| 38 |
+
|
| 39 |
+
# ─────────────────────────────────────────────────────────────────────────────
|
| 40 |
+
# BEST TRANSFORMER MODELS PER ASSIGNMENT
|
| 41 |
+
# ─────────────────────────────────────────────────────────────────────────────
|
| 42 |
+
BEST_MODELS_RO = {
|
| 43 |
+
0: {"model": "dumitrescustefan/bert-base-romanian-cased-v1", "r2": 0.8149},
|
| 44 |
+
1: {"model": "dumitrescustefan/bert-base-romanian-cased-v1", "r2": 0.8756},
|
| 45 |
+
2: {"model": "dumitrescustefan/bert-base-romanian-cased-v1", "r2": 0.8446},
|
| 46 |
+
3: {"model": "dumitrescustefan/bert-base-romanian-cased-v1", "r2": 0.8531},
|
| 47 |
+
4: {"model": "dumitrescustefan/bert-base-romanian-cased-v1", "r2": 0.8436},
|
| 48 |
+
5: {"model": "dumitrescustefan/bert-base-romanian-cased-v1", "r2": 0.8362},
|
| 49 |
+
6: {"model": "dumitrescustefan/bert-base-romanian-cased-v1", "r2": 0.8210},
|
| 50 |
+
}
|
| 51 |
+
|
| 52 |
+
SCORE_STATS_RO = {
|
| 53 |
+
"transformer": {"mean": 0.50, "std": 0.18},
|
| 54 |
+
"xgb": {"mean": 0.50, "std": 0.20},
|
| 55 |
+
"rf": {"mean": 0.50, "std": 0.18},
|
| 56 |
+
"grammar": {"mean": 0.68, "std": 0.20},
|
| 57 |
+
"vocabulary": {"mean": 0.52, "std": 0.15},
|
| 58 |
+
"structure": {"mean": 0.52, "std": 0.15},
|
| 59 |
+
"readability": {"mean": 0.50, "std": 0.12},
|
| 60 |
+
"source_similarity": {"mean": 0.30, "std": 0.15},
|
| 61 |
+
}
|
| 62 |
+
|
| 63 |
+
WEIGHTS_RO = {
|
| 64 |
+
"transformer": 0.38,
|
| 65 |
+
"xgb": 0.20,
|
| 66 |
+
"rf": 0.10,
|
| 67 |
+
"grammar": 0.09,
|
| 68 |
+
"vocabulary": 0.08,
|
| 69 |
+
"structure": 0.05,
|
| 70 |
+
"readability": 0.03,
|
| 71 |
+
"source_similarity": 0.07,
|
| 72 |
+
}
|
| 73 |
+
|
| 74 |
+
|
| 75 |
+
# ─────────────────────────────────────────────────────────────────────────────
|
| 76 |
+
# HELPERS
|
| 77 |
+
# ─────────────────────────────────────────────────────────────────────────────
|
| 78 |
+
|
| 79 |
+
def sanitize_ro(text: str) -> str:
|
| 80 |
+
return (text
|
| 81 |
+
.replace("ţ", "ț").replace("ş", "ș")
|
| 82 |
+
.replace("Ţ", "Ț").replace("Ş", "Ș"))
|
| 83 |
+
|
| 84 |
+
|
| 85 |
+
def fast_grammar_errors_ro(text: str) -> int:
|
| 86 |
+
errors = len(re.findall(r"(.)\1{2,}", text))
|
| 87 |
+
for s in text.split("."):
|
| 88 |
+
s = s.strip()
|
| 89 |
+
if s and not s[0].isupper():
|
| 90 |
+
errors += 1
|
| 91 |
+
return errors
|
| 92 |
+
|
| 93 |
+
|
| 94 |
+
def _z_normalize(value: float, component: str) -> float:
|
| 95 |
+
stats = SCORE_STATS_RO[component]
|
| 96 |
+
z = (value - stats["mean"]) / (stats["std"] + 1e-8)
|
| 97 |
+
return float(np.clip(z, -3.0, 3.0))
|
| 98 |
+
|
| 99 |
+
|
| 100 |
+
def _stretch_score(norm_score: float, strength: float = 1.6) -> float:
|
| 101 |
+
centered = norm_score - 0.5
|
| 102 |
+
sign = np.sign(centered)
|
| 103 |
+
magnitude = abs(centered) ** (1.0 / strength)
|
| 104 |
+
return float(np.clip(0.5 + sign * magnitude * 0.5, 0.0, 1.0))
|
| 105 |
+
|
| 106 |
+
|
| 107 |
+
def _length_score(num_words: int) -> float:
|
| 108 |
+
if num_words < 50: return 0.10
|
| 109 |
+
elif num_words < 150: return 0.30 + (num_words - 50) / 100 * 0.30
|
| 110 |
+
elif num_words < 250: return 0.60 + (num_words - 150) / 100 * 0.25
|
| 111 |
+
elif num_words <= 600: return 0.85 + (num_words - 250) / 350 * 0.15
|
| 112 |
+
else: return max(0.70, 1.0 - (num_words - 600) / 1000 * 0.30)
|
| 113 |
+
|
| 114 |
+
|
| 115 |
+
def _sentence_length_score(avg_len: float) -> float:
|
| 116 |
+
if avg_len < 5: return 0.20
|
| 117 |
+
elif avg_len < 12: return 0.40 + (avg_len - 5) / 7 * 0.40
|
| 118 |
+
elif avg_len <= 22: return 1.00
|
| 119 |
+
elif avg_len <= 35: return 1.00 - (avg_len - 22) / 13 * 0.30
|
| 120 |
+
else: return 0.40
|
| 121 |
+
|
| 122 |
+
|
| 123 |
+
def _readability_score(flesch: float) -> float:
|
| 124 |
+
if flesch < 0: return 0.20
|
| 125 |
+
elif flesch < 30: return 0.30 + flesch / 30 * 0.30
|
| 126 |
+
elif flesch <= 70: return 0.60 + (flesch - 30) / 40 * 0.40
|
| 127 |
+
elif flesch <= 90: return 1.00 - (flesch - 70) / 20 * 0.25
|
| 128 |
+
else: return max(0.30, 0.75 - (flesch - 90) / 10 * 0.15)
|
| 129 |
+
|
| 130 |
+
|
| 131 |
+
# ─────────────────────────────────────────────────────────────────────────────
|
| 132 |
+
# TEACHER SCORES
|
| 133 |
+
# ─────────────────────────────────────────────────────────────────────────────
|
| 134 |
+
|
| 135 |
+
def _compute_teacher_scores_ro(feats: dict) -> tuple:
|
| 136 |
+
num_words = feats.get("num_words", 100)
|
| 137 |
+
num_sentences = feats.get("num_sentences", 5)
|
| 138 |
+
lex_diversity = feats.get("lexical_diversity", 0.5)
|
| 139 |
+
grammar_errors = feats.get("grammar_errors", 0)
|
| 140 |
+
readability = feats.get("readability", 50)
|
| 141 |
+
complex_ratio = feats.get("complex_word_ratio", 0.2)
|
| 142 |
+
connector_count = feats.get("connector_count", 3)
|
| 143 |
+
avg_sent_len = feats.get("avg_sentence_length", 15)
|
| 144 |
+
stopword_ratio = feats.get("stopword_ratio", 0.4)
|
| 145 |
+
|
| 146 |
+
error_rate = grammar_errors / max(num_sentences, 1)
|
| 147 |
+
grammar_score = float(np.clip(1.0 - error_rate * 0.35, 0.0, 1.0))
|
| 148 |
+
if grammar_errors == 0 and num_words > 200:
|
| 149 |
+
grammar_score = min(1.0, grammar_score + 0.10)
|
| 150 |
+
|
| 151 |
+
repetition_penalty = max(0.0, lex_diversity * 2 - 1.0)
|
| 152 |
+
vocab_score = float(np.clip(
|
| 153 |
+
0.45 * lex_diversity
|
| 154 |
+
+ 0.30 * min(complex_ratio * 2, 1.0)
|
| 155 |
+
+ 0.15 * repetition_penalty
|
| 156 |
+
+ 0.10 * (1.0 - min(stopword_ratio * 1.5, 1.0)),
|
| 157 |
+
0.0, 1.0
|
| 158 |
+
))
|
| 159 |
+
|
| 160 |
+
structure_score = float(np.clip(
|
| 161 |
+
0.40 * _length_score(num_words)
|
| 162 |
+
+ 0.30 * min(connector_count / 8.0, 1.0)
|
| 163 |
+
+ 0.30 * _sentence_length_score(avg_sent_len),
|
| 164 |
+
0.0, 1.0
|
| 165 |
+
))
|
| 166 |
+
|
| 167 |
+
return grammar_score, vocab_score, structure_score, _readability_score(readability)
|
| 168 |
+
|
| 169 |
+
|
| 170 |
+
# ─────────────────────────────────────────────────────────────────────────────
|
| 171 |
+
# SOURCE TEXT SIMILARITY
|
| 172 |
+
# ─────────────────────────────────────────────────────────────────────────────
|
| 173 |
+
|
| 174 |
+
def compute_source_similarity_ro(essay_text: str, source_text: str, vectorizer) -> float:
|
| 175 |
+
if not source_text or not essay_text:
|
| 176 |
+
return 0.0
|
| 177 |
+
try:
|
| 178 |
+
vectors = vectorizer.transform([essay_text, source_text]).toarray()
|
| 179 |
+
sim = cosine_similarity(vectors[0:1], vectors[1:2])[0][0]
|
| 180 |
+
return float(np.clip(sim, 0.0, 1.0))
|
| 181 |
+
except Exception:
|
| 182 |
+
return 0.0
|
| 183 |
+
|
| 184 |
+
|
| 185 |
+
def similarity_to_score_ro(similarity: float) -> float:
|
| 186 |
+
if similarity < 0.05:
|
| 187 |
+
return 0.15 + similarity * 2.0
|
| 188 |
+
elif similarity < 0.20:
|
| 189 |
+
return 0.25 + (similarity - 0.05) / 0.15 * 0.35
|
| 190 |
+
elif similarity < 0.50:
|
| 191 |
+
return 0.60 + (similarity - 0.20) / 0.30 * 0.40
|
| 192 |
+
elif similarity < 0.70:
|
| 193 |
+
return 1.00 - (similarity - 0.50) / 0.20 * 0.30
|
| 194 |
+
else:
|
| 195 |
+
return max(0.20, 0.70 - (similarity - 0.70) * 1.5)
|
| 196 |
+
|
| 197 |
+
|
| 198 |
+
# ─────────────────────────────────────────────────────────────────────────────
|
| 199 |
+
# ENSEMBLE SCORING
|
| 200 |
+
# ─────────────────────────────────────────────────────────────────────────────
|
| 201 |
+
|
| 202 |
+
def _ensemble_score_ro(
|
| 203 |
+
transformer, xgb_pred, rf_pred,
|
| 204 |
+
grammar, vocabulary, structure, readability,
|
| 205 |
+
source_similarity,
|
| 206 |
+
score_min, score_max,
|
| 207 |
+
) -> dict:
|
| 208 |
+
components = {
|
| 209 |
+
"transformer": transformer,
|
| 210 |
+
"xgb": xgb_pred,
|
| 211 |
+
"rf": rf_pred,
|
| 212 |
+
"grammar": grammar,
|
| 213 |
+
"vocabulary": vocabulary,
|
| 214 |
+
"structure": structure,
|
| 215 |
+
"readability": readability,
|
| 216 |
+
"source_similarity": source_similarity,
|
| 217 |
+
}
|
| 218 |
+
|
| 219 |
+
z_scores = {name: _z_normalize(v, name) for name, v in components.items()}
|
| 220 |
+
weighted_z = sum(WEIGHTS_RO[n] * z_scores[n] for n in WEIGHTS_RO)
|
| 221 |
+
norm_combined = float(expit(weighted_z / 0.6))
|
| 222 |
+
norm_stretched = _stretch_score(norm_combined, strength=1.6)
|
| 223 |
+
|
| 224 |
+
score_original = float(np.clip(
|
| 225 |
+
norm_stretched * (score_max - score_min) + score_min,
|
| 226 |
+
score_min, score_max
|
| 227 |
+
))
|
| 228 |
+
|
| 229 |
+
score_range = score_max - score_min
|
| 230 |
+
final_score = round((score_original - score_min) / score_range * 9 + 1, 2) \
|
| 231 |
+
if score_range > 0 else 5.0
|
| 232 |
+
|
| 233 |
+
return {
|
| 234 |
+
"raw_components": {k: round(v, 4) for k, v in components.items()},
|
| 235 |
+
"z_scores": {k: round(v, 4) for k, v in z_scores.items()},
|
| 236 |
+
"weighted_z": round(float(weighted_z), 4),
|
| 237 |
+
"norm_combined": round(float(norm_combined), 4),
|
| 238 |
+
"norm_stretched": round(float(norm_stretched), 4),
|
| 239 |
+
"score_original": round(score_original, 2),
|
| 240 |
+
"final_score": final_score,
|
| 241 |
+
}
|
| 242 |
+
|
| 243 |
+
|
| 244 |
+
# ─────────────────────────────────────────────────────────────────────────────
|
| 245 |
+
# MAIN ENGINE CLASS
|
| 246 |
+
# ─────────────────────────────────────────────────────────────────────────────
|
| 247 |
+
|
| 248 |
+
class RomanianEssayEngine:
|
| 249 |
+
|
| 250 |
+
def __init__(self, assignment_id: int = 0):
|
| 251 |
+
self.assignment_id = assignment_id
|
| 252 |
+
|
| 253 |
+
# ── Transformer (per-assignment) ──
|
| 254 |
+
transformer_path = os.path.join(MODELS_DIR, f"assignment_{assignment_id}")
|
| 255 |
+
best_info = BEST_MODELS_RO.get(assignment_id, {"model": "unknown", "r2": 0})
|
| 256 |
+
print(f"Loading RO Transformer (assignment_{assignment_id}, R2={best_info['r2']:.4f})...")
|
| 257 |
+
|
| 258 |
+
self.tokenizer = AutoTokenizer.from_pretrained(
|
| 259 |
+
transformer_path, use_fast=False
|
| 260 |
+
)
|
| 261 |
+
self.transformer_model = AutoModelForSequenceClassification.from_pretrained(
|
| 262 |
+
transformer_path
|
| 263 |
+
)
|
| 264 |
+
self.transformer_model.to(DEVICE)
|
| 265 |
+
self.transformer_model.eval()
|
| 266 |
+
|
| 267 |
+
with open(os.path.join(transformer_path, "score_config.json")) as f:
|
| 268 |
+
config = json.load(f)
|
| 269 |
+
self.min_score = config["min_score"]
|
| 270 |
+
self.max_score = config["max_score"]
|
| 271 |
+
|
| 272 |
+
# ── XGBoost (per-assignment) ──
|
| 273 |
+
xgb_dir = os.path.join(MODELS_DIR, "xgb", f"assignment_{assignment_id}")
|
| 274 |
+
if not os.path.exists(xgb_dir):
|
| 275 |
+
raise FileNotFoundError(
|
| 276 |
+
f"RO XGB model for assignment {assignment_id} not found at {xgb_dir}. "
|
| 277 |
+
"Run training/romanian/train_xgb_rf_romanian.py first."
|
| 278 |
+
)
|
| 279 |
+
print(f"Loading RO XGBoost (assignment_{assignment_id})...")
|
| 280 |
+
self.xgb_model = xgb.XGBRegressor()
|
| 281 |
+
self.xgb_model.load_model(os.path.join(xgb_dir, "xgb_model.json"))
|
| 282 |
+
self.scaler = joblib.load(os.path.join(xgb_dir, "scaler.pkl"))
|
| 283 |
+
|
| 284 |
+
with open(os.path.join(xgb_dir, "score_config.json")) as f:
|
| 285 |
+
xgb_cfg = json.load(f)
|
| 286 |
+
print(f" RO XGB CV R2: {xgb_cfg.get('cv_r2', 'n/a')}")
|
| 287 |
+
|
| 288 |
+
# ── RandomForest (per-assignment) ──
|
| 289 |
+
rf_dir = os.path.join(MODELS_DIR, "rf", f"assignment_{assignment_id}")
|
| 290 |
+
if not os.path.exists(rf_dir):
|
| 291 |
+
raise FileNotFoundError(
|
| 292 |
+
f"RO RF model for assignment {assignment_id} not found at {rf_dir}. "
|
| 293 |
+
"Run training/romanian/train_xgb_rf_romanian.py first."
|
| 294 |
+
)
|
| 295 |
+
print(f"Loading RO RandomForest (assignment_{assignment_id})...")
|
| 296 |
+
self.rf_model = joblib.load(os.path.join(rf_dir, "rf_model.pkl"))
|
| 297 |
+
|
| 298 |
+
# ── Shared TF-IDF ──
|
| 299 |
+
print("Loading RO TF-IDF vectorizer...")
|
| 300 |
+
self.vectorizer = joblib.load(
|
| 301 |
+
os.path.join(MODELS_DIR, "xgb", "tfidf_vectorizer.pkl")
|
| 302 |
+
)
|
| 303 |
+
|
| 304 |
+
# ── Source Texts ──
|
| 305 |
+
source_texts_path = os.path.join(MODELS_DIR, "source_texts.json")
|
| 306 |
+
self.source_text = None
|
| 307 |
+
if os.path.exists(source_texts_path):
|
| 308 |
+
with open(source_texts_path, encoding="utf-8") as f:
|
| 309 |
+
source_texts = json.load(f)
|
| 310 |
+
entry = source_texts.get(str(assignment_id), {})
|
| 311 |
+
self.source_text = entry.get("source_text_ro") or entry.get("source_text")
|
| 312 |
+
if self.source_text:
|
| 313 |
+
print(f"RO Source text loaded ({len(self.source_text)} chars)")
|
| 314 |
+
|
| 315 |
+
# =========================================================================
|
| 316 |
+
# FEATURE EXTRACTION v3 — 22 linguistic features
|
| 317 |
+
# Removed: repetition_ratio (= 1 - lexical_diversity, was redundant)
|
| 318 |
+
# Added: stopword_ratio, avg_word_length, unique_bigram_ratio,
|
| 319 |
+
# question_ratio, exclamation_ratio
|
| 320 |
+
# =========================================================================
|
| 321 |
+
|
| 322 |
+
def extract_features(self, text: str) -> dict:
|
| 323 |
+
text_clean = sanitize_ro(text)
|
| 324 |
+
words = text_clean.split()
|
| 325 |
+
sentences = nltk.sent_tokenize(text_clean)
|
| 326 |
+
paragraphs = [p.strip() for p in text_clean.split("\n\n") if p.strip()]
|
| 327 |
+
|
| 328 |
+
num_words = len(words)
|
| 329 |
+
num_sentences = max(len(sentences), 1)
|
| 330 |
+
num_paragraphs = max(len(paragraphs), 1)
|
| 331 |
+
|
| 332 |
+
lexical_diversity = len(set(words)) / max(num_words, 1)
|
| 333 |
+
grammar_errors = fast_grammar_errors_ro(text_clean)
|
| 334 |
+
readability = textstat.flesch_reading_ease(text_clean)
|
| 335 |
+
avg_sent_len = num_words / num_sentences
|
| 336 |
+
complex_word_ratio = sum(1 for w in words if len(w) > 8) / max(num_words, 1)
|
| 337 |
+
connector_count = sum(text_clean.lower().count(c) for c in CONNECTORS_RO)
|
| 338 |
+
|
| 339 |
+
punct_chars = set(re.findall(r'[.,;:!?"\'\-\(\)—«»]', text_clean))
|
| 340 |
+
punctuation_diversity = len(punct_chars) / 10.0
|
| 341 |
+
quote_count = len(re.findall(r'[«"][^»"]{5,}[»"]', text_clean))
|
| 342 |
+
quote_density = min(quote_count / num_sentences, 1.0)
|
| 343 |
+
avg_paragraph_length = num_words / num_paragraphs
|
| 344 |
+
sent_lengths = [len(s.split()) for s in sentences]
|
| 345 |
+
sentence_length_variance = float(np.std(sent_lengths)) if len(sentences) > 1 else 0.0
|
| 346 |
+
comma_density = text_clean.count(",") / max(num_words, 1)
|
| 347 |
+
|
| 348 |
+
stopword_ratio = sum(1 for w in words if w.lower() in STOPWORDS_RO) / max(num_words, 1)
|
| 349 |
+
avg_word_length = sum(len(w) for w in words) / max(num_words, 1)
|
| 350 |
+
bigrams = list(zip(words, words[1:]))
|
| 351 |
+
unique_bigram_ratio = len(set(bigrams)) / max(len(bigrams), 1)
|
| 352 |
+
question_ratio = sum(1 for s in sentences if s.strip().endswith("?")) / num_sentences
|
| 353 |
+
exclamation_ratio = sum(1 for s in sentences if s.strip().endswith("!")) / num_sentences
|
| 354 |
+
|
| 355 |
+
return {
|
| 356 |
+
"num_chars": len(text_clean),
|
| 357 |
+
"num_words": num_words,
|
| 358 |
+
"num_sentences": num_sentences,
|
| 359 |
+
"lexical_diversity": lexical_diversity,
|
| 360 |
+
"readability": readability,
|
| 361 |
+
"syllable_count": textstat.syllable_count(text_clean),
|
| 362 |
+
"lexicon_count": textstat.lexicon_count(text_clean),
|
| 363 |
+
"grammar_errors": grammar_errors,
|
| 364 |
+
"avg_sentence_length": avg_sent_len,
|
| 365 |
+
"complex_word_ratio": complex_word_ratio,
|
| 366 |
+
"connector_count": connector_count,
|
| 367 |
+
"num_paragraphs": num_paragraphs,
|
| 368 |
+
"punctuation_diversity": punctuation_diversity,
|
| 369 |
+
"quote_density": quote_density,
|
| 370 |
+
"avg_paragraph_length": avg_paragraph_length,
|
| 371 |
+
"sentence_length_variance": sentence_length_variance,
|
| 372 |
+
"comma_density": comma_density,
|
| 373 |
+
"stopword_ratio": stopword_ratio,
|
| 374 |
+
"avg_word_length": avg_word_length,
|
| 375 |
+
"unique_bigram_ratio": unique_bigram_ratio,
|
| 376 |
+
"question_ratio": question_ratio,
|
| 377 |
+
"exclamation_ratio": exclamation_ratio,
|
| 378 |
+
# kept for teacher score heuristic only — not passed to ML models
|
| 379 |
+
"repetition_ratio": 1.0 - lexical_diversity,
|
| 380 |
+
}
|
| 381 |
+
|
| 382 |
+
def extract_full_features(self, text: str) -> np.ndarray:
|
| 383 |
+
"""Returns scaled 22 linguistic features + TF-IDF."""
|
| 384 |
+
feats = self.extract_features(text)
|
| 385 |
+
linguistic = np.array([[
|
| 386 |
+
feats["num_chars"],
|
| 387 |
+
feats["num_words"],
|
| 388 |
+
feats["num_sentences"],
|
| 389 |
+
feats["lexical_diversity"],
|
| 390 |
+
feats["readability"],
|
| 391 |
+
feats["syllable_count"],
|
| 392 |
+
feats["lexicon_count"],
|
| 393 |
+
feats["grammar_errors"],
|
| 394 |
+
feats["avg_sentence_length"],
|
| 395 |
+
feats["complex_word_ratio"],
|
| 396 |
+
feats["connector_count"],
|
| 397 |
+
feats["num_paragraphs"],
|
| 398 |
+
feats["punctuation_diversity"],
|
| 399 |
+
feats["quote_density"],
|
| 400 |
+
feats["avg_paragraph_length"],
|
| 401 |
+
feats["sentence_length_variance"],
|
| 402 |
+
feats["comma_density"],
|
| 403 |
+
feats["stopword_ratio"],
|
| 404 |
+
feats["avg_word_length"],
|
| 405 |
+
feats["unique_bigram_ratio"],
|
| 406 |
+
feats["question_ratio"],
|
| 407 |
+
feats["exclamation_ratio"],
|
| 408 |
+
]]) # shape (1, 22)
|
| 409 |
+
linguistic_scaled = self.scaler.transform(linguistic)
|
| 410 |
+
tfidf = self.vectorizer.transform([sanitize_ro(text)]).toarray()
|
| 411 |
+
return np.hstack([linguistic_scaled, tfidf])
|
| 412 |
+
|
| 413 |
+
# =========================================================================
|
| 414 |
+
# MODEL PREDICTIONS
|
| 415 |
+
# =========================================================================
|
| 416 |
+
|
| 417 |
+
def predict_transformer(self, text: str) -> float:
|
| 418 |
+
clean = sanitize_ro(text)
|
| 419 |
+
inputs = self.tokenizer(
|
| 420 |
+
clean, truncation=True, padding=True,
|
| 421 |
+
max_length=512, return_tensors="pt"
|
| 422 |
+
)
|
| 423 |
+
inputs = {k: v.to(DEVICE) for k, v in inputs.items()}
|
| 424 |
+
with torch.no_grad():
|
| 425 |
+
outputs = self.transformer_model(**inputs)
|
| 426 |
+
return float(torch.sigmoid(outputs.logits.squeeze()).item())
|
| 427 |
+
|
| 428 |
+
def predict_xgb(self, features: np.ndarray) -> float:
|
| 429 |
+
return float(np.clip(self.xgb_model.predict(features)[0], 0.0, 1.0))
|
| 430 |
+
|
| 431 |
+
def predict_rf(self, features: np.ndarray) -> float:
|
| 432 |
+
return float(np.clip(self.rf_model.predict(features)[0], 0.0, 1.0))
|
| 433 |
+
|
| 434 |
+
# =========================================================================
|
| 435 |
+
# MAIN EVALUATION
|
| 436 |
+
# =========================================================================
|
| 437 |
+
|
| 438 |
+
def evaluate(self, text: str) -> dict:
|
| 439 |
+
feats = self.extract_features(text)
|
| 440 |
+
features = self.extract_full_features(text)
|
| 441 |
+
|
| 442 |
+
transformer_pred = self.predict_transformer(text)
|
| 443 |
+
xgb_pred = self.predict_xgb(features)
|
| 444 |
+
rf_pred = self.predict_rf(features)
|
| 445 |
+
|
| 446 |
+
grammar, vocabulary, structure, readability = _compute_teacher_scores_ro(feats)
|
| 447 |
+
|
| 448 |
+
raw_similarity = compute_source_similarity_ro(text, self.source_text, self.vectorizer)
|
| 449 |
+
source_sim_score = similarity_to_score_ro(raw_similarity)
|
| 450 |
+
|
| 451 |
+
result = _ensemble_score_ro(
|
| 452 |
+
transformer=transformer_pred,
|
| 453 |
+
xgb_pred=xgb_pred,
|
| 454 |
+
rf_pred=rf_pred,
|
| 455 |
+
grammar=grammar,
|
| 456 |
+
vocabulary=vocabulary,
|
| 457 |
+
structure=structure,
|
| 458 |
+
readability=readability,
|
| 459 |
+
source_similarity=source_sim_score,
|
| 460 |
+
score_min=self.min_score,
|
| 461 |
+
score_max=self.max_score,
|
| 462 |
+
)
|
| 463 |
+
|
| 464 |
+
core_preds = [transformer_pred, xgb_pred, rf_pred]
|
| 465 |
+
confidence = float(np.clip(1.0 - np.std(core_preds) * 2, 0.10, 1.00))
|
| 466 |
+
|
| 467 |
+
return {
|
| 468 |
+
"final_score": result["final_score"],
|
| 469 |
+
"confidence": round(confidence, 3),
|
| 470 |
+
"transformer_score": round(transformer_pred, 4),
|
| 471 |
+
"xgb_score": round(xgb_pred, 4),
|
| 472 |
+
"rf_score": round(rf_pred, 4),
|
| 473 |
+
"grammar_score": round(grammar, 3),
|
| 474 |
+
"vocabulary_score": round(vocabulary, 3),
|
| 475 |
+
"structure_score": round(structure, 3),
|
| 476 |
+
"readability_score": round(readability, 3),
|
| 477 |
+
"source_similarity": round(raw_similarity, 3),
|
| 478 |
+
"source_similarity_score": round(source_sim_score, 3),
|
| 479 |
+
"score_breakdown": result,
|
| 480 |
+
}
|
romanian/models/assignment_0/config.json
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"add_cross_attention": false,
|
| 3 |
+
"architectures": [
|
| 4 |
+
"BertForSequenceClassification"
|
| 5 |
+
],
|
| 6 |
+
"attention_probs_dropout_prob": 0.1,
|
| 7 |
+
"bos_token_id": null,
|
| 8 |
+
"classifier_dropout": null,
|
| 9 |
+
"dtype": "float32",
|
| 10 |
+
"eos_token_id": null,
|
| 11 |
+
"hidden_act": "gelu",
|
| 12 |
+
"hidden_dropout_prob": 0.1,
|
| 13 |
+
"hidden_size": 768,
|
| 14 |
+
"id2label": {
|
| 15 |
+
"0": "LABEL_0"
|
| 16 |
+
},
|
| 17 |
+
"initializer_range": 0.02,
|
| 18 |
+
"intermediate_size": 3072,
|
| 19 |
+
"is_decoder": false,
|
| 20 |
+
"label2id": {
|
| 21 |
+
"LABEL_0": 0
|
| 22 |
+
},
|
| 23 |
+
"layer_norm_eps": 1e-12,
|
| 24 |
+
"max_position_embeddings": 512,
|
| 25 |
+
"model_type": "bert",
|
| 26 |
+
"num_attention_heads": 12,
|
| 27 |
+
"num_hidden_layers": 12,
|
| 28 |
+
"pad_token_id": 0,
|
| 29 |
+
"problem_type": "regression",
|
| 30 |
+
"tie_word_embeddings": true,
|
| 31 |
+
"transformers_version": "5.5.4",
|
| 32 |
+
"type_vocab_size": 2,
|
| 33 |
+
"use_cache": false,
|
| 34 |
+
"vocab_size": 50000
|
| 35 |
+
}
|
romanian/models/assignment_0/score_config.json
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"assignment_id": 0,
|
| 3 |
+
"min_score": 1.0,
|
| 4 |
+
"max_score": 6.0,
|
| 5 |
+
"original_min_score": 1.0,
|
| 6 |
+
"original_max_score": 6.0,
|
| 7 |
+
"final_r2": 0.8149,
|
| 8 |
+
"n_train_samples": 900,
|
| 9 |
+
"model_name": "dumitrescustefan/bert-base-romanian-cased-v1",
|
| 10 |
+
"language": "ro"
|
| 11 |
+
}
|
romanian/models/assignment_0/tokenizer.json
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
romanian/models/assignment_0/tokenizer_config.json
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"backend": "tokenizers",
|
| 3 |
+
"cls_token": "[CLS]",
|
| 4 |
+
"do_lower_case": false,
|
| 5 |
+
"is_local": false,
|
| 6 |
+
"mask_token": "[MASK]",
|
| 7 |
+
"model_max_length": 1000000000000000019884624838656,
|
| 8 |
+
"pad_token": "[PAD]",
|
| 9 |
+
"sep_token": "[SEP]",
|
| 10 |
+
"strip_accents": null,
|
| 11 |
+
"tokenize_chinese_chars": true,
|
| 12 |
+
"tokenizer_class": "BertTokenizer",
|
| 13 |
+
"unk_token": "[UNK]"
|
| 14 |
+
}
|
romanian/models/assignment_1/config.json
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"add_cross_attention": false,
|
| 3 |
+
"architectures": [
|
| 4 |
+
"BertForSequenceClassification"
|
| 5 |
+
],
|
| 6 |
+
"attention_probs_dropout_prob": 0.1,
|
| 7 |
+
"bos_token_id": null,
|
| 8 |
+
"classifier_dropout": null,
|
| 9 |
+
"dtype": "float32",
|
| 10 |
+
"eos_token_id": null,
|
| 11 |
+
"hidden_act": "gelu",
|
| 12 |
+
"hidden_dropout_prob": 0.1,
|
| 13 |
+
"hidden_size": 768,
|
| 14 |
+
"id2label": {
|
| 15 |
+
"0": "LABEL_0"
|
| 16 |
+
},
|
| 17 |
+
"initializer_range": 0.02,
|
| 18 |
+
"intermediate_size": 3072,
|
| 19 |
+
"is_decoder": false,
|
| 20 |
+
"label2id": {
|
| 21 |
+
"LABEL_0": 0
|
| 22 |
+
},
|
| 23 |
+
"layer_norm_eps": 1e-12,
|
| 24 |
+
"max_position_embeddings": 512,
|
| 25 |
+
"model_type": "bert",
|
| 26 |
+
"num_attention_heads": 12,
|
| 27 |
+
"num_hidden_layers": 12,
|
| 28 |
+
"pad_token_id": 0,
|
| 29 |
+
"problem_type": "regression",
|
| 30 |
+
"tie_word_embeddings": true,
|
| 31 |
+
"transformers_version": "5.5.4",
|
| 32 |
+
"type_vocab_size": 2,
|
| 33 |
+
"use_cache": false,
|
| 34 |
+
"vocab_size": 50000
|
| 35 |
+
}
|
romanian/models/assignment_1/score_config.json
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"assignment_id": 1,
|
| 3 |
+
"min_score": 1.0,
|
| 4 |
+
"max_score": 6.0,
|
| 5 |
+
"original_min_score": 1.0,
|
| 6 |
+
"original_max_score": 6.0,
|
| 7 |
+
"final_r2": 0.8756,
|
| 8 |
+
"n_train_samples": 900,
|
| 9 |
+
"model_name": "dumitrescustefan/bert-base-romanian-cased-v1",
|
| 10 |
+
"language": "ro"
|
| 11 |
+
}
|
romanian/models/assignment_1/tokenizer.json
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
romanian/models/assignment_1/tokenizer_config.json
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"backend": "tokenizers",
|
| 3 |
+
"cls_token": "[CLS]",
|
| 4 |
+
"do_lower_case": false,
|
| 5 |
+
"is_local": false,
|
| 6 |
+
"mask_token": "[MASK]",
|
| 7 |
+
"model_max_length": 1000000000000000019884624838656,
|
| 8 |
+
"pad_token": "[PAD]",
|
| 9 |
+
"sep_token": "[SEP]",
|
| 10 |
+
"strip_accents": null,
|
| 11 |
+
"tokenize_chinese_chars": true,
|
| 12 |
+
"tokenizer_class": "BertTokenizer",
|
| 13 |
+
"unk_token": "[UNK]"
|
| 14 |
+
}
|
romanian/models/assignment_2/config.json
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"add_cross_attention": false,
|
| 3 |
+
"architectures": [
|
| 4 |
+
"BertForSequenceClassification"
|
| 5 |
+
],
|
| 6 |
+
"attention_probs_dropout_prob": 0.1,
|
| 7 |
+
"bos_token_id": null,
|
| 8 |
+
"classifier_dropout": null,
|
| 9 |
+
"dtype": "float32",
|
| 10 |
+
"eos_token_id": null,
|
| 11 |
+
"hidden_act": "gelu",
|
| 12 |
+
"hidden_dropout_prob": 0.1,
|
| 13 |
+
"hidden_size": 768,
|
| 14 |
+
"id2label": {
|
| 15 |
+
"0": "LABEL_0"
|
| 16 |
+
},
|
| 17 |
+
"initializer_range": 0.02,
|
| 18 |
+
"intermediate_size": 3072,
|
| 19 |
+
"is_decoder": false,
|
| 20 |
+
"label2id": {
|
| 21 |
+
"LABEL_0": 0
|
| 22 |
+
},
|
| 23 |
+
"layer_norm_eps": 1e-12,
|
| 24 |
+
"max_position_embeddings": 512,
|
| 25 |
+
"model_type": "bert",
|
| 26 |
+
"num_attention_heads": 12,
|
| 27 |
+
"num_hidden_layers": 12,
|
| 28 |
+
"pad_token_id": 0,
|
| 29 |
+
"problem_type": "regression",
|
| 30 |
+
"tie_word_embeddings": true,
|
| 31 |
+
"transformers_version": "5.5.4",
|
| 32 |
+
"type_vocab_size": 2,
|
| 33 |
+
"use_cache": false,
|
| 34 |
+
"vocab_size": 50000
|
| 35 |
+
}
|
romanian/models/assignment_2/score_config.json
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"assignment_id": 2,
|
| 3 |
+
"min_score": 1.0,
|
| 4 |
+
"max_score": 6.0,
|
| 5 |
+
"original_min_score": 1.0,
|
| 6 |
+
"original_max_score": 6.0,
|
| 7 |
+
"final_r2": 0.8446,
|
| 8 |
+
"n_train_samples": 900,
|
| 9 |
+
"model_name": "dumitrescustefan/bert-base-romanian-cased-v1",
|
| 10 |
+
"language": "ro"
|
| 11 |
+
}
|
romanian/models/assignment_2/tokenizer.json
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
romanian/models/assignment_2/tokenizer_config.json
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"backend": "tokenizers",
|
| 3 |
+
"cls_token": "[CLS]",
|
| 4 |
+
"do_lower_case": false,
|
| 5 |
+
"is_local": false,
|
| 6 |
+
"mask_token": "[MASK]",
|
| 7 |
+
"model_max_length": 1000000000000000019884624838656,
|
| 8 |
+
"pad_token": "[PAD]",
|
| 9 |
+
"sep_token": "[SEP]",
|
| 10 |
+
"strip_accents": null,
|
| 11 |
+
"tokenize_chinese_chars": true,
|
| 12 |
+
"tokenizer_class": "BertTokenizer",
|
| 13 |
+
"unk_token": "[UNK]"
|
| 14 |
+
}
|
romanian/models/assignment_3/config.json
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"add_cross_attention": false,
|
| 3 |
+
"architectures": [
|
| 4 |
+
"BertForSequenceClassification"
|
| 5 |
+
],
|
| 6 |
+
"attention_probs_dropout_prob": 0.1,
|
| 7 |
+
"bos_token_id": null,
|
| 8 |
+
"classifier_dropout": null,
|
| 9 |
+
"dtype": "float32",
|
| 10 |
+
"eos_token_id": null,
|
| 11 |
+
"hidden_act": "gelu",
|
| 12 |
+
"hidden_dropout_prob": 0.1,
|
| 13 |
+
"hidden_size": 768,
|
| 14 |
+
"id2label": {
|
| 15 |
+
"0": "LABEL_0"
|
| 16 |
+
},
|
| 17 |
+
"initializer_range": 0.02,
|
| 18 |
+
"intermediate_size": 3072,
|
| 19 |
+
"is_decoder": false,
|
| 20 |
+
"label2id": {
|
| 21 |
+
"LABEL_0": 0
|
| 22 |
+
},
|
| 23 |
+
"layer_norm_eps": 1e-12,
|
| 24 |
+
"max_position_embeddings": 512,
|
| 25 |
+
"model_type": "bert",
|
| 26 |
+
"num_attention_heads": 12,
|
| 27 |
+
"num_hidden_layers": 12,
|
| 28 |
+
"pad_token_id": 0,
|
| 29 |
+
"problem_type": "regression",
|
| 30 |
+
"tie_word_embeddings": true,
|
| 31 |
+
"transformers_version": "5.5.4",
|
| 32 |
+
"type_vocab_size": 2,
|
| 33 |
+
"use_cache": false,
|
| 34 |
+
"vocab_size": 50000
|
| 35 |
+
}
|
romanian/models/assignment_3/score_config.json
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"assignment_id": 3,
|
| 3 |
+
"min_score": 1.0,
|
| 4 |
+
"max_score": 6.0,
|
| 5 |
+
"original_min_score": 1.0,
|
| 6 |
+
"original_max_score": 6.0,
|
| 7 |
+
"final_r2": 0.8531,
|
| 8 |
+
"n_train_samples": 900,
|
| 9 |
+
"model_name": "dumitrescustefan/bert-base-romanian-cased-v1",
|
| 10 |
+
"language": "ro"
|
| 11 |
+
}
|
romanian/models/assignment_3/tokenizer.json
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
romanian/models/assignment_3/tokenizer_config.json
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"backend": "tokenizers",
|
| 3 |
+
"cls_token": "[CLS]",
|
| 4 |
+
"do_lower_case": false,
|
| 5 |
+
"is_local": false,
|
| 6 |
+
"mask_token": "[MASK]",
|
| 7 |
+
"model_max_length": 1000000000000000019884624838656,
|
| 8 |
+
"pad_token": "[PAD]",
|
| 9 |
+
"sep_token": "[SEP]",
|
| 10 |
+
"strip_accents": null,
|
| 11 |
+
"tokenize_chinese_chars": true,
|
| 12 |
+
"tokenizer_class": "BertTokenizer",
|
| 13 |
+
"unk_token": "[UNK]"
|
| 14 |
+
}
|
romanian/models/assignment_4/config.json
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"add_cross_attention": false,
|
| 3 |
+
"architectures": [
|
| 4 |
+
"BertForSequenceClassification"
|
| 5 |
+
],
|
| 6 |
+
"attention_probs_dropout_prob": 0.1,
|
| 7 |
+
"bos_token_id": null,
|
| 8 |
+
"classifier_dropout": null,
|
| 9 |
+
"dtype": "float32",
|
| 10 |
+
"eos_token_id": null,
|
| 11 |
+
"hidden_act": "gelu",
|
| 12 |
+
"hidden_dropout_prob": 0.1,
|
| 13 |
+
"hidden_size": 768,
|
| 14 |
+
"id2label": {
|
| 15 |
+
"0": "LABEL_0"
|
| 16 |
+
},
|
| 17 |
+
"initializer_range": 0.02,
|
| 18 |
+
"intermediate_size": 3072,
|
| 19 |
+
"is_decoder": false,
|
| 20 |
+
"label2id": {
|
| 21 |
+
"LABEL_0": 0
|
| 22 |
+
},
|
| 23 |
+
"layer_norm_eps": 1e-12,
|
| 24 |
+
"max_position_embeddings": 512,
|
| 25 |
+
"model_type": "bert",
|
| 26 |
+
"num_attention_heads": 12,
|
| 27 |
+
"num_hidden_layers": 12,
|
| 28 |
+
"pad_token_id": 0,
|
| 29 |
+
"problem_type": "regression",
|
| 30 |
+
"tie_word_embeddings": true,
|
| 31 |
+
"transformers_version": "5.5.4",
|
| 32 |
+
"type_vocab_size": 2,
|
| 33 |
+
"use_cache": false,
|
| 34 |
+
"vocab_size": 50000
|
| 35 |
+
}
|
romanian/models/assignment_4/score_config.json
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"assignment_id": 4,
|
| 3 |
+
"min_score": 1.0,
|
| 4 |
+
"max_score": 6.0,
|
| 5 |
+
"original_min_score": 1.0,
|
| 6 |
+
"original_max_score": 6.0,
|
| 7 |
+
"final_r2": 0.8436,
|
| 8 |
+
"n_train_samples": 900,
|
| 9 |
+
"model_name": "dumitrescustefan/bert-base-romanian-cased-v1",
|
| 10 |
+
"language": "ro"
|
| 11 |
+
}
|
romanian/models/assignment_4/tokenizer.json
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
romanian/models/assignment_4/tokenizer_config.json
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"backend": "tokenizers",
|
| 3 |
+
"cls_token": "[CLS]",
|
| 4 |
+
"do_lower_case": false,
|
| 5 |
+
"is_local": false,
|
| 6 |
+
"mask_token": "[MASK]",
|
| 7 |
+
"model_max_length": 1000000000000000019884624838656,
|
| 8 |
+
"pad_token": "[PAD]",
|
| 9 |
+
"sep_token": "[SEP]",
|
| 10 |
+
"strip_accents": null,
|
| 11 |
+
"tokenize_chinese_chars": true,
|
| 12 |
+
"tokenizer_class": "BertTokenizer",
|
| 13 |
+
"unk_token": "[UNK]"
|
| 14 |
+
}
|
romanian/models/assignment_5/config.json
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"add_cross_attention": false,
|
| 3 |
+
"architectures": [
|
| 4 |
+
"BertForSequenceClassification"
|
| 5 |
+
],
|
| 6 |
+
"attention_probs_dropout_prob": 0.1,
|
| 7 |
+
"bos_token_id": null,
|
| 8 |
+
"classifier_dropout": null,
|
| 9 |
+
"dtype": "float32",
|
| 10 |
+
"eos_token_id": null,
|
| 11 |
+
"hidden_act": "gelu",
|
| 12 |
+
"hidden_dropout_prob": 0.1,
|
| 13 |
+
"hidden_size": 768,
|
| 14 |
+
"id2label": {
|
| 15 |
+
"0": "LABEL_0"
|
| 16 |
+
},
|
| 17 |
+
"initializer_range": 0.02,
|
| 18 |
+
"intermediate_size": 3072,
|
| 19 |
+
"is_decoder": false,
|
| 20 |
+
"label2id": {
|
| 21 |
+
"LABEL_0": 0
|
| 22 |
+
},
|
| 23 |
+
"layer_norm_eps": 1e-12,
|
| 24 |
+
"max_position_embeddings": 512,
|
| 25 |
+
"model_type": "bert",
|
| 26 |
+
"num_attention_heads": 12,
|
| 27 |
+
"num_hidden_layers": 12,
|
| 28 |
+
"pad_token_id": 0,
|
| 29 |
+
"problem_type": "regression",
|
| 30 |
+
"tie_word_embeddings": true,
|
| 31 |
+
"transformers_version": "5.5.4",
|
| 32 |
+
"type_vocab_size": 2,
|
| 33 |
+
"use_cache": false,
|
| 34 |
+
"vocab_size": 50000
|
| 35 |
+
}
|
romanian/models/assignment_5/score_config.json
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"assignment_id": 5,
|
| 3 |
+
"min_score": 1.0,
|
| 4 |
+
"max_score": 5.0,
|
| 5 |
+
"original_min_score": 1.0,
|
| 6 |
+
"original_max_score": 5.0,
|
| 7 |
+
"final_r2": 0.8362,
|
| 8 |
+
"n_train_samples": 750,
|
| 9 |
+
"model_name": "dumitrescustefan/bert-base-romanian-cased-v1",
|
| 10 |
+
"language": "ro"
|
| 11 |
+
}
|
romanian/models/assignment_5/tokenizer.json
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
romanian/models/assignment_5/tokenizer_config.json
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"backend": "tokenizers",
|
| 3 |
+
"cls_token": "[CLS]",
|
| 4 |
+
"do_lower_case": false,
|
| 5 |
+
"is_local": false,
|
| 6 |
+
"mask_token": "[MASK]",
|
| 7 |
+
"model_max_length": 1000000000000000019884624838656,
|
| 8 |
+
"pad_token": "[PAD]",
|
| 9 |
+
"sep_token": "[SEP]",
|
| 10 |
+
"strip_accents": null,
|
| 11 |
+
"tokenize_chinese_chars": true,
|
| 12 |
+
"tokenizer_class": "BertTokenizer",
|
| 13 |
+
"unk_token": "[UNK]"
|
| 14 |
+
}
|
romanian/models/assignment_6/config.json
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"add_cross_attention": false,
|
| 3 |
+
"architectures": [
|
| 4 |
+
"BertForSequenceClassification"
|
| 5 |
+
],
|
| 6 |
+
"attention_probs_dropout_prob": 0.1,
|
| 7 |
+
"bos_token_id": null,
|
| 8 |
+
"classifier_dropout": null,
|
| 9 |
+
"dtype": "float32",
|
| 10 |
+
"eos_token_id": null,
|
| 11 |
+
"hidden_act": "gelu",
|
| 12 |
+
"hidden_dropout_prob": 0.1,
|
| 13 |
+
"hidden_size": 768,
|
| 14 |
+
"id2label": {
|
| 15 |
+
"0": "LABEL_0"
|
| 16 |
+
},
|
| 17 |
+
"initializer_range": 0.02,
|
| 18 |
+
"intermediate_size": 3072,
|
| 19 |
+
"is_decoder": false,
|
| 20 |
+
"label2id": {
|
| 21 |
+
"LABEL_0": 0
|
| 22 |
+
},
|
| 23 |
+
"layer_norm_eps": 1e-12,
|
| 24 |
+
"max_position_embeddings": 512,
|
| 25 |
+
"model_type": "bert",
|
| 26 |
+
"num_attention_heads": 12,
|
| 27 |
+
"num_hidden_layers": 12,
|
| 28 |
+
"pad_token_id": 0,
|
| 29 |
+
"problem_type": "regression",
|
| 30 |
+
"tie_word_embeddings": true,
|
| 31 |
+
"transformers_version": "5.5.4",
|
| 32 |
+
"type_vocab_size": 2,
|
| 33 |
+
"use_cache": false,
|
| 34 |
+
"vocab_size": 50000
|
| 35 |
+
}
|
romanian/models/assignment_6/score_config.json
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"assignment_id": 6,
|
| 3 |
+
"min_score": 1.0,
|
| 4 |
+
"max_score": 6.0,
|
| 5 |
+
"original_min_score": 1.0,
|
| 6 |
+
"original_max_score": 6.0,
|
| 7 |
+
"final_r2": 0.821,
|
| 8 |
+
"n_train_samples": 900,
|
| 9 |
+
"model_name": "dumitrescustefan/bert-base-romanian-cased-v1",
|
| 10 |
+
"language": "ro"
|
| 11 |
+
}
|
romanian/models/assignment_6/tokenizer.json
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
romanian/models/assignment_6/tokenizer_config.json
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"backend": "tokenizers",
|
| 3 |
+
"cls_token": "[CLS]",
|
| 4 |
+
"do_lower_case": false,
|
| 5 |
+
"is_local": false,
|
| 6 |
+
"mask_token": "[MASK]",
|
| 7 |
+
"model_max_length": 1000000000000000019884624838656,
|
| 8 |
+
"pad_token": "[PAD]",
|
| 9 |
+
"sep_token": "[SEP]",
|
| 10 |
+
"strip_accents": null,
|
| 11 |
+
"tokenize_chinese_chars": true,
|
| 12 |
+
"tokenizer_class": "BertTokenizer",
|
| 13 |
+
"unk_token": "[UNK]"
|
| 14 |
+
}
|
romanian/models/assignment_mapping.json
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"assignment_to_id": {
|
| 3 |
+
"In \"The Challenge of Exploring Venus,\" the author suggests studying Venus is a worthy pursuit despite the dangers it presents. Using details from the article, write an essay evaluating how well the author supports this idea. Be sure to include: a claim that evaluates how well the author supports the idea that studying Venus is a worthy pursuit despite the dangers; an explanation of the evidence from the article that supports your claim; an introduction, a body, and a conclusion to your essay.": 0,
|
| 4 |
+
"In the article \"Making Mona Lisa Smile,\" the author describes how a new technology called the Facial Action Coding System enables computers to identify human emotions. Using details from the article, write an essay arguing whether the use of this technology to read the emotional expressions of students in a classroom is valuable.": 1,
|
| 5 |
+
"In the article “Driverless Cars are Coming,” the author presents both positive and negative aspects of driverless cars. Using details from the article, create an argument for or against the development of these cars. Be sure to include: your position on driverless cars; appropriate details from the article that support your position; an introduction, a body, and a conclusion to your argumentative essay.": 2,
|
| 6 |
+
"Write a letter to your state senator in which you argue in favor of keeping the Electoral College or changing to election by popular vote for the president of the United States. Use the information from the texts in your essay. Manage your time carefully so that you can read the passages; plan your response; write your response; and revise and edit your response. Be sure to include a claim; address counterclaims; use evidence from multiple sources; and avoid overly relying on one source. Your response should be in the form of a multiparagraph essay. Write your response in the space provided.": 3,
|
| 7 |
+
"Write an explanatory essay to inform fellow citizens about the advantages of limiting car usage. Your essay must be based on ideas and information that can be found in the passage set. Manage your time carefully so that you can read the passages; plan your response; write your response; and revise and edit your response. Be sure to use evidence from multiple sources; and avoid overly relying on one source. Your response should be in the form of a multiparagraph essay. Write your essay in the space provided.": 4,
|
| 8 |
+
"You have just read the article, 'A Cowboy Who Rode the Waves.' Luke's participation in the Seagoing Cowboys program allowed him to experience adventures and visit many unique places. Using information from the article, write an argument from Luke's point of view convincing others to participate in the Seagoing Cowboys program. Be sure to include: reasons to join the program; details from the article to support Luke's claims; an introduction, a body, and a conclusion to your essay.": 5,
|
| 9 |
+
"You have read the article 'Unmasking the Face on Mars.' Imagine you are a scientist at NASA discussing the Face with someone who thinks it was created by aliens. Using information in the article, write an argumentative essay to convince someone that the Face is just a natural landform.Be sure to include: claims to support your argument that the Face is a natural landform; evidence from the article to support your claims; an introduction, a body, and a conclusion to your argumentative essay.": 6
|
| 10 |
+
},
|
| 11 |
+
"id_to_assignment": {
|
| 12 |
+
"0": "In \"The Challenge of Exploring Venus,\" the author suggests studying Venus is a worthy pursuit despite the dangers it presents. Using details from the article, write an essay evaluating how well the author supports this idea. Be sure to include: a claim that evaluates how well the author supports the idea that studying Venus is a worthy pursuit despite the dangers; an explanation of the evidence from the article that supports your claim; an introduction, a body, and a conclusion to your essay.",
|
| 13 |
+
"1": "In the article \"Making Mona Lisa Smile,\" the author describes how a new technology called the Facial Action Coding System enables computers to identify human emotions. Using details from the article, write an essay arguing whether the use of this technology to read the emotional expressions of students in a classroom is valuable.",
|
| 14 |
+
"2": "In the article “Driverless Cars are Coming,” the author presents both positive and negative aspects of driverless cars. Using details from the article, create an argument for or against the development of these cars. Be sure to include: your position on driverless cars; appropriate details from the article that support your position; an introduction, a body, and a conclusion to your argumentative essay.",
|
| 15 |
+
"3": "Write a letter to your state senator in which you argue in favor of keeping the Electoral College or changing to election by popular vote for the president of the United States. Use the information from the texts in your essay. Manage your time carefully so that you can read the passages; plan your response; write your response; and revise and edit your response. Be sure to include a claim; address counterclaims; use evidence from multiple sources; and avoid overly relying on one source. Your response should be in the form of a multiparagraph essay. Write your response in the space provided.",
|
| 16 |
+
"4": "Write an explanatory essay to inform fellow citizens about the advantages of limiting car usage. Your essay must be based on ideas and information that can be found in the passage set. Manage your time carefully so that you can read the passages; plan your response; write your response; and revise and edit your response. Be sure to use evidence from multiple sources; and avoid overly relying on one source. Your response should be in the form of a multiparagraph essay. Write your essay in the space provided.",
|
| 17 |
+
"5": "You have just read the article, 'A Cowboy Who Rode the Waves.' Luke's participation in the Seagoing Cowboys program allowed him to experience adventures and visit many unique places. Using information from the article, write an argument from Luke's point of view convincing others to participate in the Seagoing Cowboys program. Be sure to include: reasons to join the program; details from the article to support Luke's claims; an introduction, a body, and a conclusion to your essay.",
|
| 18 |
+
"6": "You have read the article 'Unmasking the Face on Mars.' Imagine you are a scientist at NASA discussing the Face with someone who thinks it was created by aliens. Using information in the article, write an argumentative essay to convince someone that the Face is just a natural landform.Be sure to include: claims to support your argument that the Face is a natural landform; evidence from the article to support your claims; an introduction, a body, and a conclusion to your argumentative essay."
|
| 19 |
+
}
|
| 20 |
+
}
|
romanian/models/rf/assignment_0/rf_model.pkl
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:0706c9a69da2988d692a11881b9093f1c84a81746fc63a0eeef78ebf2509e454
|
| 3 |
+
size 12394993
|
romanian/models/rf/assignment_0/score_config.json
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"assignment_id": 0,
|
| 3 |
+
"min_score": 1.0,
|
| 4 |
+
"max_score": 6.0,
|
| 5 |
+
"n_samples": 600,
|
| 6 |
+
"n_linguistic_features": 22,
|
| 7 |
+
"total_features": 522,
|
| 8 |
+
"cv_r2": 0.8535,
|
| 9 |
+
"language": "ro"
|
| 10 |
+
}
|
romanian/models/rf/assignment_1/rf_model.pkl
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:aa2e8693a436e781325c49c62e6d3424e57466d594e172407e616136fcc338e8
|
| 3 |
+
size 5138977
|
romanian/models/rf/assignment_1/score_config.json
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"assignment_id": 1,
|
| 3 |
+
"min_score": 1.0,
|
| 4 |
+
"max_score": 6.0,
|
| 5 |
+
"n_samples": 600,
|
| 6 |
+
"n_linguistic_features": 22,
|
| 7 |
+
"total_features": 522,
|
| 8 |
+
"cv_r2": 0.8833,
|
| 9 |
+
"language": "ro"
|
| 10 |
+
}
|
romanian/models/rf/assignment_2/rf_model.pkl
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:766bb40b142af0e5fbf48455b209076eca6f2e23c02e2e55d86f89f54139e4b3
|
| 3 |
+
size 9757201
|
romanian/models/rf/assignment_2/score_config.json
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"assignment_id": 2,
|
| 3 |
+
"min_score": 1.0,
|
| 4 |
+
"max_score": 6.0,
|
| 5 |
+
"n_samples": 600,
|
| 6 |
+
"n_linguistic_features": 22,
|
| 7 |
+
"total_features": 522,
|
| 8 |
+
"cv_r2": 0.8881,
|
| 9 |
+
"language": "ro"
|
| 10 |
+
}
|
romanian/models/rf/assignment_3/rf_model.pkl
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:2776b0c4a445c5785f5fa0db5918f4571ca142c06e27074fd38242285270c7b3
|
| 3 |
+
size 15071521
|
romanian/models/rf/assignment_3/score_config.json
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"assignment_id": 3,
|
| 3 |
+
"min_score": 1.0,
|
| 4 |
+
"max_score": 6.0,
|
| 5 |
+
"n_samples": 600,
|
| 6 |
+
"n_linguistic_features": 22,
|
| 7 |
+
"total_features": 522,
|
| 8 |
+
"cv_r2": 0.8273,
|
| 9 |
+
"language": "ro"
|
| 10 |
+
}
|
romanian/models/rf/assignment_4/rf_model.pkl
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:f15b1d15caf4cd14e4d14bbc78a0a6770872eedbdd3c7121a118adae80bd3a6f
|
| 3 |
+
size 4423201
|
romanian/models/rf/assignment_4/score_config.json
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"assignment_id": 4,
|
| 3 |
+
"min_score": 1.0,
|
| 4 |
+
"max_score": 6.0,
|
| 5 |
+
"n_samples": 600,
|
| 6 |
+
"n_linguistic_features": 22,
|
| 7 |
+
"total_features": 522,
|
| 8 |
+
"cv_r2": 0.8227,
|
| 9 |
+
"language": "ro"
|
| 10 |
+
}
|
romanian/models/rf/assignment_5/rf_model.pkl
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:a28f6f7150380ddff0ed7ef7d7015710c0988526430e3405066449f577b4a283
|
| 3 |
+
size 11311249
|
romanian/models/rf/assignment_5/score_config.json
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"assignment_id": 5,
|
| 3 |
+
"min_score": 1.0,
|
| 4 |
+
"max_score": 5.0,
|
| 5 |
+
"n_samples": 533,
|
| 6 |
+
"n_linguistic_features": 22,
|
| 7 |
+
"total_features": 522,
|
| 8 |
+
"cv_r2": 0.8131,
|
| 9 |
+
"language": "ro"
|
| 10 |
+
}
|
romanian/models/rf/assignment_6/rf_model.pkl
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:ccaeecd5390486bb282e54d0fba0af0f4fd92038028944d87fbf0de5bfbb28c6
|
| 3 |
+
size 9968737
|
romanian/models/rf/assignment_6/score_config.json
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"assignment_id": 6,
|
| 3 |
+
"min_score": 1.0,
|
| 4 |
+
"max_score": 6.0,
|
| 5 |
+
"n_samples": 600,
|
| 6 |
+
"n_linguistic_features": 22,
|
| 7 |
+
"total_features": 522,
|
| 8 |
+
"cv_r2": 0.8564,
|
| 9 |
+
"language": "ro"
|
| 10 |
+
}
|
romanian/models/rf/score_config.json
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"min_score": 1.0,
|
| 3 |
+
"max_score": 6.0,
|
| 4 |
+
"r2": 0.754,
|
| 5 |
+
"language": "ro"
|
| 6 |
+
}
|
romanian/models/source_texts.json
ADDED
|
@@ -0,0 +1,58 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"0": {
|
| 3 |
+
"assignment_id": 0,
|
| 4 |
+
"assignment_label": "In \"The Challenge of Exploring Venus,\" the author suggests studying Venus is a worthy pursuit despit",
|
| 5 |
+
"source_text": "The Challenge of Exploring Venus\nVenus, sometimes called the “Evening Star,” is one of the brightest points of light in the night sky, making it simple for even and amateur stargazer to spot. However, this nickname is misleading since Venus is actually a planet. While Venus is simple to see from the distant but safe vantage point of Earth, it has proved a very challenging place to examine more closely. \nOften referred to as Earth's “twin,” Venus is the closest planet to Earth in terms of density and size, and occasionally the closest in distance too. Earth, Venus, and Mars, our other planetary neighbor, orbit the sun at different speeds. These differences in speed mean that sometimes we are closer to Mars and other times to Venus. Because Venus is sometimes right around the corner - in space terms - humans have spent numerous spacecraft to land on this cloud-draped world. Each previous mission was unmanned, and for good reason, since no spacecraft survived the landing for more than a few hours. Maybe this issue explains why not a single spaceship has touched down of Venus in more than three decades. Numerous factors contribute to Venus's reputation as a challenging planet for humans to study, despite its proximity to us. \nA thick atmosphere of almost 97 percent carbon dioxide blankets Venus. Even more challenging are the clouds of highly corrosive sulfuric acid in Venus's atmosphere. On the planet's surface, temperatures average over 800 degrees Fahrenheit, and the atmospheric pressure is 90 times greater than what we experience on our own planet. These conditions are far more extreme than anything humans encounter on Earth; such an environment would crush even a submarine accustomed to diving to the deepest parts of our oceans and would liquefy many metals. Also notable, Venus has the hottest surface temperature of any planet in our solar system, even though Mercury is closer to our sun. Beyond high pressure and heat, Venusian geology and weather present additional impediments like erupting volcanoes, powerful earthquakes, and frequent lightning strikes to probes seeking to land on its surface. \nIf our sister is so inhospitable, why are scientists even discussing further visits to its surface? Astronomers are fascinated by Venus because it may well once have been the most Earth-like planet in our solar system. Long ago, Venus was probably covered largely with oceans and could have supported various forms of life, just like Earth. Today, Venus still has some features that are analogous to those on Earth. The planet has a surface of rocky sediment and includes familiar features such as valleys, mountains, and craters. Furthermore, recall that Venus can sometimes be our nearest option for a planetary visit, a crucial consideration given the long time frames of space travel. The value of returning to Venus seems indisputable, but what are the options for making such a mission both safe and scientifically productive?\nThe National Aeronautics and Space Administration (NASA) has one particularly compelling idea for sending humans to study Venus. NASA's possible solution to the hostile conditions on the surface of Venus would allow scientists to float above the fray. Imagine a blimp-like vehicle hovering 30 or so miles above the roiling Venusian landscape. Just as our jet airplanes travel at a higher altitude to fly over many storms, a vehicle hovering over Venus would avoid the unfriendly ground conditions by staying up and out of their way. At thirty-plus miles above the surface, temperatures would still be toasty at around 170 degrees Fahrenheit, but the air pressure would be close to that of sea level on Earth. Solar power would be plentiful, and radiation would not exceed Earth levels. Not easy conditions, but survivable for humans.\nHowever, peering at Venus from a ship orbiting or hovering safely far above the planet can provide only limited insight on ground conditions rendering standard forms of photography and videography ineffective. More importantly, researchers cannot take samples of rock, gas, or anything else, from a distance. Therefore, scientists seeking to conduct a thorough mission to understand Venus would need to get up close and personal despite the risks. Or maybe we should think of them as challenges. Many researchers are working on innovations that would allow our machines to last long enough to contribute meaningfully to our knowledge of Venus. \nNASA is working on other approaches to studying Venus. For example, some simplified electronics made of silicon carbide have been tested in a chamber simulating the chaos of Venus's surface and have lasted for three weeks in such conditions. Another project is looking back to an old technology called mechanical computers. These devices were first envisioned in the 1800s and played an important role int he 1940s during World War II. The thought of computers existing in those days may sound shocking, but these devices make calculations by using gears and levers and do not require electronics at all. Modern computers are enormously powerful, flexible, and quick, but tend to be more delicate when it comes to extreme physical conditions. Just imagine exposing a cell phone or tablet to acid or heat capable of melting tin. By comparison, systems that use mechanical parts can be made more resistant to pressure, heat, and other forces. \nStriving to meet the challenge presented by Venus has value, not only because of the insight to be gained on the planet itself, but also because human curiosity will likely lead us into many equally intimidating endeavors. Our travels on Earth and beyond should not be limited by dangers and doubts but should be expanded to meet the very edges of imagination and innovation.",
|
| 6 |
+
"has_source": true,
|
| 7 |
+
"n_samples": 4480,
|
| 8 |
+
"source_text_ro": "Provocarea de a explora Venus\nVenus, numită uneori „Steaua de seară”, este unul dintre cele mai strălucitoare puncte de lumină de pe cerul nopții, ceea ce face simplu de observat pentru observatorii stelelor amatori.Cu toate acestea, această poreclă este înșelătoare, deoarece Venus este de fapt o planetă.În timp ce Venus este ușor de văzut din punctul de vedere îndepărtat, dar sigur al Pământului, s-a dovedit un loc foarte dificil de examinat mai atent.\nDeseori denumită „geamănul” Pământului, Venus este cea mai apropiată planetă de Pământ în ceea ce privește densitatea și dimensiunea și, uneori, cea mai apropiată distanță.Pământul, Venus și Marte, celălalt vecin al nostru planetar, orbitează în jurul Soarelui cu viteze diferite.Aceste diferențe de viteză înseamnă că uneori suntem mai aproape de Marte și alteori de Venus.Deoarece Venus este uneori chiar după colț - în termeni spațiali - oamenii au cheltuit numeroase nave spațiale pentru a ateriza pe această lume acoperită de nori.Fiecare misiune anterioară a fost fără pilot și din motive întemeiate, deoarece nicio navă spațială nu a supraviețuit aterizării mai mult de câteva ore.Poate că această problemă explică de ce nicio navă spațială nu a aterizat pe Venus în mai mult de trei decenii.Numeroși factori contribuie la reputația lui Venus ca o planetă dificilă de studiat pentru oameni, în ciuda apropierii sale de noi.\nO atmosferă groasă de aproape 97% dioxid de carbon acoperă Venus.Și mai provocatori sunt norii de acid sulfuric extrem de coroziv din atmosfera lui Venus.Pe suprafața planetei, temperaturile medii depășesc 800 de grade Fahrenheit, iar presiunea atmosferică este de 90 de ori mai mare decât cea pe care o experimentăm pe propria noastră planetă.Aceste condiții sunt mult mai extreme decât orice întâlnesc oamenii pe Pământ;un astfel de mediu ar zdrobi chiar și un submarin obișnuit să se scufunde în cele mai adânci părți ale oceanelor noastre și ar lichefia multe metale.De asemenea, notabil, Venus are cea mai caldă temperatură la suprafață a oricărei planete din sistemul nostru solar, chiar dacă Mercur este mai aproape de soarele nostru.Dincolo de presiune ridicată și căldură, geologia și vremea venusiană prezintă suplimentar"
|
| 9 |
+
},
|
| 10 |
+
"1": {
|
| 11 |
+
"assignment_id": 1,
|
| 12 |
+
"assignment_label": "In the article \"Making Mona Lisa Smile,\" the author describes how a new technology called the Facial",
|
| 13 |
+
"source_text": "Copyright Restricted",
|
| 14 |
+
"has_source": true,
|
| 15 |
+
"n_samples": 4883,
|
| 16 |
+
"source_text_ro": "Drepturi de autor restricționate"
|
| 17 |
+
},
|
| 18 |
+
"2": {
|
| 19 |
+
"assignment_id": 2,
|
| 20 |
+
"assignment_label": "You have read the article 'Unmasking the Face on Mars.' Imagine you are a scientist at NASA discussi",
|
| 21 |
+
"source_text": "Unmasking the Face on Mars\nSide by side: a Viking 1 photo from 1975, a Mars Global Surveyor (MGS) image from 1998, and the latest MGS image from 2001.\nNew high-resolution images and 3D altimetry from NASA’s Mars Global Surveyor spacecraft reveal the Face on Mars for what it really is: a mesa.\nOn May 24, 2001—Twenty five years ago, something funny happened around Mars. NASA’s Viking 1 spacecraft was circling the planet, snapping photos of possible landing sites for its sister ship Viking 2, when it spotted the shadowy likeness of a human face. An enormous head nearly two miles from end to end seemed to be staring back at the cameras from a region of the Red Planet called Cydonia.\nThere must have been a degree of surprise among mission controllers back at the Jet Propulsion Laboratory when the face appeared on their monitors. But the sensation was short-lived. Scientists figured it was just another Martian mesa, common enough around Cydonia, only this one had unusual shadows that made it look like an Egyptian Pharaoh. \nA few days later NASA unveiled the image for all to see. The caption noted a “huge rock formation . . . which resembles a human head . . . formed by shadows giving the illusion of eyes, nose, and mouth.” The authors reasoned it would be a good way to engage the public and attract attention to Mars.\nIt certainly did!\nThe “Face on Mars” has since become a pop icon. It has starred in a Hollywood film, appeared in books, magazines, radio talk shows – even haunted grocery store checkout lines for 25 years! Some people think the Face is bona fide evidence of life on Mars – evidence that NASA would rather hide, say conspiracy theorists. Meanwhile, defenders of the NASA budget wish there was an ancient civilization on Mars. \nA 1976 Viking 1 photograph of the Face on Mars\nAlthough few scientists believed the Face was an alien artifact, photographing Cydonia became a priority for NASA when Mars Global Surveyor (MGS) arrived at the Red Planet in Sept. 1997, eighteen long years after the Viking missions ended. “We felt this was important to taxpayers,” explained Jim Garvin, chief scientist for NASA’s mars Exploration Program. “We photographed the Face as soon as we could get a good shot at it.”\nAnd so on April 5, 1998, when Mars Global Surveyor flew over Cydonia for the first time, Michael Malin and his Mars Orbiter Camera (MOC) team snapped a picture ten times sharper than the original Viking photos. Thousands of anxious web surfers were waiting when the image first appeared on a JPL web site, revealing . . . a natural landform. There was no alien monument after all. \nBut not everyone was satisfied. The Face on Mars is located at 41 degrees north martial latitude where it was winter in April ‘98 – a cloudy time of year on the Red Planet. The camera on board MGS had to peer through wispy clouds to see the Face. Perhaps, said skeptics, alien markings were hidden by haze. \nMission controllers prepared to look again. “It’s not easy to target Cydonia,” says Garvin. “In fact, it’s hard work.” Mars Global Surveyor is a mapping spacecraft that normally looks straight down and scans the planet like a fax machine in narrow 2.5 km-wide strips. “We don’t pass over the Face very often,” he noted. \nNevertheless, on April 8, 2001 – a cloudless summer day in Cydonia – Mars Global Surveyor drew close enough for a second look. “We had to roll the spacecraft 25 degrees to center the Face in the field of view,” said Garvin. “Malin’s team captured an extraordinary photo using the camera’s absolute maximum resolution.” Each pixel in the 2001 image spans 1.56 meters, compared to the 43 meters per pixel in the best 1976 Viking photo. \n“As a rule of thumb, you can discern things in a digital image 3 times bigger than the pixel size,” he added. “So, if there were objects in this picture like airplanes on the ground or Egyptian-style pyramids or even small shacks, you could see what they were!”\nWhat the picture actually shows is the Martian equivalent of a butte or mesa – landforms common around the American West. “It reminds me of most of Middle Butte in the Snake River Plain of Idaho,” says Garvin. “That’s a lava dome that takes the form of an isolated mesa about the same height as the Face on Mars.”\nText and photographs courtsey of NASA, “Unmasking the Face on Mars,” May 24, 2001 (retrieved from science.nasa.gov/science-news/science-at-nasa/2001/ast24may_1/)",
|
| 22 |
+
"has_source": true,
|
| 23 |
+
"n_samples": 3015,
|
| 24 |
+
"source_text_ro": "Demascarea chipului pe Marte\nAlăturat: o fotografie Viking 1 din 1975, o imagine Mars Global Surveyor (MGS) din 1998 și cea mai recentă imagine MGS din 2001.\nNoi imagini de înaltă rezoluție și altimetria 3D de la sonda spațială Mars Global Surveyor a NASA dezvăluie Fața de pe Marte pentru ceea ce este cu adevărat: o mesa.\nPe 24 mai 2001 — în urmă cu douăzeci și cinci de ani, s-a întâmplat ceva amuzant în jurul lui Marte.Nava spațială Viking 1 a NASA dădea înconjurul planetei, făcând fotografii cu posibile locuri de aterizare pentru nava sa soră Viking 2, când a văzut asemănarea întunecată a unui chip uman.Un cap enorm de aproape două mile de la un capăt la altul părea să se uite înapoi la camerele de luat vederi dintr-o regiune a planetei roșii numită Cydonia.\nTrebuie să fi existat un anumit grad de surpriză în rândul controlorilor de misiune din Laboratorul de Propulsie cu Jet când chipul a apărut pe monitoarele lor.Dar senzația a fost de scurtă durată.Oamenii de știință s-au gândit că era doar o altă masă marțiană, destul de comună în jurul Cydoniei, doar că aceasta avea umbre neobișnuite care o făceau să arate ca un faraon egiptean.\nCâteva zile mai târziu, NASA a dezvăluit imaginea pentru ca toți să o vadă.Legenda menționa o „formațiune de stâncă uriașă... care seamănă cu un cap uman... formată din umbre care dă iluzia ochilor, nasului și gurii”.Autorii au motivat că ar fi o modalitate bună de a implica publicul și de a atrage atenția asupra lui Marte.\nCu siguranță a făcut-o!\n„Face on Mars” a devenit de atunci o pictogramă pop.A jucat într-un film de la Hollywood, a apărut în cărți, reviste, talk-show-uri radio – chiar și a bântuit rândurile de casă la băcănie timp de 25 de ani!Unii oameni cred că Fața este o dovadă reală a vieții pe Marte - dovadă că NASA ar prefera să ascundă, spun teoreticienii conspirației.Între timp, apărătorii bugetului NASA și-ar dori să existe o civilizație străveche pe Marte.\nO fotografie Viking 1 din 1976 a feței de pe Marte\nDeși puțini oameni de știință credeau că Fața este un artefact extraterestră, fotografiarea Cydonia a devenit o prioritate pentru NASA când Mars Global Surveyor (MGS) a sosit pe Planeta Roșie în septembrie 1997, opt."
|
| 25 |
+
},
|
| 26 |
+
"3": {
|
| 27 |
+
"assignment_id": 3,
|
| 28 |
+
"assignment_label": "You have just read the article, 'A Cowboy Who Rode the Waves.' Luke's participation in the Seagoing ",
|
| 29 |
+
"source_text": "A Cowboy Who Rode the Waves\nby Peggy Reif Miller\nLuke Bomberger crossed the Atlantic Ocean 16 times and the Pacific Ocean twice to help people affected by World War II.\nLuke Bomberger had no idea that his life would change soon after his high school graduation. He was working two part-time jobs in a grocery store and a bank when his friend Don Reist invited him to go to Europe on a cattle boat. Luke couldn’t say no. He knew it was an opportunity of a lifetime. \nIt was 1945, World War II was over in Europe, and many countries were left in ruins. To help these countries recover their food supplies, animals, and more, 44 nations joined together to form UNRRA (the United Nations Relief and Rehabilitation Administration). UNRRA hired “Seagoing Cowboys” to take care of the horses, young cows, and mules that were shipped overseas. Luke and Don signed up. \nHeading Overseas\nIn August 1945, they received their orders to report to New Orleans. “We arrived August 14,” Luke says, “the day the Pacific war ended.” They got their seaman’s papers and boarded the SS Charles W. Wooster, headed for Greece – with a cargo of 335 horses plus enough hay and oats to feed them. \nLuke turned 18 before arriving in Greece, which meant he could be drafted for military service. “When my draft board learned that I was on a cattle-boat trip, they told me to just keep doing that for my service.” By the time he was discharged in 1947, Luke had made nine trips – the most of any Seagoing Cowboy.\n“The cattle-boat trips were an unbelievable opportunity for a small-town bow,” he says. “Besides helping people, I had the side benefit of seeing Europe and China. But seeing the Acropolis in Greece was special,” he says. “So was taking a gondola ride in Venice, Italy, a city with streets of water.” Luke also toured an excavated castle in Crete and marveled at the Panama Canal on his way to China.\nTraveling the High Seas\nIt took about two weeks to cross the Atlantic Ocean from the eastern coast of the United States and a month to get to China. Caring for the animals during the crossings kept Luke busy. They had to be fed and watered two or three times a day. Bales of hay and bags of oats had to be pulled up from the lower holds of the ship. Stalls had to be cleaned. \nHelping out on his aunt Katie’s farm as a boy had prepared Luke for hard work, but not for the dangers at sea. On his second trip, Luke served at night watchman. His job was to check on all the animals every hour. One rainy night, after making his hourly report to the captain, he slid down a slippery ladder on his backside. Luke’s heart raced as he shot feet first toward an opening on the side of the ship. A small strip of metal along the edge stopped his slide, keeping him from flying overboard into the dark Atlantic. He was happy to be alive. But he couldn’t work for a couple of days because of cracked ribs. \nLuke also found time to have fun on board, especially on return trips after the animals had been unloaded. The cowboys played baseball and volleyball games in the empty holds where animals had been housed. Table-tennis tournaments, fencing, boxing, reading, whittling, and games also helped pass the time. \nBut being a Seagoing Cowboy was much more than an adventure for Luke Bomberger. It opened up the world to him. “I’m grateful for the opportunity,” he says. “It made me more aware of people of other countries and their needs.” And that awareness stayed with him, leading his family to host a number of international students and exchange visitors for many years.\n“A Cowboy Who Rode the Waves” by Peggy Reif Miller from Highlights for Children Magazine’s October 2013 issue, copyright 2013 by Highlights for Children, Inc., Colombus, Ohio. Used by permission.",
|
| 30 |
+
"has_source": true,
|
| 31 |
+
"n_samples": 2175,
|
| 32 |
+
"source_text_ro": "Un cowboy care a călărit pe valuri\nde Peggy Reif Miller\nLuke Bomberger a traversat Oceanul Atlantic de 16 ori și Oceanul Pacific de două ori pentru a ajuta oamenii afectați de cel de-al Doilea Război Mondial.\nLuke Bomberger habar n-avea că viața lui se va schimba la scurt timp după absolvirea liceului.Muncea două locuri de muncă cu jumătate de normă într-un magazin alimentar și într-o bancă când prietenul său Don Reist l-a invitat să plece în Europa pe o barcă de vite.Luke nu putea spune nu.Știa că era o oportunitate a vieții.\nEra 1945, al Doilea Război Mondial se terminase în Europa și multe țări erau lăsate în ruine.Pentru a ajuta aceste țări să-și recupereze proviziile de hrană, animalele și multe altele, 44 de națiuni s-au unit pentru a forma UNRRA (Administrația Națiunilor Unite pentru Ajutorare și Reabilitare).UNRRA a angajat „Cowboy de mare” pentru a avea grijă de cai, vaci tinere și catâri care au fost expediați peste ocean.Luke și Don s-au înscris.\nÎndreptându-se peste mări\nÎn august 1945, au primit ordinul de a se prezenta la New Orleans.„Am sosit pe 14 august”, spune Luke, „în ziua în care s-a încheiat războiul din Pacific”.Și-au luat actele de marinar și s-au îmbarcat pe SS Charles W. Wooster, îndreptându-se spre Grecia – cu o încărcătură de 335 de cai plus fân și ovăz suficient pentru a-i hrăni.\nLuke a împlinit 18 ani înainte de a ajunge în Grecia, ceea ce a însemnat că ar putea fi recrutat pentru serviciul militar.„Când consiliul meu de proiect a aflat că eram într-o excursie cu barca cu vite, mi-a spus să continui să fac asta pentru serviciul meu.”Până când a fost externat, în 1947, Luke făcuse nouă călătorii – cele mai multe dintre orice cowboy pe mare.\n„Excursiile cu barca cu vite au fost o oportunitate incredibilă pentru un mic oraș,” spune el.\"Pe lângă faptul că am ajutat oamenii, am avut avantajul secundar de a vedea Europa și China. Dar să văd Acropola din Grecia a fost special\", spune el.„La fel a fost să facem o plimbare cu gondola în Veneția, Italia, un oraș cu străzi de apă.”Luke a vizitat și un castel excavat din Creta și s-a mirat de Canalul Panama în drum spre China.\nCălătorind în Marea Liberă\nA fost nevoie de aproximativ două săptămâni pentru a traversa Oceanul Atlantic de pe coasta de est a United St"
|
| 33 |
+
},
|
| 34 |
+
"4": {
|
| 35 |
+
"assignment_id": 4,
|
| 36 |
+
"assignment_label": "In the article “Driverless Cars are Coming,” the author presents both positive and negative aspects ",
|
| 37 |
+
"source_text": "Driverless Cars Are Coming \nCan you imagine a time in the future when no one buys cars because no one needs them anymore? Google cofounder Sergey Brin can. He envisions a future with a public transportation system where fleets of driverless cars form a public-transport taxi system. The cars he foresees would use half the fuel of today’s taxis and offer far more flexibility than a bus. He believes such cars would fundamentally change the world. \nTelevision and movies have long been fascinated with cars that could drive themselves. In reality, Google has had cars that could drive independently under specific conditions since 2009. Their cars have driven more than half a million miles without a crash, but so far, Google cars aren't truly driverless; they still alert the driver to take over when pulling in and out of driveways or dealing with complicated traffic issues, such as navigating through roadwork or accidents. So what roadblocks lie ahead for the autonomous car? \nSensing the World \nLet's begin by looking at which companies are making computer-driven cars. Originally, many futurists believed the key to developing self-driving cars someday wasn't so much smarter cars as smarter roads. For example, in the late 1950s, General Motors created a concept car that could run on a special test track. The track was embedded with an electrical cable that sent radio signals to a receiver on the front end of the car. Engineers at Berkeley tried something similar, but they used magnets with alternating polarity. The car read the positive and negative polarity as messages in binary code. These smart-road systems worked surprisingly well, but they required massive upgrades to existing roads, something that was simply too expensive to be practical. \nWithout the option of smarter roads, manufacturers turned to smarter cars—but how much smarter did the cars need to be? For starters, they needed a whole lot of sensors. Google's modified Toyota Prius uses position-estimating sensors on the left rear wheel, a rotating sensor on the roof, a video camera mounted near the rearview mirror, four automotive radar sensors, a GPS receiver, and an inertial motion sensor. The most important bit of technology in this system is the spinning sensor on the roof. Dubbed LIDAR, it uses laser beams to form a constantly updating 3-D model of the car's surroundings. The combination of all this input is necessary for the driverless car to mimic the skill of a human at the wheel. \nSensors are nothing new, of course. In the 1980s, automakers used speed sensors at the wheels in the creation of antilock brakes. Within 10 years, those sensors had become more advanced to detect and respond to the danger of out-of-control skids or rollovers. The information from the sensors can cause the car to apply brakes on individual wheels and reduce power from the engine, allowing far better response and control than a human driver could manage alone. Further improvements in sensors and computer hardware and software to make driving safer are also leading to cars that can handle more and more driving tasks on their own. \nDriving or Assisting? \nAntilock brakes and driver assistance still seem a long way from the dream of calling a driverless cab to take us wherever we desire, but Sebastian Thrun, founder of the Google Car project, believes that the technology has finally begun to catch up to the dream. “There was no way, before 2000, to make something interesting. The sensors weren't there, the computers weren't there, and the mapping wasn't there. Radar was a device on a hilltop that cost two hundred million dollars. It wasn't something you could buy at Radio Shack.” So just how driverless will the cars be in the near future?\nIn 2013, BMW announced the development of “Traffic Jam Assistant.” The car can handle driving functions at speeds up to 25 mph, but special touch sensors make sure the driver keeps hold of the wheel. In fact, none of the cars developed so far are completely driverless. They can steer, accelerate, and brake themselves, but all are designed to notify the driver when the road ahead requires human skills, such as navigating through work zones and around accidents. This means the human driver must remain alert and be ready to take over when the situation requires. This necessitates the car being ready to quickly get the driver's attention whenever a problem occurs. GM has developed driver's seats that vibrate when the vehicle is in danger of backing into an object. The Google car simply announces when the driver should be prepared to take over. Other options under consideration are flashing lights on the windshield and other heads-up displays. Manufacturers are also considering using cameras to watch that drivers are remaining focused on the road. While the driver watches the road, the car watches the driver. \nWhy would anyone want a driverless car that still needs a driver? Wouldn’t drivers get bored waiting for their turn to drive? “The psychological aspects of automation are really a challenge,” admits Dr. Werner Huber, a BMW project manager driver. “We have to interpret the driving fun in a new way.” Some manufacturers hope to do that by bringing in-car entertainment and information systems that use heads-up displays. Such displays can be turned off instantly when the driver needs to take over—something not available to drivers trying to text with a cell phone. In this way, the in-car system is actually a safety feature, and safety is a big concern. \nWaiting on the Law \nMost driving laws focus on keeping drivers, passengers, and pedestrians safe, and lawmakers know that safety is best achieved with alert drivers. Presently, traffic laws are written with the assumption that the only safe car has a human driver in control at all times. As a result, in most states it is illegal even to test computer-driven cars. California, Nevada, Florida, and the District of Columbia have led the country in allowing limited use of semi-autonomous cars; manufacturers believe that more states will follow as soon as the cars are proved more reliably safe. Still, even if traffic laws change, new laws will be needed in order to cover liability in the case of an accident. If the technology fails and someone is injured, who is at fault—the driver or the manufacturer? \nAutomakers are continuing their work on the assumption that the problems ahead will be solved. Tesla has projected a 2016 release for a car capable of driving on autopilot 90 percent of the time. Mercedes-Benz, Audi, and Nissan plan to have cars that can drive themselves by 2020. The road to the truly autonomous car stretches on ahead of us, but we grow closer to the destination every day.",
|
| 38 |
+
"has_source": true,
|
| 39 |
+
"n_samples": 6170,
|
| 40 |
+
"source_text_ro": "Vin mașinile fără șofer\nVă puteți imagina o perioadă în viitor când nimeni nu cumpără mașini pentru că nimeni nu mai are nevoie de ele?Cofondatorul Google Sergey Brin poate.El își imaginează un viitor cu un sistem de transport public în care flotele de mașini fără șofer formează un sistem de taxiuri de transport public.Mașinile pe care le prevede ar folosi jumătate din combustibilul taxiurilor de astăzi și vor oferi mult mai multă flexibilitate decât un autobuz.El crede că astfel de mașini ar schimba în mod fundamental lumea.\nTeleviziunea și filmele au fost mult timp fascinate de mașinile care se puteau conduce singure.În realitate, Google a avut mașini care ar putea circula independent în condiții specifice din 2009. Mașinile lor au parcurs mai mult de jumătate de milion de mile fără să se prăbușească, dar până acum, mașinile Google nu sunt cu adevărat fără șofer;ele tot avertizează șoferul să preia conducerea atunci când intra și ieși din alee sau se confruntă cu probleme complicate de trafic, cum ar fi navigarea prin lucrări rutiere sau accidente.Deci, ce obstacole urmează pentru mașina autonomă?\nSimtând lumea\nSă începem prin a ne uita la ce companii produc mașini conduse de computer.Inițial, mulți futuriști credeau că cheia dezvoltării mașinilor autonome într-o zi nu era atât mașinile mai inteligente, cât drumurile mai inteligente.De exemplu, la sfârșitul anilor 1950, General Motors a creat un concept de mașină care putea rula pe o pistă specială de testare.Pista era încorporată cu un cablu electric care trimitea semnale radio către un receptor aflat în partea din față a mașinii.Inginerii de la Berkeley au încercat ceva similar, dar au folosit magneți cu polaritate alternativă.Mașina a citit polaritatea pozitivă și negativă ca mesaje în cod binar.Aceste sisteme de drumuri inteligente au funcționat surprinzător de bine, dar au necesitat îmbunătățiri masive ale drumurilor existente, ceva care era pur și simplu prea scump pentru a fi practic.\nFără opțiunea de drumuri mai inteligente, producătorii s-au orientat către mașini mai inteligente, dar cât de mult mai inteligente trebuiau să fie mașinile?Pentru început, aveau nevoie de o mulțime de senzori.Toyota Prius modificată de Google folosește senzori de estimare a poziției"
|
| 41 |
+
},
|
| 42 |
+
"5": {
|
| 43 |
+
"assignment_id": 5,
|
| 44 |
+
"assignment_label": "Write a letter to your state senator in which you argue in favor of keeping the Electoral College or",
|
| 45 |
+
"source_text": "What Is the\nElectoral College?\nby the Office of the Federal Register\nThe Electoral College is a process, not a place. The founding fathers established it in the\nConstitution as a compromise between election of the President by a vote in Congress and\nelection of the President by a popular vote of qualified citizens.\nThe Electoral College process consists of the selection of the electors, the meeting of the\nelectors where they vote for President and Vice President, and the counting of the electoral votes\nby Congress.\nThe Electoral College consists of 538 electors. A majority of 270 electoral votes is required\nto elect the President. Your state’s entitled allotment of electors equals the number of members in\nits Congressional delegation: one for each member in the House of Representatives plus two for\nyour Senators. . . .\nUnder the 23rd Amendment of the Constitution, the District of Columbia is allocated 3\nelectors and treated like a state for purposes of the Electoral College. For this reason, in the\nfollowing discussion, the word “state” also refers to the District of Columbia.\nEach candidate running for President in your state has his or her own group of electors. The\nelectors are generally chosen by the candidate’s political party, but state laws vary on how the\nelectors are selected and what their responsibilities are. . . .\nThe presidential election is held every four years on the Tuesday after the first Monday in\nNovember. You help choose your state’s electors when you vote for President because when you\nvote for your candidate you are actually voting for your candidate’s electors.\nMost states have a “winner-take-all” system that awards all electors to the winning\npresidential candidate. However, Maine and Nebraska each have a variation of “proportional representation.” . . .\nAfter the presidential election, your governor prepares a “Certificate of Ascertainment”\nlisting all of the candidates who ran for President in your state along with the names of their\nrespective electors. The Certificate of Ascertainment also declares the winning presidential\ncandidate in your state and shows which electors will represent your state at the meeting of the\nelectors in December of the election year. Your state’s Certificates of Ascertainments are sent to\nthe Congress and the National Archives as part of the official records of the presidential election.\nExcerpt from “What Is the Electoral College?” by\nthe Office of the Federal Register, from\nwww.archives.gov/federal-register/electoral\u0002college/about.html. In the public domain.",
|
| 46 |
+
"has_source": true,
|
| 47 |
+
"n_samples": 2046,
|
| 48 |
+
"source_text_ro": "Ce este\nColegiul Electoral?\nde către Oficiul Registrului Federal\nColegiul Electoral este un proces, nu un loc.Părinții fondatori au stabilit-o în\nConstituția ca compromis între alegerea Președintelui prin vot în Congres și\nalegerea Președintelui prin vot popular al cetățenilor calificați.\nProcesul Colegiului Electoral constă în selecția alegătorilor, întrunirea celor\nalegătorilor unde votează pentru Președinte și Vicepreședinte și numărarea voturilor electorale\nde către Congres.\nColegiul Electoral este format din 538 de alegători.Este necesară o majoritate de 270 de voturi electorale\nsă aleagă Președintele.Alocarea cu drepturi de alegători a statului dvs. este egală cu numărul de membri în\ndelegația sa Congresului: câte unul pentru fiecare membru în Camera Reprezentanților plus doi pentru\nsenatorii dumneavoastră....\nConform celui de-al 23-lea amendament al Constituției, Districtului Columbia i se alocă 3\nalegătorilor și tratați ca un stat în scopurile Colegiului Electoral.Din acest motiv, în\nîn urma discuției, cuv��ntul „stat” se referă și la Districtul Columbia.\nFiecare candidat care candidează pentru Președinție în statul dumneavoastră are propriul său grup de alegători.The\nalegătorii sunt, în general, aleși de partidul politic al candidatului, dar legile de stat variază cu privire la modul în care se efectuează\nalegătorii sunt selectați și care sunt responsabilitățile lor....\nAlegerile prezidențiale au loc la fiecare patru ani în marți după prima zi de luni în\nnoiembrie.Ajuți la alegerea alegătorilor statului tău atunci când votezi pentru președinte, deoarece atunci când tu\nvotați pentru candidatul dvs., de fapt votați pentru alegătorii candidatului dvs.\nMajoritatea statelor au un sistem „câștigătorul ia tot” care acordă toți alegătorii pentru câștigătorul\ncandidat la preşedinţie.Cu toate acestea, Maine și Nebraska au fiecare o variație de „reprezentare proporțională”....\nDupă alegerile prezidențiale, guvernatorul dumneavoastră pregătește un „Certificat de constatare”\nlistând toți candidații care au candidat pentru președinte în statul dumneavoastră, împreună cu numele lor\nresp"
|
| 49 |
+
},
|
| 50 |
+
"6": {
|
| 51 |
+
"assignment_id": 6,
|
| 52 |
+
"assignment_label": "Write an explanatory essay to inform fellow citizens about the advantages of limiting car usage. You",
|
| 53 |
+
"source_text": "In German\nSuburb, Life Goes On\nWithout Cars\nby Elisabeth Rosenthal\nVAUBAN, Germany—Residents of this upscale community are suburban pioneers, going\nwhere few soccer moms or commuting executives have ever gone before: they have given up\ntheir cars.\nStreet parking, driveways and home garages are generally forbidden in this experimental\nnew district on the outskirts of Freiburg, near the French and Swiss borders. Vauban’s streets are\ncompletely “car-free”—except the main thoroughfare, where the tram to downtown Freiburg runs,\nand a few streets on one edge of the community. Car ownership is allowed, but there are only two\nplaces to park—large garages at the edge of the development, where a car-owner buys a space,\nfor $40,000, along with a home.\nAs a result, 70 percent of Vauban’s families do not own cars, and 57 percent sold a car to\nmove here. “When I had a car I was always tense. I’m much happier this way,” said Heidrun\nWalter, a media trainer and mother of two, as she walked verdant streets where the swish of\nbicycles and the chatter of wandering children drown out the occasional distant motor.\nVauban, completed in 2006, is an example of a growing trend in Europe, the United States\nand elsewhere to separate suburban life from auto use, as a component of a movement called\n“smart planning.”\nAutomobiles are the linchpin of suburbs, where middle-class families from Chicago to\nShanghai tend to make their homes. And that, experts say, is a huge impediment to current\nefforts to drastically reduce greenhouse gas emissions from tailpipes . . . . Passenger cars are\nresponsible for 12 percent of greenhouse gas emissions in Europe . . . and up to 50 percent in\nsome car-intensive areas in the United States.\nWhile there have been efforts in the past two decades to make cities denser, and better for\nwalking, planners are now taking the concept to the suburbs . . . . Vauban, home to 5,500 residents within a rectangular square mile, may be the most advanced experiment in low-car\nsuburban life. But its basic precepts are being adopted around the world in attempts to make\nsuburbs more compact and more accessible to public transportation, with less space for parking.\nIn this new approach, stores are placed a walk away, on a main street, rather than in malls along\nsome distant highway.\n“All of our development since World War II has been centered on the car, and that will have\nto change,” said David Goldberg, an official of Transportation for America, a fast-growing coalition\nof hundreds of groups in the United States . . . who are promoting new communities that are less\ndependent on cars. Mr. Goldberg added: “How much you drive is as important as whether you\nhave a hybrid.”\nLevittown and Scarsdale, New York suburbs with spread-out homes and private garages,\nwere the dream towns of the 1950s and still exert a strong appeal. But some new suburbs may\nwell look more Vauban-like, not only in developed countries but also in the developing world,\nwhere emissions from an increasing number of private cars owned by the burgeoning middle\nclass are choking cities.\nIn the United States, the Environmental Protection Agency is promoting “car reduced”\ncommunities, and legislators are starting to act, if cautiously. Many experts expect public\ntransport serving suburbs to play a much larger role in a new six-year federal transportation bill\nto be approved this year, Mr. Goldberg said. In previous bills, 80 percent of appropriations have by\nlaw gone to highways and only 20 percent to other transport.\nExcerpt from “In German Suburb, Life Goes On\nWithout Cars” by Elisabeth Rosenthal, from the\nNew York Times. Copyright © 2009 by the New\nYork Times Company. Reprinted by permission of\nthe New York Times Company via Copyright\nClearance Center.",
|
| 54 |
+
"has_source": true,
|
| 55 |
+
"n_samples": 1959,
|
| 56 |
+
"source_text_ro": "În germană\nSuburbie, Viața Continuă\nFara Masini\nde Elisabeth Rosenthal\nVAUBAN, Germania — Locuitorii acestei comunități de lux sunt pionieri suburbani, mergând\nunde puține mame de fotbal sau directori de navetă au mai mers vreodată: au renunțat\nmașinile lor.\nParcarea pe stradă, aleile și garajele de acasă sunt în general interzise în acest experiment\ncartier nou la marginea orașului Freiburg, lângă granițele cu Franța și Elveția.Străzile lui Vauban sunt\ncomplet „fără mașini” – cu excepția arterei principale, unde circulă tramvaiul spre centrul orașului Freiburg,\nși câteva străzi la o margine a comunității.Proprietatea de mașini este permisă, dar sunt doar două\nlocuri de parcare - garaje mari la marginea dezvoltării, unde un proprietar de mașină cumpără un spațiu,\npentru 40.000 de dolari, împreună cu o casă.\nDrept urmare, 70% din familiile lui Vauban nu dețin mașini, iar 57% au vândut o mașină către\nmuta-te aici.\"Când aveam o mașină, eram mereu încordat. Sunt mult mai fericit în acest fel\", a spus Heidrun\nWalter, un antrenor de media și mamă a doi copii, în timp ce mergea pe străzile înverzite unde zbârneau\nbicicletele și vorbăria copiilor rătăciți îneacă ocazional motor îndepărtat.\nVauban, finalizat în 2006, este un exemplu de tendință în creștere în Europa, Statele Unite\nși în altă parte pentru a separa viața suburbană de utilizarea auto, ca o componentă a unei mișcări numite\n„planificare inteligentă”.\nAutomobilele sunt pivotul suburbiilor, unde familiile din clasa de mijloc din Chicago până\nShanghai tind să-și facă case.Și asta, spun experții, este un impediment imens pentru curent\neforturi de reducere drastică a emisiilor de gaze cu efect de seră de la conductele de evacuare ....Mașinile de pasageri sunt\nresponsabil pentru 12% din emisiile de gaze cu efect de seră din Europa...și până la 50 la sută în\nunele zone cu mașini intensive din Statele Unite.\nDeși s-au făcut eforturi în ultimele două decenii pentru a face orașele mai dense și mai bune pentru\nmers pe jos, planificatorii duc acum conceptul în suburbii....Vauban, care găzduiește 5.500 de locuitori pe o milă pătrată dreptunghiulară, ar putea fi cel mai avansat experiment cu mașini joase.\nsubu"
|
| 57 |
+
}
|
| 58 |
+
}
|
romanian/models/xgb/assignment_0/scaler.pkl
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:938a74ab93c63a79dbbaefd16608e3d291ab052bdf7b4936df263399bde532fd
|
| 3 |
+
size 1143
|