mirror of https://github.com/explosion/spaCy.git
62 lines
1.0 KiB
Python
62 lines
1.0 KiB
Python
from ...attrs import LIKE_NUM
|
|
|
|
_num_words = [
|
|
"nula",
|
|
"jedna",
|
|
"dva",
|
|
"tři",
|
|
"čtyři",
|
|
"pět",
|
|
"šest",
|
|
"sedm",
|
|
"osm",
|
|
"devět",
|
|
"deset",
|
|
"jedenáct",
|
|
"dvanáct",
|
|
"třináct",
|
|
"čtrnáct",
|
|
"patnáct",
|
|
"šestnáct",
|
|
"sedmnáct",
|
|
"osmnáct",
|
|
"devatenáct",
|
|
"dvacet",
|
|
"třicet",
|
|
"čtyřicet",
|
|
"padesát",
|
|
"šedesát",
|
|
"sedmdesát",
|
|
"osmdesát",
|
|
"devadesát",
|
|
"sto",
|
|
"tisíc",
|
|
"milion",
|
|
"miliarda",
|
|
"bilion",
|
|
"biliarda",
|
|
"trilion",
|
|
"triliarda",
|
|
"kvadrilion",
|
|
"kvadriliarda",
|
|
"kvintilion",
|
|
]
|
|
|
|
|
|
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}
|