Add enhanced model card
Browse files
README.md
ADDED
@@ -0,0 +1,94 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
---
|
2 |
+
language: uk
|
3 |
+
tags:
|
4 |
+
- text-classification
|
5 |
+
- ukrainian
|
6 |
+
- slang-detection
|
7 |
+
- random-forest
|
8 |
+
- sklearn
|
9 |
+
- enhanced-features
|
10 |
+
license: mit
|
11 |
+
library_name: sklearn
|
12 |
+
---
|
13 |
+
|
14 |
+
# Ukrainian Slang Detection Enhanced Model
|
15 |
+
|
16 |
+
Покращена модель для визначення сленгових слів в українському тексті з розширеним набором лінгвістичних ознак.
|
17 |
+
|
18 |
+
## Модель
|
19 |
+
|
20 |
+
- **Тип**: Random Forest Classifier (sklearn)
|
21 |
+
- **F1-Score**: 0.846
|
22 |
+
- **Кількість фічей**: 5,395
|
23 |
+
- **Навчальних прикладів**: 10,000 (5,000 сленг + 5,000 нейтральні)
|
24 |
+
- **Мова**: Українська
|
25 |
+
|
26 |
+
## Фічі моделі
|
27 |
+
|
28 |
+
### 1. TF-IDF символьні n-грами (2-5)
|
29 |
+
- Аналізує послідовності символів для виявлення сленгових патернів
|
30 |
+
|
31 |
+
### 2. TF-IDF словесні n-грами
|
32 |
+
- Аналізує цілі слова та їх комбінації
|
33 |
+
|
34 |
+
### 3. Лінгвістичні ознаки (14 фічей)
|
35 |
+
- Довжина слова
|
36 |
+
- Повторювані символи
|
37 |
+
- Співвідношення голосних/приголосних
|
38 |
+
- Наявність цифр та спеціальних символів
|
39 |
+
- Сленгові патерни ('жж', 'кк', 'топ', 'лол', тощо)
|
40 |
+
- Морфологічні характеристики
|
41 |
+
|
42 |
+
## Файли моделі
|
43 |
+
|
44 |
+
- `enhanced_slang_model.pkl` - повна навчена модель з pipeline
|
45 |
+
- `model_metadata.json` - метадані про модель
|
46 |
+
|
47 |
+
## Використання
|
48 |
+
|
49 |
+
```python
|
50 |
+
import joblib
|
51 |
+
from huggingface_hub import hf_hub_download
|
52 |
+
|
53 |
+
# Завантажити модель
|
54 |
+
model_path = hf_hub_download(
|
55 |
+
repo_id="RomanSavitskyi/ukrainian-slang-detection-enhanced",
|
56 |
+
filename="enhanced_slang_model.pkl"
|
57 |
+
)
|
58 |
+
|
59 |
+
model = joblib.load(model_path)
|
60 |
+
|
61 |
+
# Класифікація
|
62 |
+
def predict_slang_enhanced(word):
|
63 |
+
pred = model.predict([word])[0]
|
64 |
+
prob = model.predict_proba([word])[0]
|
65 |
+
slang_prob = prob[1]
|
66 |
+
label = "SLANG" if pred == 1 else "NEUTRAL"
|
67 |
+
return {"label": label, "score": float(slang_prob)}
|
68 |
+
|
69 |
+
# Приклад використання
|
70 |
+
result = predict_slang_enhanced("кльово")
|
71 |
+
print(result) # {"label": "SLANG", "score": 0.84}
|
72 |
+
```
|
73 |
+
|
74 |
+
## Покращення порівняно з базовою моделлю
|
75 |
+
|
76 |
+
- **F1-Score**: 0.846 vs 0.78 (базова)
|
77 |
+
- **Фічі**: 5,395 vs 3,000 (базова)
|
78 |
+
- **Кращий розпіз повторюваних символів**: "кльововоо", "хахаха"
|
79 |
+
- **Розуміння морфології**: українські відмінки та форми
|
80 |
+
- **Стійкість до шуму**: менше false positives
|
81 |
+
|
82 |
+
## Тестові результати
|
83 |
+
|
84 |
+
```
|
85 |
+
кльово -> СЛЕНГ (0.840)
|
86 |
+
супер -> НЕЙТРАЛЬНЕ (0.460)
|
87 |
+
топчик -> СЛЕНГ (0.690)
|
88 |
+
книга -> НЕЙТРАЛЬНЕ (0.190)
|
89 |
+
хахаха -> СЛЕНГ (0.870)
|
90 |
+
```
|
91 |
+
|
92 |
+
## Ліцензія
|
93 |
+
|
94 |
+
MIT License
|