angryelizar/sentiment_dataset_splitted
Dataset Card for Russian Sentiment Analysis Dataset (splitted) A train/eval split of the k1tub/sentiment_dataset Russian sentiment analysis dataset, prepared for fine-tuning Russian-language BERT/RoBERTa-style encoder models on 3-class sentiment classification. Dataset Description This dataset is derived from k1tub/sentiment_dataset, a collection of ~290K Russian-language user reviews labeled for sentiment, merged from 11 different source datasets. The original… See the full description on the dataset page: https://huggingface.co/datasets/angryelizar/sentiment_dataset_splitted.
Dataset Card for Russian Sentiment Analysis Dataset (splitted)
A train/eval split of the k1tub/sentiment_dataset Russian sentiment analysis dataset, prepared for fine-tuning Russian-language BERT/RoBERTa-style encoder models on 3-class sentiment classification.
Dataset Description
This dataset is derived from `k1tub/sentiment_dataset`, a collection of ~290K Russian-language user reviews labeled for sentiment, merged from 11 different source datasets. The original dataset combines reviews from multiple domains, with the largest contributing sources being:
ai-forever/ru-reviews-classification— ~30%d0rj/geo-reviews-dataset-2023(Yandex geo-tagged reviews) — ~21%Lapki/Perekrestok-reviews(Perekrestok retail chain reviews) — ~18%- Russian Anime Reviews Dataset (Kaggle) — ~13.4%
- Kinopoisk Movies Reviews (Kaggle) — ~6.5%
- Remaining sources — small individual shares
Labels: 3-class sentiment — 0 = neutral, 1 = positive, 2 = negative.
This version of the dataset:
- Analyzed token-length distribution (using the
ai-forever/ruBert-basetokenizer) across the full dataset and per class, to inform tokenizermax_lengthchoices for downstream fine-tuning (p99 ≈ 323 tokens). - Manually reviewed short texts (low token-count tail) and found them largely informative for sentiment (e.g. short but clear reviews like "Очень хороший", "Рыба прекрасная, но дорого") — no aggressive minimum-length filtering was applied.
- Cast the
labelcolumn to a Hugging FaceClassLabelfeature (neutral/positive/negative). - Split into
train(80%) andtest(20%) subsets, stratified bylabelto preserve the original class balance in both splits.
- Language(s) (NLP): Russian (ru)
Dataset Sources
- Original dataset: k1tub/sentiment_dataset
Uses
Direct Use
Intended for fine-tuning Russian-language transformer encoder models for 3-class sentiment classification of user reviews. This split was specifically prepared to fine-tune:
The dataset is provided as raw text (not pre-tokenized), so it can be tokenized independently for either model (or others) with an appropriate max_length/truncation setting.
Dataset Structure
text(string): the review text.label(ClassLabel): sentiment label —0 = neutral,1 = positive,2 = negative.src(string): identifier of the original source dataset the review came from (retained from the source dataset, not used as a model input).
Splits:
train: 80% of the cleaned dataset.test: 20% of the cleaned dataset.- Split performed via Hugging Face
datasets.Dataset.train_test_split(test_size=0.2, stratify_by_column="label", seed=42), preserving the ~33/33/33% class balance across both splits.
Dataset Creation
Curation Rationale
Created to provide a ready-to-use, stratified train/eval split of k1tub/sentiment_dataset for fine-tuning Russian sentiment classification models, without needing to repeat dataset exploration and splitting steps.
Source Data
User-written reviews in Russian, aggregated from 11 source datasets covering retail, geo/local business, anime, and movie review domains (see breakdown above).
Data Collection and Processing
- Token length was analyzed using the
ai-forever/ruBert-basetokenizer (add_special_tokens=False) to characterize the distribution of review lengths (percentiles p1–p99) overall and per class. - Short texts (low end of the length distribution) were manually spot-checked; no minimum-length filtering was applied, as short texts were found to carry clear sentiment signal.
- No character-based length filtering was applied (token count, not character count, was used for analysis, since tokenization — not raw character length — determines model input size).
labelcolumn was cast to a Hugging FaceClassLabelfeature.- Dataset was split into
train/test(80/20) stratified bylabel. - The
srccolumn was intentionally retained (not dropped) for potential future per-domain analysis, though it is not used as a model input.
Who are the source data producers?
Original reviews were written by users of various Russian retail, review, and media platforms (see source breakdown above). Producers of the merged source dataset: see k1tub/sentiment_dataset.
Annotations
Sentiment labels were inherited as-is from the original k1tub/sentiment_dataset; no re-annotation was performed.
Bias, Risks, and Limitations
- The dataset is a mixture of several review domains with uneven representation (largest source ~30%, several sources under 1%); models trained on it may perform unevenly across domains not well represented in training data.
- Review length correlates somewhat with sentiment class (negative reviews tend to be longer on average, positive reviews shorter) — a potential source of spurious correlation between length and predicted sentiment.
- No manual re-verification of label correctness was performed beyond spot-checking short texts.
Recommendations
Users should be made aware of the domain composition and length/label correlation noted above, and should validate model performance per-domain (using the retained src field) if deploying on a specific target domain.
Citation
Please cite the original dataset — see k1tub/sentiment_dataset.
Glossary
- ClassLabel: a Hugging Face
datasetsfeature type representing a categorical label with named classes, used here for thelabelcolumn (neutral/positive/negative).
