mirror of
https://github.com/explosion/spaCy.git
synced 2024-12-26 09:56:28 +03:00
eddeb36c96
<!--- 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.
330 lines
8.3 KiB
Python
330 lines
8.3 KiB
Python
# coding: utf8
|
|
from __future__ import unicode_literals
|
|
|
|
from ...symbols import LEMMA, PRON_LEMMA
|
|
|
|
|
|
MORPH_RULES = {
|
|
"PRP": {
|
|
"I": {
|
|
LEMMA: PRON_LEMMA,
|
|
"PronType": "Prs",
|
|
"Person": "One",
|
|
"Number": "Sing",
|
|
"Case": "Nom",
|
|
},
|
|
"me": {
|
|
LEMMA: PRON_LEMMA,
|
|
"PronType": "Prs",
|
|
"Person": "One",
|
|
"Number": "Sing",
|
|
"Case": "Acc",
|
|
},
|
|
"you": {LEMMA: PRON_LEMMA, "PronType": "Prs", "Person": "Two"},
|
|
"he": {
|
|
LEMMA: PRON_LEMMA,
|
|
"PronType": "Prs",
|
|
"Person": "Three",
|
|
"Number": "Sing",
|
|
"Gender": "Masc",
|
|
"Case": "Nom",
|
|
},
|
|
"him": {
|
|
LEMMA: PRON_LEMMA,
|
|
"PronType": "Prs",
|
|
"Person": "Three",
|
|
"Number": "Sing",
|
|
"Gender": "Masc",
|
|
"Case": "Acc",
|
|
},
|
|
"she": {
|
|
LEMMA: PRON_LEMMA,
|
|
"PronType": "Prs",
|
|
"Person": "Three",
|
|
"Number": "Sing",
|
|
"Gender": "Fem",
|
|
"Case": "Nom",
|
|
},
|
|
"her": {
|
|
LEMMA: PRON_LEMMA,
|
|
"PronType": "Prs",
|
|
"Person": "Three",
|
|
"Number": "Sing",
|
|
"Gender": "Fem",
|
|
"Case": "Acc",
|
|
},
|
|
"it": {
|
|
LEMMA: PRON_LEMMA,
|
|
"PronType": "Prs",
|
|
"Person": "Three",
|
|
"Number": "Sing",
|
|
"Gender": "Neut",
|
|
},
|
|
"we": {
|
|
LEMMA: PRON_LEMMA,
|
|
"PronType": "Prs",
|
|
"Person": "One",
|
|
"Number": "Plur",
|
|
"Case": "Nom",
|
|
},
|
|
"us": {
|
|
LEMMA: PRON_LEMMA,
|
|
"PronType": "Prs",
|
|
"Person": "One",
|
|
"Number": "Plur",
|
|
"Case": "Acc",
|
|
},
|
|
"they": {
|
|
LEMMA: PRON_LEMMA,
|
|
"PronType": "Prs",
|
|
"Person": "Three",
|
|
"Number": "Plur",
|
|
"Case": "Nom",
|
|
},
|
|
"them": {
|
|
LEMMA: PRON_LEMMA,
|
|
"PronType": "Prs",
|
|
"Person": "Three",
|
|
"Number": "Plur",
|
|
"Case": "Acc",
|
|
},
|
|
"mine": {
|
|
LEMMA: PRON_LEMMA,
|
|
"PronType": "Prs",
|
|
"Person": "One",
|
|
"Number": "Sing",
|
|
"Poss": "Yes",
|
|
"Reflex": "Yes",
|
|
},
|
|
"his": {
|
|
LEMMA: PRON_LEMMA,
|
|
"PronType": "Prs",
|
|
"Person": "Three",
|
|
"Number": "Sing",
|
|
"Gender": "Masc",
|
|
"Poss": "Yes",
|
|
"Reflex": "Yes",
|
|
},
|
|
"hers": {
|
|
LEMMA: PRON_LEMMA,
|
|
"PronType": "Prs",
|
|
"Person": "Three",
|
|
"Number": "Sing",
|
|
"Gender": "Fem",
|
|
"Poss": "Yes",
|
|
"Reflex": "Yes",
|
|
},
|
|
"its": {
|
|
LEMMA: PRON_LEMMA,
|
|
"PronType": "Prs",
|
|
"Person": "Three",
|
|
"Number": "Sing",
|
|
"Gender": "Neut",
|
|
"Poss": "Yes",
|
|
"Reflex": "Yes",
|
|
},
|
|
"ours": {
|
|
LEMMA: PRON_LEMMA,
|
|
"PronType": "Prs",
|
|
"Person": "One",
|
|
"Number": "Plur",
|
|
"Poss": "Yes",
|
|
"Reflex": "Yes",
|
|
},
|
|
"yours": {
|
|
LEMMA: PRON_LEMMA,
|
|
"PronType": "Prs",
|
|
"Person": "Two",
|
|
"Number": "Plur",
|
|
"Poss": "Yes",
|
|
"Reflex": "Yes",
|
|
},
|
|
"theirs": {
|
|
LEMMA: PRON_LEMMA,
|
|
"PronType": "Prs",
|
|
"Person": "Three",
|
|
"Number": "Plur",
|
|
"Poss": "Yes",
|
|
"Reflex": "Yes",
|
|
},
|
|
"myself": {
|
|
LEMMA: PRON_LEMMA,
|
|
"PronType": "Prs",
|
|
"Person": "One",
|
|
"Number": "Sing",
|
|
"Case": "Acc",
|
|
"Reflex": "Yes",
|
|
},
|
|
"yourself": {
|
|
LEMMA: PRON_LEMMA,
|
|
"PronType": "Prs",
|
|
"Person": "Two",
|
|
"Case": "Acc",
|
|
"Reflex": "Yes",
|
|
},
|
|
"himself": {
|
|
LEMMA: PRON_LEMMA,
|
|
"PronType": "Prs",
|
|
"Person": "Three",
|
|
"Number": "Sing",
|
|
"Case": "Acc",
|
|
"Gender": "Masc",
|
|
"Reflex": "Yes",
|
|
},
|
|
"herself": {
|
|
LEMMA: PRON_LEMMA,
|
|
"PronType": "Prs",
|
|
"Person": "Three",
|
|
"Number": "Sing",
|
|
"Case": "Acc",
|
|
"Gender": "Fem",
|
|
"Reflex": "Yes",
|
|
},
|
|
"itself": {
|
|
LEMMA: PRON_LEMMA,
|
|
"PronType": "Prs",
|
|
"Person": "Three",
|
|
"Number": "Sing",
|
|
"Case": "Acc",
|
|
"Gender": "Neut",
|
|
"Reflex": "Yes",
|
|
},
|
|
"themself": {
|
|
LEMMA: PRON_LEMMA,
|
|
"PronType": "Prs",
|
|
"Person": "Three",
|
|
"Number": "Sing",
|
|
"Case": "Acc",
|
|
"Reflex": "Yes",
|
|
},
|
|
"ourselves": {
|
|
LEMMA: PRON_LEMMA,
|
|
"PronType": "Prs",
|
|
"Person": "One",
|
|
"Number": "Plur",
|
|
"Case": "Acc",
|
|
"Reflex": "Yes",
|
|
},
|
|
"yourselves": {
|
|
LEMMA: PRON_LEMMA,
|
|
"PronType": "Prs",
|
|
"Person": "Two",
|
|
"Case": "Acc",
|
|
"Reflex": "Yes",
|
|
},
|
|
"themselves": {
|
|
LEMMA: PRON_LEMMA,
|
|
"PronType": "Prs",
|
|
"Person": "Three",
|
|
"Number": "Plur",
|
|
"Case": "Acc",
|
|
"Reflex": "Yes",
|
|
},
|
|
},
|
|
"PRP$": {
|
|
"my": {
|
|
LEMMA: PRON_LEMMA,
|
|
"Person": "One",
|
|
"Number": "Sing",
|
|
"PronType": "Prs",
|
|
"Poss": "Yes",
|
|
},
|
|
"your": {LEMMA: PRON_LEMMA, "Person": "Two", "PronType": "Prs", "Poss": "Yes"},
|
|
"his": {
|
|
LEMMA: PRON_LEMMA,
|
|
"Person": "Three",
|
|
"Number": "Sing",
|
|
"Gender": "Masc",
|
|
"PronType": "Prs",
|
|
"Poss": "Yes",
|
|
},
|
|
"her": {
|
|
LEMMA: PRON_LEMMA,
|
|
"Person": "Three",
|
|
"Number": "Sing",
|
|
"Gender": "Fem",
|
|
"PronType": "Prs",
|
|
"Poss": "Yes",
|
|
},
|
|
"its": {
|
|
LEMMA: PRON_LEMMA,
|
|
"Person": "Three",
|
|
"Number": "Sing",
|
|
"Gender": "Neut",
|
|
"PronType": "Prs",
|
|
"Poss": "Yes",
|
|
},
|
|
"our": {
|
|
LEMMA: PRON_LEMMA,
|
|
"Person": "One",
|
|
"Number": "Plur",
|
|
"PronType": "Prs",
|
|
"Poss": "Yes",
|
|
},
|
|
"their": {
|
|
LEMMA: PRON_LEMMA,
|
|
"Person": "Three",
|
|
"Number": "Plur",
|
|
"PronType": "Prs",
|
|
"Poss": "Yes",
|
|
},
|
|
},
|
|
"VBZ": {
|
|
"am": {
|
|
LEMMA: "be",
|
|
"VerbForm": "Fin",
|
|
"Person": "One",
|
|
"Tense": "Pres",
|
|
"Mood": "Ind",
|
|
},
|
|
"are": {
|
|
LEMMA: "be",
|
|
"VerbForm": "Fin",
|
|
"Person": "Two",
|
|
"Tense": "Pres",
|
|
"Mood": "Ind",
|
|
},
|
|
"is": {
|
|
LEMMA: "be",
|
|
"VerbForm": "Fin",
|
|
"Person": "Three",
|
|
"Tense": "Pres",
|
|
"Mood": "Ind",
|
|
},
|
|
"'re": {
|
|
LEMMA: "be",
|
|
"VerbForm": "Fin",
|
|
"Person": "Two",
|
|
"Tense": "Pres",
|
|
"Mood": "Ind",
|
|
},
|
|
"'s": {
|
|
LEMMA: "be",
|
|
"VerbForm": "Fin",
|
|
"Person": "Three",
|
|
"Tense": "Pres",
|
|
"Mood": "Ind",
|
|
},
|
|
},
|
|
"VBP": {
|
|
"are": {LEMMA: "be", "VerbForm": "Fin", "Tense": "Pres", "Mood": "Ind"},
|
|
"'re": {LEMMA: "be", "VerbForm": "Fin", "Tense": "Pres", "Mood": "Ind"},
|
|
"am": {
|
|
LEMMA: "be",
|
|
"VerbForm": "Fin",
|
|
"Person": "One",
|
|
"Tense": "Pres",
|
|
"Mood": "Ind",
|
|
},
|
|
},
|
|
"VBD": {
|
|
"was": {LEMMA: "be", "VerbForm": "Fin", "Tense": "Past", "Number": "Sing"},
|
|
"were": {LEMMA: "be", "VerbForm": "Fin", "Tense": "Past", "Number": "Plur"},
|
|
},
|
|
}
|
|
|
|
|
|
for tag, rules in MORPH_RULES.items():
|
|
for key, attrs in dict(rules).items():
|
|
rules[key.title()] = attrs
|