2017-03-12 12:07:28 +00:00
|
|
|
|
# coding: utf8
|
2017-03-15 16:33:39 +00:00
|
|
|
|
from __future__ import unicode_literals
|
2015-07-07 12:00:07 +00:00
|
|
|
|
|
2017-05-08 13:47:25 +00:00
|
|
|
|
from .tokenizer_exceptions import TOKENIZER_EXCEPTIONS
|
|
|
|
|
from .tag_map import TAG_MAP
|
|
|
|
|
from .stop_words import STOP_WORDS
|
2017-05-08 23:09:52 +00:00
|
|
|
|
from .lex_attrs import LEX_ATTRS
|
2017-05-08 13:47:25 +00:00
|
|
|
|
from .morph_rules import MORPH_RULES
|
2017-05-17 09:37:48 +00:00
|
|
|
|
from .syntax_iterators import SYNTAX_ITERATORS
|
2017-05-08 13:47:25 +00:00
|
|
|
|
|
2017-05-08 20:29:04 +00:00
|
|
|
|
from ..tokenizer_exceptions import BASE_EXCEPTIONS
|
|
|
|
|
from ...language import Language
|
2020-05-19 13:59:14 +00:00
|
|
|
|
from ...attrs import LANG
|
|
|
|
|
from ...util import update_exc
|
2016-01-19 01:54:56 +00:00
|
|
|
|
|
💫 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 16:03:03 +00:00
|
|
|
|
|
2017-10-17 16:21:20 +00:00
|
|
|
|
def _return_en(_):
|
💫 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 16:03:03 +00:00
|
|
|
|
return "en"
|
|
|
|
|
|
2017-03-15 16:33:39 +00:00
|
|
|
|
|
2017-05-20 07:18:19 +00:00
|
|
|
|
class EnglishDefaults(Language.Defaults):
|
|
|
|
|
lex_attr_getters = dict(Language.Defaults.lex_attr_getters)
|
2017-06-03 19:47:55 +00:00
|
|
|
|
lex_attr_getters.update(LEX_ATTRS)
|
2017-10-17 16:21:20 +00:00
|
|
|
|
lex_attr_getters[LANG] = _return_en
|
2017-05-20 07:18:19 +00:00
|
|
|
|
tokenizer_exceptions = update_exc(BASE_EXCEPTIONS, TOKENIZER_EXCEPTIONS)
|
2017-10-11 13:34:55 +00:00
|
|
|
|
tag_map = TAG_MAP
|
|
|
|
|
stop_words = STOP_WORDS
|
|
|
|
|
morph_rules = MORPH_RULES
|
|
|
|
|
syntax_iterators = SYNTAX_ITERATORS
|
2019-09-11 12:00:36 +00:00
|
|
|
|
single_orth_variants = [
|
|
|
|
|
{"tags": ["NFP"], "variants": ["…", "..."]},
|
|
|
|
|
{"tags": [":"], "variants": ["-", "—", "–", "--", "---", "——"]},
|
|
|
|
|
]
|
|
|
|
|
paired_orth_variants = [
|
|
|
|
|
{"tags": ["``", "''"], "variants": [("'", "'"), ("‘", "’")]},
|
|
|
|
|
{"tags": ["``", "''"], "variants": [('"', '"'), ("“", "”")]},
|
|
|
|
|
]
|
2017-05-20 07:18:19 +00:00
|
|
|
|
|
2020-07-09 20:11:24 +00:00
|
|
|
|
@classmethod
|
|
|
|
|
def is_base_form(cls, univ_pos, morphology=None):
|
|
|
|
|
"""
|
|
|
|
|
Check whether we're dealing with an uninflected paradigm, so we can
|
|
|
|
|
avoid lemmatization entirely.
|
|
|
|
|
|
|
|
|
|
univ_pos (unicode / int): The token's universal part-of-speech tag.
|
|
|
|
|
morphology (dict): The token's morphological features following the
|
|
|
|
|
Universal Dependencies scheme.
|
|
|
|
|
"""
|
|
|
|
|
if morphology is None:
|
|
|
|
|
morphology = {}
|
|
|
|
|
if univ_pos == "noun" and morphology.get("Number") == "sing":
|
|
|
|
|
return True
|
|
|
|
|
elif univ_pos == "verb" and morphology.get("VerbForm") == "inf":
|
|
|
|
|
return True
|
|
|
|
|
# This maps 'VBP' to base form -- probably just need 'IS_BASE'
|
|
|
|
|
# morphology
|
|
|
|
|
elif univ_pos == "verb" and (
|
|
|
|
|
morphology.get("VerbForm") == "fin"
|
|
|
|
|
and morphology.get("Tense") == "pres"
|
|
|
|
|
and morphology.get("Number") is None
|
|
|
|
|
):
|
|
|
|
|
return True
|
|
|
|
|
elif univ_pos == "adj" and morphology.get("Degree") == "pos":
|
|
|
|
|
return True
|
|
|
|
|
elif morphology.get("VerbForm") == "inf":
|
|
|
|
|
return True
|
|
|
|
|
elif morphology.get("VerbForm") == "none":
|
|
|
|
|
return True
|
|
|
|
|
elif morphology.get("Degree") == "pos":
|
|
|
|
|
return True
|
|
|
|
|
else:
|
|
|
|
|
return False
|
|
|
|
|
|
2017-05-20 07:18:19 +00:00
|
|
|
|
|
2015-08-25 13:37:30 +00:00
|
|
|
|
class English(Language):
|
💫 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 16:03:03 +00:00
|
|
|
|
lang = "en"
|
2017-05-20 07:18:19 +00:00
|
|
|
|
Defaults = EnglishDefaults
|
2017-03-15 09:52:50 +00:00
|
|
|
|
|
2016-12-18 21:29:31 +00:00
|
|
|
|
|
💫 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 16:03:03 +00:00
|
|
|
|
__all__ = ["English"]
|