/
NeuroEdTech
/
AI-marafon
Обзор
Документация
Войти
/
NeuroEdTech
/
AI-marafon
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
main
src/data_prep.py
37 строк
1 KB
Oleg
Add MLP data prep, training and baseline results
25 янв 2026, 15:58
25 янв 2026, 15:58
f381c55
Код
Авторство
О чём код?
import csv import pandas as pd import re from sklearn.model_selection import train_test_split from .config import RAW_DATA, PROCESSED_DATA, TEXT_COL, TARGET_COL def basic_clean(text: str) -> str: text = text.lower() text = re.sub(r"[^a-zA-Zа-яА-Я0-9ёЁ ]+", " ", text) text = re.sub(r"\s+", " ", text).strip() return text def load_raw(path: str | None = None) -> pd.DataFrame: path = path or RAW_DATA return pd.read_csv(path, encoding="cp1251", sep=";", quoting=csv.QUOTE_MINIMAL) def preprocess(df: pd.DataFrame) -> pd.DataFrame: # выкидываем пустые и NaN в text/label df = df.dropna(subset=[TEXT_COL, TARGET_COL]) df = df[df[TEXT_COL].astype(str).str.strip() != ""] df = df[df[TARGET_COL].astype(str).str.strip() != ""] df[TEXT_COL] = df[TEXT_COL].astype(str).apply(basic_clean) return df def train_test_split_texts(df: pd.DataFrame, test_size=0.2, random_state=42): X = df[TEXT_COL] y = df[TARGET_COL] return train_test_split(X, y, test_size=test_size, random_state=random_state, stratify=y) def main(): df = load_raw() df = preprocess(df) df.to_csv(PROCESSED_DATA, index=False) if __name__ == "__main__": main()