Исходный код recs_searcher.dataset._base
"""
Обёртки датасетов для различных моделей.
"""
from typing import Iterable, List, Optional
from ..base import BaseTransformation
from sentence_transformers import InputExample
from torch.utils.data import Dataset
# TODO: обновить для use-case поиска схожих текстов.
[документация]
class SentenceTransformerDataset(Dataset):
"""Обёртка дадасета для эмбеддингов из Sentence-Transformers."""
def __init__(
self,
array: Iterable[str],
augmentation_transform: Optional[List[BaseTransformation]] = None,
):
self._array = array
self._augmentation_transform = augmentation_transform
def __len__(self):
return len(self._array)
def __getitem__(self, idx):
text = self._array[idx]
original_text = text
augmenation_text = text
if self._augmentation_transform:
for augmentation_func in self._augmentation_transform:
augmenation_text = augmentation_func.transform([augmenation_text])[0]
return InputExample(texts=[original_text, augmenation_text])