Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sanskrit_tagger-0.3.13.tar.gz (27.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sanskrit_tagger-0.3.13-py3-none-any.whl (23.4 kB view details)

Uploaded Python 3

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

Hashes for sanskrit_tagger-0.3.13.tar.gz
Algorithm Hash digest
SHA256 922bd3aa8e2c697c1abcc8ce0e264605e89f96d158413e58381f6ab4836be0cf
MD5 94230bc07c9553d6e41d82ec79605f40
BLAKE2b-256 cace66d1b4768d739d73a17f795d5c86ac70cfada7edbf80ad516122b28bb610

See more details on using hashes here.

File details

Details for the file sanskrit_tagger-0.3.13-py3-none-any.whl.

File metadata

File hashes

Hashes for sanskrit_tagger-0.3.13-py3-none-any.whl
Algorithm Hash digest
SHA256 090e0681ed8a38b0072b1d8f1d8edc20824ef4d4dd1e7fa96b2c0c298bfa3dee
MD5 282080c25bbe99a113b8676ded464936
BLAKE2b-256 39d1b999a6ca0668b12f57cf01e1d07ba88bae2869089b9e7d99a3f75789bb7e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page