mirror of
				https://github.com/explosion/spaCy.git
				synced 2025-10-31 16:07:41 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			166 lines
		
	
	
		
			6.2 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			166 lines
		
	
	
		
			6.2 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| ---
 | |
| title: Morphology
 | |
| tag: class
 | |
| source: spacy/morphology.pyx
 | |
| ---
 | |
| 
 | |
| Store the possible morphological analyses for a language, and index them
 | |
| by hash. To save space on each token, tokens only know the hash of their
 | |
| morphological analysis, so queries of morphological attributes are delegated to
 | |
| this class.
 | |
| 
 | |
| 
 | |
| ## Morphology.\_\_init\_\_ {#init tag="method"}
 | |
| 
 | |
| Create a Morphology object using the tag map, lemmatizer and exceptions.
 | |
| 
 | |
| > #### Example
 | |
| >
 | |
| > ```python
 | |
| > from spacy.morphology import Morphology
 | |
| >
 | |
| > morphology = Morphology(strings, tag_map, lemmatizer)
 | |
| > ```
 | |
| 
 | |
| | Name        | Type                                     | Description                                                                                               |
 | |
| | ----------- | ---------------------------------------- | --------------------------------------------------------------------------------------------------------- |
 | |
| | `strings`   | `StringStore`                            | The string store.                                                             |
 | |
| | `tag_map`   | `Dict[str, Dict]`                        | The tag map.                                                                  |
 | |
| | `lemmatizer`| `Lemmatizer`                             | The lemmatizer.                                                               |
 | |
| | `exc`       | `Dict[str, Dict]`                        | A dictionary of exceptions in the format `{tag: {orth: {"POS": "X", "Feat1": "Val1, "Feat2": "Val2", ...}` |
 | |
| | **RETURNS** | `Morphology`                             | The newly constructed object.                                                                             |
 | |
| 
 | |
| 
 | |
| ## Morphology.add {#add tag="method"}
 | |
| 
 | |
| Insert a morphological analysis in the morphology table, if not already
 | |
| present. The morphological analysis may be provided in the UD FEATS format as a
 | |
| string or in the tag map dictionary format. Returns the hash of the new
 | |
| analysis.
 | |
| 
 | |
| > #### Example
 | |
| >
 | |
| > ```python
 | |
| > feats = "Feat1=Val1|Feat2=Val2"
 | |
| > hash = nlp.vocab.morphology.add(feats)
 | |
| > assert hash == nlp.vocab.strings[feats]
 | |
| > ```
 | |
| 
 | |
| | Name        | Type                | Description                 |
 | |
| | ----------- | ------------------- | --------------------------- |
 | |
| | `features`  | `Union[Dict, str]`  | The morphological features. |
 | |
| 
 | |
| 
 | |
| ## Morphology.get {#get tag="method"}
 | |
| 
 | |
| > #### Example
 | |
| >
 | |
| > ```python
 | |
| > feats = "Feat1=Val1|Feat2=Val2"
 | |
| > hash = nlp.vocab.morphology.add(feats)
 | |
| > assert nlp.vocab.morphology.get(hash) == feats
 | |
| > ```
 | |
| 
 | |
| Get the FEATS string for the hash of the morphological analysis.
 | |
| 
 | |
| | Name        | Type   | Description                             |
 | |
| | ----------- | ------ | --------------------------------------- |
 | |
| | `morph`     | int    | The hash of the morphological analysis. |
 | |
| 
 | |
| 
 | |
| ## Morphology.load_tag_map {#load_tag_map tag="method"}
 | |
| 
 | |
| Replace the current tag map with the provided tag map.
 | |
| 
 | |
| | Name        | Type               | Description  |
 | |
| | ----------- | ------------------ | ------------ |
 | |
| | `tag_map`   | `Dict[str, Dict]`  | The tag map. |
 | |
| 
 | |
| 
 | |
| ## Morphology.load_morph_exceptions {#load_morph_exceptions tag="method"}
 | |
| 
 | |
| Replace the current morphological exceptions with the provided exceptions.
 | |
| 
 | |
| | Name          | Type               | Description                   |
 | |
| | ------------- | ------------------ | ----------------------------- |
 | |
| | `morph_rules` | `Dict[str, Dict]`  | The morphological exceptions. |
 | |
| 
 | |
| 
 | |
| ## Morphology.add_special_case {#add_special_case tag="method"}
 | |
| 
 | |
| Add a special-case rule to the morphological analyzer. Tokens whose tag and
 | |
| orth match the rule will receive the specified properties.
 | |
| 
 | |
| > #### Example
 | |
| >
 | |
| > ```python
 | |
| > attrs = {"POS": "DET", "Definite": "Def"}
 | |
| > morphology.add_special_case("DT", "the", attrs)
 | |
| > ```
 | |
| 
 | |
| | Name        | Type | Description                                    |
 | |
| | ----------- | ---- | ---------------------------------------------- |
 | |
| | `tag_str`   | str  | The fine-grained tag.                          |
 | |
| | `orth_str`  | str  | The token text.                                |
 | |
| | `attrs`     | dict | The features to assign for this token and tag. |
 | |
| 
 | |
| 
 | |
| ## Morphology.exc {#exc tag="property"}
 | |
| 
 | |
| The current morphological exceptions.
 | |
| 
 | |
| | Name       | Type  | Description                                         |
 | |
| | ---------- | ----- | --------------------------------------------------- |
 | |
| | **YIELDS** | dict  | The current dictionary of morphological exceptions. |
 | |
| 
 | |
| 
 | |
| ## Morphology.lemmatize {#lemmatize tag="method"}
 | |
| 
 | |
| TODO
 | |
| 
 | |
| 
 | |
| ## Morphology.feats_to_dict {#feats_to_dict tag="staticmethod"}
 | |
| 
 | |
| Convert a string FEATS representation to a dictionary of features and values in
 | |
| the same format as the tag map.
 | |
| 
 | |
| > #### Example
 | |
| >
 | |
| > ```python
 | |
| > from spacy.morphology import Morphology
 | |
| > d = Morphology.feats_to_dict("Feat1=Val1|Feat2=Val2")
 | |
| > assert d == {"Feat1": "Val1", "Feat2": "Val2"}
 | |
| > ```
 | |
| 
 | |
| | Name        | Type | Description                                                   |
 | |
| | ----------- | ---- | ------------------------------------------------------------- |
 | |
| | `feats`     | str  | The morphological features in Universal Dependencies FEATS format. |
 | |
| | **RETURNS** | dict | The morphological features as a dictionary. |
 | |
| 
 | |
| 
 | |
| ## Morphology.dict_to_feats {#dict_to_feats tag="staticmethod"}
 | |
| 
 | |
| Convert a dictionary of features and values to a string FEATS representation.
 | |
| 
 | |
| > #### Example
 | |
| >
 | |
| > ```python
 | |
| > from spacy.morphology import Morphology
 | |
| > f = Morphology.dict_to_feats({"Feat1": "Val1", "Feat2": "Val2"})
 | |
| > assert f == "Feat1=Val1|Feat2=Val2"
 | |
| > ```
 | |
| 
 | |
| | Name         | Type              | Description                                                          |
 | |
| | ------------ | ----------------- | --------------------------------------------------------------------- |
 | |
| | `feats_dict` | `Dict[str, Dict]` | The morphological features as a dictionary.                           |
 | |
| | **RETURNS**  | str               | The morphological features as in Universal Dependencies FEATS format. |
 | |
| 
 | |
| 
 | |
| ## Attributes {#attributes}
 | |
| 
 | |
| | Name          | Type  | Description                                  |
 | |
| | ------------- | ----- | -------------------------------------------- |
 | |
| | `FEATURE_SEP` | `str` | The FEATS feature separator. Default is `|`. |
 | |
| | `FIELD_SEP`   | `str` | The FEATS field separator. Default is `=`.   |
 | |
| | `VALUE_SEP`   | `str` | The FEATS value separator. Default is `,`.   |
 |