mirror of
				https://github.com/explosion/spaCy.git
				synced 2025-11-04 01:48:04 +03:00 
			
		
		
		
	Update README.md
This commit is contained in:
		
							parent
							
								
									4b84b4522b
								
							
						
					
					
						commit
						589fc73910
					
				| 
						 | 
				
			
			@ -1,6 +1,6 @@
 | 
			
		|||
<a href="https://explosion.ai"><img src="https://explosion.ai/assets/img/logo.svg" width="125" height="125" align="right" /></a>
 | 
			
		||||
 | 
			
		||||
# A Decomposable Attention Model for Natural Language Inference
 | 
			
		||||
# A decomposable attention model for Natural Language Inference
 | 
			
		||||
**by Matthew Honnibal, [@honnibal](https://github.com/honnibal)**
 | 
			
		||||
 | 
			
		||||
This directory contains an implementation of entailment prediction model described
 | 
			
		||||
| 
						 | 
				
			
			@ -35,20 +35,16 @@ lots of ways to extend the model.
 | 
			
		|||
 | 
			
		||||
## What's where
 | 
			
		||||
 | 
			
		||||
* `keras_parikh_entailment/__main__.py`: The script that will be executed.
 | 
			
		||||
    Defines the CLI, the data reading, etc — all the boring stuff.
 | 
			
		||||
    
 | 
			
		||||
* `keras_parikh_entailment/spacy_hook.py`: Provides a class `SimilarityShim`
 | 
			
		||||
    that lets you use an arbitrary function to customize spaCy's
 | 
			
		||||
    `doc.similarity()` method. Instead of the default average-of-vectors algorithm,
 | 
			
		||||
    when you call `doc1.similarity(doc2)`, you'll get the result of `your_model(doc1, doc2)`.
 | 
			
		||||
    
 | 
			
		||||
* `keras_parikh_entailment/keras_decomposable_attention.py`: Defines the neural network model.
 | 
			
		||||
    This part knows nothing of spaCy --- its ordinary Keras usage.
 | 
			
		||||
| File | Description |
 | 
			
		||||
| --- | --- |
 | 
			
		||||
| `__main__.py` | The script that will be executed. Defines the CLI, the data reading, etc — all the boring stuff. |                          
 | 
			
		||||
| `spacy_hook.py` | Provides a class `SimilarityShim` that lets you use an arbitrary function to customize spaCy's `doc.similarity()` method. Instead of the default average-of-vectors algorithm, when you call `doc1.similarity(doc2)`, you'll get the result of `your_model(doc1, doc2)`. |
 | 
			
		||||
| `keras_decomposable_attention.py` | Defines the neural network model. |
 | 
			
		||||
 | 
			
		||||
## Setting up
 | 
			
		||||
 | 
			
		||||
First, install keras, spaCy and the spaCy English models (about 1GB of data):
 | 
			
		||||
First, install [Keras](https://keras.io/), [spaCy](https://spacy.io) and the spaCy 
 | 
			
		||||
English models (about 1GB of data):
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
pip install keras spacy
 | 
			
		||||
| 
						 | 
				
			
			@ -56,11 +52,11 @@ python -m spacy.en.download
 | 
			
		|||
```
 | 
			
		||||
 | 
			
		||||
You'll also want to get keras working on your GPU. This will depend on your
 | 
			
		||||
set up, so you're mostly on your own for this step. If you're using AWS, try the NVidia
 | 
			
		||||
AMI. It made things pretty easy.
 | 
			
		||||
set up, so you're mostly on your own for this step. If you're using AWS, try the 
 | 
			
		||||
[NVidia AMI](https://aws.amazon.com/marketplace/pp/B00FYCDDTE). It made things pretty easy.
 | 
			
		||||
 | 
			
		||||
Once you've installed the dependencies, you can run a small preliminary test of
 | 
			
		||||
the keras model:
 | 
			
		||||
the Keras model:
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
py.test keras_parikh_entailment/keras_decomposable_attention.py
 | 
			
		||||
| 
						 | 
				
			
			@ -69,14 +65,12 @@ py.test keras_parikh_entailment/keras_decomposable_attention.py
 | 
			
		|||
This compiles the model and fits it with some dummy data. You should see that
 | 
			
		||||
both tests passed.
 | 
			
		||||
 | 
			
		||||
Finally, download the Stanford Natural Language Inference corpus.
 | 
			
		||||
 | 
			
		||||
Source: http://nlp.stanford.edu/projects/snli/
 | 
			
		||||
Finally, download the [Stanford Natural Language Inference corpus](http://nlp.stanford.edu/projects/snli/).
 | 
			
		||||
 | 
			
		||||
## Running the example
 | 
			
		||||
 | 
			
		||||
You can run the `keras_parikh_entailment/` directory as a script, which executes the file
 | 
			
		||||
`keras_parikh_entailment/__main__.py`. The first thing you'll want to do is train the model:
 | 
			
		||||
[`keras_parikh_entailment/__main__.py`](__main__.py). The first thing you'll want to do is train the model:
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
python keras_parikh_entailment/ train <your_model_dir> <train_directory> <dev_directory>
 | 
			
		||||
| 
						 | 
				
			
			@ -95,4 +89,5 @@ you how run-time usage will eventually look.
 | 
			
		|||
## Getting updates
 | 
			
		||||
 | 
			
		||||
We should have the blog post explaining the model ready before the end of the week. To get
 | 
			
		||||
notified when it's published, you can either the follow me on Twitter, or subscribe to our mailing list.
 | 
			
		||||
notified when it's published, you can either the follow me on [Twitter](https://twitter.com/honnibal), 
 | 
			
		||||
or subscribe to our [mailing list](http://eepurl.com/ckUpQ5).
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue
	
	Block a user