2017-11-21 11:44:46 +03:00
|
|
|
|
from ...attrs import LIKE_NUM
|
|
|
|
|
|
|
|
|
|
|
2022-02-17 17:50:08 +03:00
|
|
|
|
_num_words = list(
|
|
|
|
|
set(
|
|
|
|
|
"""
|
|
|
|
|
ноль ноля нолю нолём ноле нулевой нулевого нулевому нулевым нулевом нулевая нулевую нулевое нулевые нулевых нулевыми
|
|
|
|
|
|
|
|
|
|
один первого первому единица одного одному первой первом первый первым одним одном во-первых
|
|
|
|
|
|
|
|
|
|
два второго второму второй втором вторым двойка двумя двум двух во-вторых двое две двоих оба обе обеим обеими
|
|
|
|
|
обеих обоим обоими обоих
|
|
|
|
|
|
|
|
|
|
полтора полторы полутора
|
|
|
|
|
|
|
|
|
|
три третьего третьему третьем третьим третий тройка трешка трёшка трояк трёха треха тремя трем трех трое троих трёх
|
|
|
|
|
|
|
|
|
|
четыре четвертого четвертому четвертом четвертый четвертым четверка четырьмя четырем четырех четверо четырёх четверым
|
|
|
|
|
четверых
|
|
|
|
|
|
|
|
|
|
пять пятерочка пятерка пятого пятому пятом пятый пятым пятью пяти пятеро пятерых пятерыми
|
|
|
|
|
|
|
|
|
|
шесть шестерка шестого шестому шестой шестом шестым шестью шести шестеро шестерых
|
|
|
|
|
|
|
|
|
|
семь семерка седьмого седьмому седьмой седьмом седьмым семью семи семеро
|
|
|
|
|
|
|
|
|
|
восемь восьмерка восьмого восьмому восемью восьмой восьмом восьмым восеми восьмером восьми восьмью
|
|
|
|
|
|
|
|
|
|
девять девятого девятому девятка девятом девятый девятым девятью девяти девятером вдевятером девятерых
|
|
|
|
|
|
|
|
|
|
десять десятого десятому десятка десятом десятый десятым десятью десяти десятером вдесятером
|
|
|
|
|
|
|
|
|
|
одиннадцать одиннадцатого одиннадцатому одиннадцатом одиннадцатый одиннадцатым одиннадцатью одиннадцати
|
|
|
|
|
|
|
|
|
|
двенадцать двенадцатого двенадцатому двенадцатом двенадцатый двенадцатым двенадцатью двенадцати
|
|
|
|
|
|
|
|
|
|
тринадцать тринадцатого тринадцатому тринадцатом тринадцатый тринадцатым тринадцатью тринадцати
|
|
|
|
|
|
|
|
|
|
четырнадцать четырнадцатого четырнадцатому четырнадцатом четырнадцатый четырнадцатым четырнадцатью четырнадцати
|
|
|
|
|
|
|
|
|
|
пятнадцать пятнадцатого пятнадцатому пятнадцатом пятнадцатый пятнадцатым пятнадцатью пятнадцати
|
|
|
|
|
|
|
|
|
|
шестнадцать шестнадцатого шестнадцатому шестнадцатом шестнадцатый шестнадцатым шестнадцатью шестнадцати
|
|
|
|
|
|
|
|
|
|
семнадцать семнадцатого семнадцатому семнадцатом семнадцатый семнадцатым семнадцатью семнадцати
|
|
|
|
|
|
|
|
|
|
восемнадцать восемнадцатого восемнадцатому восемнадцатом восемнадцатый восемнадцатым восемнадцатью восемнадцати
|
|
|
|
|
|
|
|
|
|
девятнадцать девятнадцатого девятнадцатому девятнадцатом девятнадцатый девятнадцатым девятнадцатью девятнадцати
|
|
|
|
|
|
|
|
|
|
двадцать двадцатого двадцатому двадцатом двадцатый двадцатым двадцатью двадцати
|
|
|
|
|
|
|
|
|
|
тридцать тридцатого тридцатому тридцатом тридцатый тридцатым тридцатью тридцати
|
|
|
|
|
|
|
|
|
|
тридевять
|
|
|
|
|
|
|
|
|
|
сорок сорокового сороковому сороковом сороковым сороковой
|
|
|
|
|
|
|
|
|
|
пятьдесят пятьдесятого пятьдесятому пятьюдесятью пятьдесятом пятьдесятый пятьдесятым пятидесяти полтинник
|
|
|
|
|
|
|
|
|
|
шестьдесят шестьдесятого шестьдесятому шестьюдесятью шестьдесятом шестьдесятый шестьдесятым шестидесятые шестидесяти
|
|
|
|
|
|
|
|
|
|
семьдесят семьдесятого семьдесятому семьюдесятью семьдесятом семьдесятый семьдесятым семидесяти
|
|
|
|
|
|
|
|
|
|
восемьдесят восемьдесятого восемьдесятому восемьюдесятью восемьдесятом восемьдесятый восемьдесятым восемидесяти
|
|
|
|
|
восьмидесяти
|
|
|
|
|
|
|
|
|
|
девяносто девяностого девяностому девяностом девяностый девяностым девяноста
|
|
|
|
|
|
|
|
|
|
сто сотого сотому сотка сотня сотом сотен сотый сотым ста
|
|
|
|
|
|
|
|
|
|
двести двумястами двухсотого двухсотому двухсотом двухсотый двухсотым двумстам двухстах двухсот
|
|
|
|
|
|
|
|
|
|
триста тремястами трехсотого трехсотому трехсотом трехсотый трехсотым тремстам трехстах трехсот
|
|
|
|
|
|
|
|
|
|
четыреста четырехсотого четырехсотому четырьмястами четырехсотом четырехсотый четырехсотым четыремстам четырехстах
|
|
|
|
|
четырехсот
|
|
|
|
|
|
|
|
|
|
пятьсот пятисотого пятисотому пятьюстами пятисотом пятисотый пятисотым пятистам пятистах пятисот
|
|
|
|
|
|
|
|
|
|
шестьсот шестисотого шестисотому шестьюстами шестисотом шестисотый шестисотым шестистам шестистах шестисот
|
|
|
|
|
|
|
|
|
|
семьсот семисотого семисотому семьюстами семисотом семисотый семисотым семистам семистах семисот
|
|
|
|
|
|
|
|
|
|
восемьсот восемисотого восемисотому восемисотом восемисотый восемисотым восьмистами восьмистам восьмистах восьмисот
|
|
|
|
|
|
|
|
|
|
девятьсот девятисотого девятисотому девятьюстами девятисотом девятисотый девятисотым девятистам девятистах девятисот
|
|
|
|
|
|
|
|
|
|
тысяча тысячного тысячному тысячном тысячный тысячным тысячам тысячах тысячей тысяч тысячи тыс
|
|
|
|
|
|
|
|
|
|
миллион миллионного миллионов миллионному миллионном миллионный миллионным миллионом миллиона миллионе миллиону
|
|
|
|
|
миллионов лям млн
|
|
|
|
|
|
|
|
|
|
миллиард миллиардного миллиардному миллиардном миллиардный миллиардным миллиардом миллиарда миллиарде миллиарду
|
|
|
|
|
миллиардов лярд млрд
|
|
|
|
|
|
|
|
|
|
триллион триллионного триллионному триллионном триллионный триллионным триллионом триллиона триллионе триллиону
|
|
|
|
|
триллионов трлн
|
|
|
|
|
|
|
|
|
|
квадриллион квадриллионного квадриллионному квадриллионный квадриллионным квадриллионом квадриллиона квадриллионе
|
|
|
|
|
квадриллиону квадриллионов квадрлн
|
|
|
|
|
|
|
|
|
|
квинтиллион квинтиллионного квинтиллионному квинтиллионный квинтиллионным квинтиллионом квинтиллиона квинтиллионе
|
|
|
|
|
квинтиллиону квинтиллионов квинтлн
|
|
|
|
|
|
|
|
|
|
i ii iii iv vi vii viii ix xi xii xiii xiv xv xvi xvii xviii xix xx xxi xxii xxiii xxiv xxv xxvi xxvii xxvii xxix
|
|
|
|
|
""".split()
|
|
|
|
|
)
|
|
|
|
|
)
|
2017-11-21 11:44:46 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def like_num(text):
|
💫 Tidy up and auto-format .py files (#2983)
<!--- Provide a general summary of your changes in the title. -->
## Description
- [x] Use [`black`](https://github.com/ambv/black) to auto-format all `.py` files.
- [x] Update flake8 config to exclude very large files (lemmatization tables etc.)
- [x] Update code to be compatible with flake8 rules
- [x] Fix various small bugs, inconsistencies and messy stuff in the language data
- [x] Update docs to explain new code style (`black`, `flake8`, when to use `# fmt: off` and `# fmt: on` and what `# noqa` means)
Once #2932 is merged, which auto-formats and tidies up the CLI, we'll be able to run `flake8 spacy` actually get meaningful results.
At the moment, the code style and linting isn't applied automatically, but I'm hoping that the new [GitHub Actions](https://github.com/features/actions) will let us auto-format pull requests and post comments with relevant linting information.
### Types of change
enhancement, code style
## Checklist
<!--- Before you submit the PR, go over this checklist and make sure you can
tick off all the boxes. [] -> [x] -->
- [x] I have submitted the spaCy Contributor Agreement.
- [x] I ran the tests, and all new and existing tests passed.
- [x] My changes don't require a change to the documentation, or if they do, I've added all required information.
2018-11-30 19:03:03 +03:00
|
|
|
|
if text.startswith(("+", "-", "±", "~")):
|
2018-10-01 11:49:14 +03:00
|
|
|
|
text = text[1:]
|
2022-02-17 17:50:08 +03:00
|
|
|
|
if text.endswith("%"):
|
|
|
|
|
text = text[:-1]
|
💫 Tidy up and auto-format .py files (#2983)
<!--- Provide a general summary of your changes in the title. -->
## Description
- [x] Use [`black`](https://github.com/ambv/black) to auto-format all `.py` files.
- [x] Update flake8 config to exclude very large files (lemmatization tables etc.)
- [x] Update code to be compatible with flake8 rules
- [x] Fix various small bugs, inconsistencies and messy stuff in the language data
- [x] Update docs to explain new code style (`black`, `flake8`, when to use `# fmt: off` and `# fmt: on` and what `# noqa` means)
Once #2932 is merged, which auto-formats and tidies up the CLI, we'll be able to run `flake8 spacy` actually get meaningful results.
At the moment, the code style and linting isn't applied automatically, but I'm hoping that the new [GitHub Actions](https://github.com/features/actions) will let us auto-format pull requests and post comments with relevant linting information.
### Types of change
enhancement, code style
## Checklist
<!--- Before you submit the PR, go over this checklist and make sure you can
tick off all the boxes. [] -> [x] -->
- [x] I have submitted the spaCy Contributor Agreement.
- [x] I ran the tests, and all new and existing tests passed.
- [x] My changes don't require a change to the documentation, or if they do, I've added all required information.
2018-11-30 19:03:03 +03:00
|
|
|
|
text = text.replace(",", "").replace(".", "")
|
2017-11-21 11:44:46 +03:00
|
|
|
|
if text.isdigit():
|
|
|
|
|
return True
|
💫 Tidy up and auto-format .py files (#2983)
<!--- Provide a general summary of your changes in the title. -->
## Description
- [x] Use [`black`](https://github.com/ambv/black) to auto-format all `.py` files.
- [x] Update flake8 config to exclude very large files (lemmatization tables etc.)
- [x] Update code to be compatible with flake8 rules
- [x] Fix various small bugs, inconsistencies and messy stuff in the language data
- [x] Update docs to explain new code style (`black`, `flake8`, when to use `# fmt: off` and `# fmt: on` and what `# noqa` means)
Once #2932 is merged, which auto-formats and tidies up the CLI, we'll be able to run `flake8 spacy` actually get meaningful results.
At the moment, the code style and linting isn't applied automatically, but I'm hoping that the new [GitHub Actions](https://github.com/features/actions) will let us auto-format pull requests and post comments with relevant linting information.
### Types of change
enhancement, code style
## Checklist
<!--- Before you submit the PR, go over this checklist and make sure you can
tick off all the boxes. [] -> [x] -->
- [x] I have submitted the spaCy Contributor Agreement.
- [x] I ran the tests, and all new and existing tests passed.
- [x] My changes don't require a change to the documentation, or if they do, I've added all required information.
2018-11-30 19:03:03 +03:00
|
|
|
|
if text.count("/") == 1:
|
|
|
|
|
num, denom = text.split("/")
|
2017-11-21 11:44:46 +03:00
|
|
|
|
if num.isdigit() and denom.isdigit():
|
|
|
|
|
return True
|
2018-01-08 05:25:08 +03:00
|
|
|
|
if text.lower() in _num_words:
|
2017-11-21 11:44:46 +03:00
|
|
|
|
return True
|
|
|
|
|
return False
|
|
|
|
|
|
|
|
|
|
|
💫 Tidy up and auto-format .py files (#2983)
<!--- Provide a general summary of your changes in the title. -->
## Description
- [x] Use [`black`](https://github.com/ambv/black) to auto-format all `.py` files.
- [x] Update flake8 config to exclude very large files (lemmatization tables etc.)
- [x] Update code to be compatible with flake8 rules
- [x] Fix various small bugs, inconsistencies and messy stuff in the language data
- [x] Update docs to explain new code style (`black`, `flake8`, when to use `# fmt: off` and `# fmt: on` and what `# noqa` means)
Once #2932 is merged, which auto-formats and tidies up the CLI, we'll be able to run `flake8 spacy` actually get meaningful results.
At the moment, the code style and linting isn't applied automatically, but I'm hoping that the new [GitHub Actions](https://github.com/features/actions) will let us auto-format pull requests and post comments with relevant linting information.
### Types of change
enhancement, code style
## Checklist
<!--- Before you submit the PR, go over this checklist and make sure you can
tick off all the boxes. [] -> [x] -->
- [x] I have submitted the spaCy Contributor Agreement.
- [x] I ran the tests, and all new and existing tests passed.
- [x] My changes don't require a change to the documentation, or if they do, I've added all required information.
2018-11-30 19:03:03 +03:00
|
|
|
|
LEX_ATTRS = {LIKE_NUM: like_num}
|