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,labelsexamples→Example(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: # полный обход
...