mirror of
https://github.com/explosion/spaCy.git
synced 2024-11-16 06:37:04 +03:00
63 lines
1010 B
Python
63 lines
1010 B
Python
# coding: utf8
|
|
from __future__ import unicode_literals
|
|
|
|
from ...attrs import LIKE_NUM
|
|
|
|
|
|
_num_words = [
|
|
"noll",
|
|
"en",
|
|
"ett",
|
|
"två",
|
|
"tre",
|
|
"fyra",
|
|
"fem",
|
|
"sex",
|
|
"sju",
|
|
"åtta",
|
|
"nio",
|
|
"tio",
|
|
"elva",
|
|
"tolv",
|
|
"tretton",
|
|
"fjorton",
|
|
"femton",
|
|
"sexton",
|
|
"sjutton",
|
|
"arton",
|
|
"nitton",
|
|
"tjugo",
|
|
"trettio",
|
|
"fyrtio",
|
|
"femtio",
|
|
"sextio",
|
|
"sjuttio",
|
|
"åttio",
|
|
"nittio",
|
|
"hundra",
|
|
"tusen",
|
|
"miljon",
|
|
"miljard",
|
|
"biljon",
|
|
"biljard",
|
|
"kvadriljon",
|
|
]
|
|
|
|
|
|
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}
|