from ..tokenizer_exceptions import BASE_EXCEPTIONS from ...symbols import ORTH, NORM from ...util import update_exc _exc = {} _abbrev_exc = [ # Weekdays abbreviations {ORTH: "пoн", NORM: "понедељак"}, {ORTH: "уто", NORM: "уторак"}, {ORTH: "сре", NORM: "среда"}, {ORTH: "чет", NORM: "четвртак"}, {ORTH: "пет", NORM: "петак"}, {ORTH: "суб", NORM: "субота"}, {ORTH: "нед", NORM: "недеља"}, # Months abbreviations {ORTH: "јан", NORM: "јануар"}, {ORTH: "феб", NORM: "фебруар"}, {ORTH: "мар", NORM: "март"}, {ORTH: "апр", NORM: "април"}, {ORTH: "јуни", NORM: "јун"}, {ORTH: "јули", NORM: "јул"}, {ORTH: "авг", NORM: "август"}, {ORTH: "сеп", NORM: "септембар"}, {ORTH: "септ", NORM: "септембар"}, {ORTH: "окт", NORM: "октобар"}, {ORTH: "нов", NORM: "новембар"}, {ORTH: "дец", NORM: "децембар"}, ] for abbrev_desc in _abbrev_exc: abbrev = abbrev_desc[ORTH] for orth in (abbrev, abbrev.capitalize(), abbrev.upper()): _exc[orth] = [{ORTH: orth, NORM: abbrev_desc[NORM]}] _exc[orth + "."] = [{ORTH: orth + ".", NORM: abbrev_desc[NORM]}] # common abbreviations _slang_exc = [ # without dot {ORTH: "др", NORM: "доктор"}, {ORTH: "гдин", NORM: "господин"}, {ORTH: "гђа", NORM: "госпођа"}, {ORTH: "гђица", NORM: "госпођица"}, {ORTH: "мр", NORM: "магистар"}, {ORTH: "Бгд", NORM: "београд"}, {ORTH: "цм", NORM: "центиметар"}, {ORTH: "м", NORM: "метар"}, {ORTH: "км", NORM: "километар"}, {ORTH: "мг", NORM: "милиграм"}, {ORTH: "кг", NORM: "килограм"}, {ORTH: "дл", NORM: "децилитар"}, {ORTH: "хл", NORM: "хектолитар"}, # with dot {ORTH: "ул.", NORM: "улица"}, {ORTH: "бр.", NORM: "број"}, {ORTH: "нпр.", NORM: "на пример"}, {ORTH: "тзв.", NORM: "такозван"}, {ORTH: "проф.", NORM: "професор"}, {ORTH: "стр.", NORM: "страна"}, {ORTH: "једн.", NORM: "једнина"}, {ORTH: "мн.", NORM: "множина"}, {ORTH: "уч.", NORM: "ученик"}, {ORTH: "разр.", NORM: "разред"}, {ORTH: "инж.", NORM: "инжењер"}, {ORTH: "гимн.", NORM: "гимназија"}, {ORTH: "год.", NORM: "година"}, {ORTH: "мед.", NORM: "медицина"}, {ORTH: "гимн.", NORM: "гимназија"}, {ORTH: "акад.", NORM: "академик"}, {ORTH: "доц.", NORM: "доцент"}, {ORTH: "итд.", NORM: "и тако даље"}, {ORTH: "и сл.", NORM: "и слично"}, {ORTH: "н.е.", NORM: "нове ере"}, {ORTH: "о.г.", NORM: "ове године"}, {ORTH: "л.к.", NORM: "лична карта"}, {ORTH: "в.д.", NORM: "вршилац дужности"}, {ORTH: "стр.", NORM: "страна"}, # with qoute {ORTH: "ал'", NORM: "али"}, {ORTH: "ил'", NORM: "или"}, {ORTH: "је л'", NORM: "је ли"}, {ORTH: "да л'", NORM: "да ли"}, {ORTH: "држ'те", NORM: "држите"}, ] for slang_desc in _slang_exc: _exc[slang_desc[ORTH]] = [slang_desc] TOKENIZER_EXCEPTIONS = update_exc(BASE_EXCEPTIONS, _exc)