tg-me.com/dsproglib/6605
Last Update:
🎯 SemHash — очистка датасетов с помощью семантического поиска
SemHash — это лёгкий и быстрый инструмент для:
— дедупликации (поиск и удаление дубликатов)
— фильтрации выбросов
— выбора репрезентативных примеров
Работает на базе:
Что умеет SemHash:
Быстрый старт:
pip install semhash
from datasets import load_dataset
from semhash import SemHash
texts = load_dataset("ag_news", split="train")["text"]
semhash = SemHash.from_records(records=texts)
deduplicated = semhash.self_deduplicate().selected
filtered = semhash.self_filter_outliers().selected
representative = semhash.self_find_representative().selected
Также можно:
— Удалять дубликаты между двумя датасетами (train/test leakage)
— Работать с датасетами QA-формата (
columns=["question", "context"]
)— Использовать
DataFrame
и кастомные эмбеддингиПример: исключаем утечку между train и test
train = load_dataset("ag_news", split="train")["text"]
test = load_dataset("ag_news", split="test")["text"]
semhash = SemHash.from_records(records=train)
clean_test = semhash.deduplicate(records=test, threshold=0.9).selected
Почему это удобно:
— Быстро: работает на ANN-поиске
— Гибко: один или два датасета, текст или таблицы
— Пояснимо: можно посмотреть, почему запись считается дубликатом
— Масштабируемо: работает с миллионами записей
— Легковесно: минимум зависимостей
📌 Совет: для больших датасетов (>1M) оставляйте
use_ann=True
, это сильно ускоряет работу при высокой точности.Библиотека дата-сайентиста #буст