Skip to content
Snippets Groups Projects
Commit 7eb36916 authored by Pablo Valdunciel's avatar Pablo Valdunciel
Browse files

README updated

parent 8043c4c3
No related branches found
No related tags found
No related merge requests found
.venv
.idea
.ipynb_checkpoints
__pycache__
\ No newline at end of file
# Comparativa de vectores pre-entrenados de Word2Vec, GloVe y FastText para medir la similaridad semántica entre pares de oraciones
Parte del Trabajo de Fin de Grado ´**Asistentes virtuales: estado del arte y desarrollo de un prototipo** realizado por D. Pablo Valdunciel Sánchez.
## Evaluación
[Ver evaluación](./evaluation.ipynb)
## Estructura del repositorio
- **data/**
......@@ -33,6 +33,97 @@
- **utils.py**: contiene algunas funciones de utilidad como para preprocesar las oraciones y evaluar los resultados de los diferentes métodos.
## Evaluación
Para ver la evaluación, acceda al fichero [evaluation.ipynb](./evaluation.ipynb). En el caso de que desee ejecutar el código de la evaluación, puede seguir los siguientes pasos:
### 1. Instalación de Python3.7 y su herramienta de entornos virtuales
En primer lugar, instale Python3.7 y la herramienta de entornos virtuales:
```
sudo apt update
sudo apt install software-properties-common
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt install python3.7
sudo apt install python3.7-venv
```
### 2. Creación y activación de un entorno virtual de Python3.7
En segundo lugar, cree un entorno virtual de Python3.7 dentro de este repositorio:
```
python3.7 -m venv .venv
```
y actívelo:
```
source .venv/bin/activate
```
### 3. Instalación de las dependencias
Una vez activado el entorno virtual, instale las dependencias mediante el siguiente comando:
```
pip install -r requirements.txt
```
### 4. Descarga de los conjuntos de vectores
Tenga en cuenta que para reproducir la evaluación contenida en el fichero [evaluation.ipynb](./evaluation.ipynb) debe descargar previamente los conjuntos de vectores de palabras de Word2Vec, GloVe y FastText. Cada uno de estos conjuntos tiene un tamaño considerable y su descarga puede llevar varios minutos.
#### 4.1. Descarga del conjunto Word2Vec
Siendo este repositiorio (*semantic_similarity/*) el directorio actual, ejecute los siguientes comandos:
```
cd data/embedding/word2vec
chmod +x get_word2vec_embeddings.bash
./get_word2vec_embeddings.bash
```
#### 4.2. Descarga del conjunto GloVe
Siendo este repositiorio (*semantic_similarity/*) el directorio actual, ejecute los siguientes comandos:
```
cd data/embedding/glove
chmod +x get_glove_embeddings.bash
./get_glove_embeddings.bash
python 2word2vec.py
```
#### 4.3. Descarga del conjunto FastText
Siendo este repositiorio (*semantic_similarity/*) el directorio actual, ejecute los siguientes comandos:
```
cd data/embedding/fasttext
chmod +x get_fasttext_embeddings.bash
./get_fasttext_embeddings.bash
```
### 5. Descarga de los conjuntos de datos
También es necesario descargar los conjuntos de datos. Para ellos, siendo este repositiorio (*semantic_similarity/*) el directorio actual, ejecute los siguientes comandos:
```
cd data/datasets
sudo chmod +x get_datasets.bash
./get_datasets.bash
```
### 6. Inicio de Jupyter Notebook
Ejecute Jupyter Notebook y acceda al fichero *evaluation.ipynb*. Para ejecutar Jupyter Notebook, ejecute el siguiente comando:
```
jupyter-notebook
```
Una vez termine de utilizar Jupyter Notebook, en el terminal en el que ejecutó el anterior comando, utilice *Ctrl + C* para finalizar la ejecución de Jupyter Notebook. Por último, desactive el entorno virtual mediante el siguiente comando:
```
deactivate
```
## Dependencias
```
gensim==3.8.2
jupyter==1.0.0
notebook==6.0.3
numpy==1.18.3
Orange3==3.25.0
pandas==1.0.3
sklearn==0.0
spacy==2.2.4
```
<hr>
......@@ -40,9 +131,6 @@
# Comparison of pre-trained Word2Vec, GloVe and FastText vectors to measure semantic similarity between sentence pairs
## Evaluation
[See evaluation](./evaluation.ipynb) (in Spanish)
## Repository structure
......@@ -71,3 +159,20 @@
- **methods.py**: contains the functions that implement the three evaluated methods to calculate the semantic similarity between two pairs of sentences: average, Smooth Inverse Frequency(SIF), and Word Mover's distance.
- **utils.py**: contains some utility functions to preprocess sentences and evaluate the results of the different methods.
## Evaluation
[See evaluation](./evaluation.ipynb) (in Spanish)
## Dependencies
```
gensim==3.8.2
jupyter==1.0.0
notebook==6.0.3
numpy==1.18.3
Orange3==3.25.0
pandas==1.0.3
sklearn==0.0
spacy==2.2.4
```
File mode changed from 100644 to 100755
......@@ -24,7 +24,7 @@
},
{
"cell_type": "code",
"execution_count": 1,
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
......@@ -136,7 +136,7 @@
},
{
"cell_type": "code",
"execution_count": 6,
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
......@@ -299,7 +299,7 @@
},
{
"cell_type": "code",
"execution_count": 14,
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
......@@ -342,7 +342,7 @@
},
{
"cell_type": "code",
"execution_count": 5,
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
......@@ -684,7 +684,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.9"
"version": "3.7.5"
}
},
"nbformat": 4,
......
......
gensim==3.8.2
jupyter==1.0.0
notebook==6.0.3
numpy==1.18.3
Orange3==3.25.0
pandas==1.0.3
sklearn==0.0
spacy==2.2.4
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment