File size: 2,266 Bytes
8e2e207 1ee6898 8e2e207 974c371 8e2e207 974c371 8e2e207 974c371 8e2e207 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
---
language:
- ru
tags:
- ner
- named-entity-recognition
- russian
- sports
- fitness
- work out
license: mit
---
# sculptor_NER: Модель для извлечения спортивных сущностей
Модель для распознавания именованных сущностей (NER) в спортивных текстах на русском языке. Разработана для проекта **Sculptor Sport**.
## Типы сущностей
- `EXERCISE` - название упражнения (например: "приседания", "жим штанги лежа")
- `QUANTITY` - количественные характеристики:
- вес (кг)
- количество подходов/повторений
- время выполнения (секунды, минуты)
- дистанция (метры, км)
- угол наклона (градусы)
## Использование
```python
from transformers import pipeline
ner_pipeline = pipeline(
"ner",
model="ZPM07/sculptor_NER",
aggregation_strategy="first",
device=0
)
text = "3 подхода по 10 приседаний с весом 50 кг"
entities = ner_pipeline(text)
def clean_results(entities):
cleaned = []
for entity in entities:
word = entity['word'].replace('Ġ', ' ').strip()
if word:
cleaned.append({
'word': word,
'entity': entity['entity_group'],
'score': round(entity['score'], 4),
'start': entity['start'],
'end': entity['end']
})
return cleaned
cleaned_entities = clean_results(entities)
print("Найденные сущности:")
for entity in cleaned_entities:
print(f"- {entity['word']} -> {entity['entity']} (доверие: {entity['score']:.2f}, позиция: {entity['start']}-{entity['end']})")
```
## Пример вывода
Найденные сущности:
- 3 подхода -> QUANTITY (доверие: 1.00, позиция: 0-9)
- 10 -> QUANTITY (доверие: 1.00, позиция: 13-15)
- приседаний -> EXERCISE (доверие: 0.99, позиция: 16-26)
- 50 кг -> QUANTITY (доверие: 1.00, позиция: 35-40) |