mirror of
				https://github.com/explosion/spaCy.git
				synced 2025-10-31 07:57:35 +03:00 
			
		
		
		
	<!--- 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
 |