mirror of https://github.com/explosion/spaCy.git
89 lines
2.0 KiB
Python
89 lines
2.0 KiB
Python
|
from ...attrs import LIKE_NUM
|
|||
|
|
|||
|
|
|||
|
_num_words = [
|
|||
|
"нула",
|
|||
|
"едно",
|
|||
|
"един",
|
|||
|
"една",
|
|||
|
"две",
|
|||
|
"три",
|
|||
|
"четири",
|
|||
|
"пет",
|
|||
|
"шест",
|
|||
|
"седем",
|
|||
|
"осем",
|
|||
|
"девет",
|
|||
|
"десет",
|
|||
|
"единадесет",
|
|||
|
"единайсет",
|
|||
|
"дванадесет",
|
|||
|
"дванайсет",
|
|||
|
"тринадесет",
|
|||
|
"тринайсет",
|
|||
|
"четиринадесет",
|
|||
|
"четиринайсет"
|
|||
|
"петнадесет",
|
|||
|
"петнайсет"
|
|||
|
"шестнадесет",
|
|||
|
"шестнайсет",
|
|||
|
"седемнадесет",
|
|||
|
"седемнайсет"
|
|||
|
"осемнадесет",
|
|||
|
"осемнайсет",
|
|||
|
"деветнадесет",
|
|||
|
"деветнайсет",
|
|||
|
"двадесет",
|
|||
|
"двайсет",
|
|||
|
"тридесет",
|
|||
|
"трийсет"
|
|||
|
"четиридесет",
|
|||
|
"четиресет",
|
|||
|
"петдесет",
|
|||
|
"шестдесет",
|
|||
|
"шейсет",
|
|||
|
"седемдесет",
|
|||
|
"осемдесет",
|
|||
|
"деветдесет",
|
|||
|
"сто",
|
|||
|
"двеста",
|
|||
|
"триста",
|
|||
|
"четиристотин",
|
|||
|
"петстотин",
|
|||
|
"шестстотин",
|
|||
|
"седемстотин",
|
|||
|
"осемстотин",
|
|||
|
"деветстотин",
|
|||
|
"хиляда",
|
|||
|
"милион",
|
|||
|
"милиона",
|
|||
|
"милиард",
|
|||
|
"милиарда",
|
|||
|
"трилион",
|
|||
|
"трилион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}
|