Перейти к содержанию

Python API

Модуль avar — основной интерфейс для интеграций (NLP, парсеры, корпуса, ML).

import avar
from avar import lookup, normalize, translate, get_dictionary
from avar.models import Entry, Sense, Example, SeeAlso
from avar.translate import format_entry

Основные функции

Имя Описание
normalize(text) Нормализация орфографии перед поиском
translate(word, pair="av-ru") Краткие русские глоссы или None
lookup(word, pair="av-ru") Список статей Entry (омонимы — несколько элементов)
get_dictionary(pair) Кэшированный экземпляр Dictionary
format_entry(entry) Текстовое представление статьи (как в CLI)

Модель Entry

Поле Тип Описание
word str Лемма (заголовок статьи)
forms tuple[str, ...] Индексируемые словоформы
stem str \| None Корень / основа
stress int \| None Номер слога с ударением (с 1)
labels tuple[str, ...] Метки статьи
gender_forms tuple[str, ...] Родовые варианты (местоимения)
senses tuple[Sense, ...] Значения
see_also tuple[SeeAlso, ...] Перекрёстные ссылки
extra dict Прочие поля JSON статьи

Sense

  • text, comment, labels
  • examplesExample(av, ru, comment, labels)
  • extra — например masdarfrom, genitivefrom, pluralfor

SeeAlso

  • target — целевая лемма
  • kind — тип связи (see, from, …)
  • link_helper — вспомогательная подсказка в словаре

Минимальный пример

from avar import lookup, normalize, translate

word = normalize("бет1ер")
print(translate(word))           # краткий перевод
for entry in lookup(word):
    print(entry.word, entry.forms, entry.stress)
    print(entry.sense_texts())

Подробные примеры

Примеры API → — реальные слова: аб, бетӏер, рахӏат, абали, абгил, абгал, а (омонимы), формы, ударение, see_also, JSON через CLI.

Dictionary

d = get_dictionary("av-ru")
d.entry_count      # число статей
d.key_count        # число ключей индекса (леммы + формы)
d.lookup("ботӏроца")  # то же, что avar.lookup
for entry in d:    # полный обход
    ...