spaCy/spacy/lang/bg/lex_attrs.py

88 lines
2.0 KiB
Python
Raw Normal View History

from ...attrs import LIKE_NUM
_num_words = [
"нула",
"едно",
"един",
"една",
"две",
"три",
"четири",
"пет",
"шест",
"седем",
"осем",
"девет",
"десет",
"единадесет",
"единайсет",
"дванадесет",
"дванайсет",
"тринадесет",
"тринайсет",
"четиринадесет",
2021-06-28 09:48:00 +00:00
"четиринайсет",
"петнадесет",
2021-06-28 09:48:00 +00:00
"петнайсет",
"шестнадесет",
"шестнайсет",
"седемнадесет",
2021-06-28 09:48:00 +00:00
"седемнайсет",
"осемнадесет",
"осемнайсет",
"деветнадесет",
"деветнайсет",
"двадесет",
"двайсет",
"тридесет",
2021-06-28 09:48:00 +00:00
"трийсет",
"четиридесет",
"четиресет",
"петдесет",
"шестдесет",
"шейсет",
"седемдесет",
"осемдесет",
"деветдесет",
"сто",
"двеста",
"триста",
"четиристотин",
"петстотин",
"шестстотин",
"седемстотин",
"осемстотин",
"деветстотин",
"хиляда",
"милион",
"милиона",
"милиард",
"милиарда",
"трилион",
"трилионa",
"билион",
"билионa",
"квадрилион",
"квадрилионa",
"квинтилион",
"квинтилионa",
]
def like_num(text):
if text.startswith(("+", "-", "±", "~")):
text = text[1:]
text = text.replace(",", "").replace(".", "")
if text.isdigit():
return True
if text.count("/") == 1:
num, denom = text.split("/")
if num.isdigit() and denom.isdigit():
return True
if text.lower() in _num_words:
return True
return False
LEX_ATTRS = {LIKE_NUM: like_num}