<SYSTEM_TASK:>
Given the following text description, write Python code to implement the functionality described below step by step
<END_TASK>
<USER_TASK:>
Description:
 NLP and TM Módulo 4
Taller 1
Step1:  1. Comparando composicionalidad y analogía.
Composicionalidad y analogía son dos mecanismos diferentes que se pueden usar con representaciones distribuidas. La idea es usar independientemente composicionalidad y analogía para resolver el mismo problema. El problema a resolver es encontrar el presidente de un país dado.
Primero usaremos composicionalidad. La función siguiente debe recibir el nombre de un país y retornar una lista de palabras que posiblemente corresponden a presidentes.
Por ejemplo, si la función se invoca con 'ecuador' como argumento
Step2:  El siguiente paso es usar analogías para encontrar el presidente de un país dado.
Step3:  ¿Cual versión funciona mejor? Explique claramente. ¿Por qué cree que este es le caso?
3. Escriba una función que calcule el antónimo de una palabra
Step4:  Busque más ejemplos en los que funcione y otros en los que no funcione. Explique.
4. Una de estas cosas no es como las otras...
Gensim provee la función doesnt_match, la cual permite encontrar, dentro de una lista de palabras, una palabra que está fuera de lugar. Por ejemplo
Step5:  La idea es implementar la misma funcionalidad por nuestra cuenta. La condición es que solo podemos usar la función 
similarity de Gensim la cual calcula la similitud de dos palabras
<ASSISTANT_TASK:>
Python Code:
# import word2vec model from gensim
from gensim.models.word2vec import Word2Vec
# load pre-trained model
model = Word2Vec.load_word2vec_format('eswikinews.bin', binary=True)
Explanation: NLP and TM Módulo 4
Taller 1: word2vec
Nombres:
Obtenga el archivo del modelo word2vec entrenado con WikiNews en Español: eswikinews.bin
End of explanation
def presidents_comp(country):
    ### Su código debe ir aquí
    return []
for country in ['colombia', 'venezuela', 'ecuador', 'brasil', 'argentina', 'chile']:
    print country
    for president in presidents_comp(country):
        print ' ', president
Explanation: 1. Comparando composicionalidad y analogía.
Composicionalidad y analogía son dos mecanismos diferentes que se pueden usar con representaciones distribuidas. La idea es usar independientemente composicionalidad y analogía para resolver el mismo problema. El problema a resolver es encontrar el presidente de un país dado.
Primero usaremos composicionalidad. La función siguiente debe recibir el nombre de un país y retornar una lista de palabras que posiblemente corresponden a presidentes.
Por ejemplo, si la función se invoca con 'ecuador' como argumento:
```python
presidents_comp('ecuador')
[u'jamil_mahuad',
 u'presidencia',
 u'jose_maria_velasco_ibarra',
 u'republica',
 u'rafael_correa',
 u'gustavo_noboa',
 u'lucio_gutierrez',
 u'abdala_bucaram',
 u'vicepresidente',
 u'gabriel_garcia_moreno']
 ```
End of explanation
def presidents_analogy(country):
    ### Su código debe ir aquí
    return []
for country in ['colombia', 'venezuela', 'ecuador', 'brasil', 'argentina', 'chile']:
    print country
    for president in presidents_analogy(country):
        print ' ', president
Explanation: El siguiente paso es usar analogías para encontrar el presidente de un país dado.
End of explanation
def antonimo(palabra):
    ### Su código debe ir aquí
    return '-'
for palabra in ['blanco', 'menor', 'rapido', 'arriba']:
    print palabra, antonimo(palabra)
Explanation: ¿Cual versión funciona mejor? Explique claramente. ¿Por qué cree que este es le caso?
3. Escriba una función que calcule el antónimo de una palabra
End of explanation
model.doesnt_match("azul rojo abajo verde".split())
Explanation: Busque más ejemplos en los que funcione y otros en los que no funcione. Explique.
4. Una de estas cosas no es como las otras...
Gensim provee la función doesnt_match, la cual permite encontrar, dentro de una lista de palabras, una palabra que está fuera de lugar. Por ejemplo:
End of explanation
print model.similarity('azul', 'rojo')
print model.similarity('azul', 'abajo')
import numpy as np
def no_es_como_las_otras(lista):
    ### Su código debe ir aquí
    return '-'
print no_es_como_las_otras("azul rojo abajo verde".split())
Explanation: La idea es implementar la misma funcionalidad por nuestra cuenta. La condición es que solo podemos usar la función 
similarity de Gensim la cual calcula la similitud de dos palabras:
End of explanation
<END_TASK>