Downloads · 30 days
0
KKvision/PSTU_AI_sem-1_bert-language-classifier
PSTU_AI_sem-1_bert-language-classifier is a machine learning model from KKvision. Use it for the machine learning task on the model card, and read the license before you ship it in a product.
Лабораторная работа — задание 8. Реализован классификатор языка текста на основе BERT.
Downloads · 30 days
0
Access
Public
Updated Apr 24, 2026
Repo size
714 MB
Likes
0
Public
Click a slice to open those files.
.safetensors711 MB · 100%
From the Hugging Face model README
Лабораторная работа — задание 8. Реализован классификатор языка текста на основе BERT.
bert-base-multilingual-cased — предобученная модель от Google, знает 104 языка. Поверх неё добавлен классификационный слой и выполнен файнтюнинг на датасете языковой идентификации.
papluca/language-identification с HuggingFace Hub. 90 000 текстовых фрагментов на 20 языках:
Arabic, Bulgarian, German, Greek, English, Spanish, French, Hindi, Italian, Japanese, Dutch, Polish, Portuguese, Russian, Swahili, Thai, Turkish, Urdu, Vietnamese, Chinese.
Разбивка: 70 000 train / 10 000 validation / 10 000 test.
3 эпохи, AdamW, lr=2e-5, batch_size=16, RTX 3060 Ti.
| Эпоха | Train Loss | Train Acc | Val Acc |
|---|---|---|---|
| 1 | 0.2351 | 95.53% | 99.25% |
| 2 | 0.0106 | 99.80% | 99.29% |
| 3 | 0.0049 | 99.90% | 99.36% |
Точность на тестовом множестве: 99.36%.
Установка зависимостей:
pip install -r requirements.txt
Обучение (опционально, веса уже сохранены в saved_model/):
python train.py
Инференс — положить .txt файлы в папку text/ и запустить:
python infer.py
Вывод показывает распределение языков по предложениям файла, например:
document.txt (12 sentences): en: 75%, ru: 25%
Для ввода текста вручную раскомментировать run_from_input в infer.py.
Смешанные тексты (code-switching). Если в тексте перемешано несколько языков, модель классифицирует каждое предложение отдельно и выводит статистику. При подаче всего текста целиком побеждает язык с большим количеством токенов. Например, русский конспект с английскими терминами будет определён как английский, если цитат из источника больше чем авторского текста.
Отсутствие класса "неизвестно". Модель всегда возвращает один из 20 языков — даже для бессмысленного набора символов. На практике такие входные данные часто классифицируются как суахили или другой язык с небольшой долей в датасете, поскольку у модели нет возможности отказаться от ответа.
Границы применимости. Модель хорошо работает на связных текстах достаточной длины. На коротких фрагментах (одно-два слова) точность ниже, поскольку меньше контекста для уверенной классификации.