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)