2019-08-22 09:43:07 +00:00
|
|
|
|
# encoding: utf8
|
|
|
|
|
from __future__ import unicode_literals
|
|
|
|
|
|
|
|
|
|
from ...symbols import ORTH, LEMMA, NORM
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
_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: "децембар"},
|
2019-08-22 09:43:07 +00:00
|
|
|
|
]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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]}
|
|
|
|
|
]
|
2019-08-22 09:43:07 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# 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: "хектолитар"},
|
2019-08-22 09:43:07 +00:00
|
|
|
|
# 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: "гимназија"},
|
2019-08-22 09:43:07 +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: "страна"},
|
|
|
|
|
# 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: "држите"},
|
2019-08-22 09:43:07 +00:00
|
|
|
|
]
|
|
|
|
|
|
|
|
|
|
for slang_desc in _slang_exc:
|
|
|
|
|
_exc[slang_desc[ORTH]] = [slang_desc]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
TOKENIZER_EXCEPTIONS = _exc
|