Pos tagger tools to use with pas taggers models
Project description
🕉️ Sanskrit Tagger
Вспомогательная библиотека для сегментации и морфологического теггинга предложений на санскрите с использованием предобученных моделей.
Работает на основе моделей из проекта sanskrit_nlp_models
Основные возможности:
-
Сегментация текста: Снятие сандхи, разделение текста на слова и основы в сложных словах.
-
Морфологический анализ: Определение части речи (POS), падежа, рода, числа и глагольных форм.
-
Factory-интерфейс: Удобное создание моделей одной функцией.
-
Поддержка IAST, HK, Devanagari: Работает с латинской транслитерацией санскрита.
-
Дополнительно: Поддержка Beam Search для генерации нескольких альтернативных вариантов сегментации.
📊 Препроцессинг
Пайплайн предобработки включает:
- Фильтрацию непечатных Unicode-символов (ZWNJ
\u200c, ZWJ\u200d, невидимые пробелы) без повреждения структуры строк для корректного разбиения. - Нормализацию знаков препинания (замена ведийских данд
।,॥и западной пунктуации на пробелы). - Перевод в систему SLP1, так как модели обучены на данный в SLP1. Ответ выводится в системе IAST.
🚀 Быстрый старт (Quick Start)
pip install sanskrit_tagger
📥 Загрузка моделей
Модели обучались на корпусе санскритских текстов и доступны напрямую через torch.hub. Вы можете выбрать одну из архитектур:
import torch
device = 'cuda' if torch.cuda.is_available() else 'cpu'
# загрузка модели классификации
model = torch.hub.load('koleslena/sanskrit_nlp_models', 'pos_tagger_model', device=device, force_reload=True)
# загрузка модели сегментации
model_segmenter = torch.hub.load('koleslena/sanskrit_nlp_models', 'segmenter_model', device=device, force_reload=True)
from sanskrit_tagger.tagger_factory import get_pos_tagger, get_segmenter
# Создание сегментатора
segmenter = get_segmenter(model_segmenter, device=device)
test_splitter_sentences = ["agnihotrātsamutthāya harṣeṇa mahatānvitā",
"uvāca cainaṁ varadā vacanaṁ pārthivaṁ tadā"]
# Получение разделения
segmented = segmenter(test_splitter_sentences)
for sent, predicted in zip(test_splitter_sentences, segmented):
print(f"Input: {sent}")
print(f"Output: {predicted}")
# Создание теггера
pos_tagger = get_pos_tagger(model, device=device)
# Текст должен быть разбит на слова
sentence = " ".join(segmented)
# Получение результата
for sent_tokens, sent_tags in zip(sentence.split(), pos_tagger(sentence)):
print(' '.join('{}-{}'.format(tok, tag) for tok, tag in zip(sent_tokens, sent_tags)))
📊 Пример вывода (Output Example)
Библиотека возвращает детальные теги для каждого токена:
atha-ADV kanyā-NOUN Gen Fem Sing pradāne-NOUN Loc Neut Sing...
🛠 Технические подробности
Библиотека инкапсулирует логику предобработки и пост-обработки векторов предсказаний моделей, позволяя сосредоточиться на лингвистическом анализе, а не на тензорах.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file sanskrit_tagger-0.3.13.tar.gz.
File metadata
- Download URL: sanskrit_tagger-0.3.13.tar.gz
- Upload date:
- Size: 27.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
922bd3aa8e2c697c1abcc8ce0e264605e89f96d158413e58381f6ab4836be0cf
|
|
| MD5 |
94230bc07c9553d6e41d82ec79605f40
|
|
| BLAKE2b-256 |
cace66d1b4768d739d73a17f795d5c86ac70cfada7edbf80ad516122b28bb610
|
File details
Details for the file sanskrit_tagger-0.3.13-py3-none-any.whl.
File metadata
- Download URL: sanskrit_tagger-0.3.13-py3-none-any.whl
- Upload date:
- Size: 23.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
090e0681ed8a38b0072b1d8f1d8edc20824ef4d4dd1e7fa96b2c0c298bfa3dee
|
|
| MD5 |
282080c25bbe99a113b8676ded464936
|
|
| BLAKE2b-256 |
39d1b999a6ca0668b12f57cf01e1d07ba88bae2869089b9e7d99a3f75789bb7e
|