spaCy/spacy/lang/sr/tokenizer_exceptions.py

96 lines
5.0 KiB
Python
Raw Normal View History

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