mirror of
				https://github.com/explosion/spaCy.git
				synced 2025-11-01 00:17:44 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			64 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			64 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| After tokenization, spaCy can **parse** and **tag** a given `Doc`. This is where
 | ||
| the trained pipeline and its statistical models come in, which enable spaCy to
 | ||
| **make predictions** of which tag or label most likely applies in this context.
 | ||
| A trained component includes binary data that is produced by showing a system
 | ||
| enough examples for it to make predictions that generalize across the language –
 | ||
| for example, a word following "the" in English is most likely a noun.
 | ||
| 
 | ||
| Linguistic annotations are available as
 | ||
| [`Token` attributes](/api/token#attributes). Like many NLP libraries, spaCy
 | ||
| **encodes all strings to hash values** to reduce memory usage and improve
 | ||
| efficiency. So to get the readable string representation of an attribute, we
 | ||
| need to add an underscore `_` to its name:
 | ||
| 
 | ||
| ```python
 | ||
| ### {executable="true"}
 | ||
| import spacy
 | ||
| 
 | ||
| nlp = spacy.load("en_core_web_sm")
 | ||
| doc = nlp("Apple is looking at buying U.K. startup for $1 billion")
 | ||
| 
 | ||
| for token in doc:
 | ||
|     print(token.text, token.lemma_, token.pos_, token.tag_, token.dep_,
 | ||
|             token.shape_, token.is_alpha, token.is_stop)
 | ||
| ```
 | ||
| 
 | ||
| > - **Text:** The original word text.
 | ||
| > - **Lemma:** The base form of the word.
 | ||
| > - **POS:** The simple [UPOS](https://universaldependencies.org/docs/u/pos/)
 | ||
| >   part-of-speech tag.
 | ||
| > - **Tag:** The detailed part-of-speech tag.
 | ||
| > - **Dep:** Syntactic dependency, i.e. the relation between tokens.
 | ||
| > - **Shape:** The word shape – capitalization, punctuation, digits.
 | ||
| > - **is alpha:** Is the token an alpha character?
 | ||
| > - **is stop:** Is the token part of a stop list, i.e. the most common words of
 | ||
| >   the language?
 | ||
| 
 | ||
| | Text    | Lemma   | POS     | Tag   | Dep        | Shape   | alpha   | stop    |
 | ||
| | ------- | ------- | ------- | ----- | ---------- | ------- | ------- | ------- |
 | ||
| | Apple   | apple   | `PROPN` | `NNP` | `nsubj`    | `Xxxxx` | `True`  | `False` |
 | ||
| | is      | be      | `AUX`   | `VBZ` | `aux`      | `xx`    | `True`  | `True`  |
 | ||
| | looking | look    | `VERB`  | `VBG` | `ROOT`     | `xxxx`  | `True`  | `False` |
 | ||
| | at      | at      | `ADP`   | `IN`  | `prep`     | `xx`    | `True`  | `True`  |
 | ||
| | buying  | buy     | `VERB`  | `VBG` | `pcomp`    | `xxxx`  | `True`  | `False` |
 | ||
| | U.K.    | u.k.    | `PROPN` | `NNP` | `compound` | `X.X.`  | `False` | `False` |
 | ||
| | startup | startup | `NOUN`  | `NN`  | `dobj`     | `xxxx`  | `True`  | `False` |
 | ||
| | for     | for     | `ADP`   | `IN`  | `prep`     | `xxx`   | `True`  | `True`  |
 | ||
| | \$      | \$      | `SYM`   | `$`   | `quantmod` | `$`     | `False` | `False` |
 | ||
| | 1       | 1       | `NUM`   | `CD`  | `compound` | `d`     | `False` | `False` |
 | ||
| | billion | billion | `NUM`   | `CD`  | `pobj`     | `xxxx`  | `True`  | `False` |
 | ||
| 
 | ||
| > #### Tip: Understanding tags and labels
 | ||
| >
 | ||
| > Most of the tags and labels look pretty abstract, and they vary between
 | ||
| > languages. `spacy.explain` will show you a short description – for example,
 | ||
| > `spacy.explain("VBZ")` returns "verb, 3rd person singular present".
 | ||
| 
 | ||
| Using spaCy's built-in [displaCy visualizer](/usage/visualizers), here's what
 | ||
| our example sentence and its dependencies look like:
 | ||
| 
 | ||
| import DisplaCyLongHtml from 'images/displacy-long.html'; import { Iframe } from
 | ||
| 'components/embed'
 | ||
| 
 | ||
| <Iframe title="displaCy visualization of dependencies and entities" html={DisplaCyLongHtml} height={450} />
 |