mirror of
https://github.com/explosion/spaCy.git
synced 2024-12-25 17:36:30 +03:00
db55577c45
* Remove unicode declarations * Remove Python 3.5 and 2.7 from CI * Don't require pathlib * Replace compat helpers * Remove OrderedDict * Use f-strings * Set Cython compiler language level * Fix typo * Re-add OrderedDict for Table * Update setup.cfg * Revert CONTRIBUTING.md * Revert lookups.md * Revert top-level.md * Small adjustments and docs [ci skip]
100 lines
2.3 KiB
Python
100 lines
2.3 KiB
Python
from ...attrs import LIKE_NUM
|
|
|
|
_num_words = [
|
|
"μηδέν",
|
|
"ένας",
|
|
"δυο",
|
|
"δυό",
|
|
"τρεις",
|
|
"τέσσερις",
|
|
"πέντε",
|
|
"έξι",
|
|
"εφτά",
|
|
"επτά",
|
|
"οκτώ",
|
|
"οχτώ",
|
|
"εννιά",
|
|
"εννέα",
|
|
"δέκα",
|
|
"έντεκα",
|
|
"ένδεκα",
|
|
"δώδεκα",
|
|
"δεκατρείς",
|
|
"δεκατέσσερις",
|
|
"δεκαπέντε",
|
|
"δεκαέξι",
|
|
"δεκαεπτά",
|
|
"δεκαοχτώ",
|
|
"δεκαεννέα",
|
|
"δεκαεννεα",
|
|
"είκοσι",
|
|
"τριάντα",
|
|
"σαράντα",
|
|
"πενήντα",
|
|
"εξήντα",
|
|
"εβδομήντα",
|
|
"ογδόντα",
|
|
"ενενήντα",
|
|
"εκατό",
|
|
"διακόσιοι",
|
|
"διακόσοι",
|
|
"τριακόσιοι",
|
|
"τριακόσοι",
|
|
"τετρακόσιοι",
|
|
"τετρακόσοι",
|
|
"πεντακόσιοι",
|
|
"πεντακόσοι",
|
|
"εξακόσιοι",
|
|
"εξακόσοι",
|
|
"εφτακόσιοι",
|
|
"εφτακόσοι",
|
|
"επτακόσιοι",
|
|
"επτακόσοι",
|
|
"οχτακόσιοι",
|
|
"οχτακόσοι",
|
|
"οκτακόσιοι",
|
|
"οκτακόσοι",
|
|
"εννιακόσιοι",
|
|
"χίλιοι",
|
|
"χιλιάδα",
|
|
"εκατομμύριο",
|
|
"δισεκατομμύριο",
|
|
"τρισεκατομμύριο",
|
|
"τετράκις",
|
|
"πεντάκις",
|
|
"εξάκις",
|
|
"επτάκις",
|
|
"οκτάκις",
|
|
"εννεάκις",
|
|
"ένα",
|
|
"δύο",
|
|
"τρία",
|
|
"τέσσερα",
|
|
"δις",
|
|
"χιλιάδες",
|
|
]
|
|
|
|
|
|
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.count("^") == 1:
|
|
num, denom = text.split("^")
|
|
if num.isdigit() and denom.isdigit():
|
|
return True
|
|
if text.lower() in _num_words or text.lower().split(" ")[0] in _num_words:
|
|
return True
|
|
if text in _num_words:
|
|
return True
|
|
return False
|
|
|
|
|
|
LEX_ATTRS = {LIKE_NUM: like_num}
|