Verifique que su entorno contiene todas las bibliotecas necesarias. Importe las bibliotecas nltk y sklearn. Verifique que se importan sin errores:


In [106]:
import nltk
import sklearn

Abra el archivo 'opiniones.txt' donde se encuentra el corpus en le cual se trabajará, lea todas sus líneas y cargue el texto en una variable de nombre 'texto'. Tener en cuenta que el texto está codificado en 'utf-8', decodifique el texto y trabaje en unicode (tener en cuenta el módulo codecs o la función decode):


In [107]:
import codecs
f = codecs.open('C:\opiniones.txt', encoding='utf-8')
texto = ''
for linea in f:
    texto += unicode(linea)

Transforme el texto en una lista de oraciones. Guarde el resultado en una variable llamada 'oraciones'. Para esto utilice las funciones de tokenización de oraciones de nltk.


In [108]:
from nltk.tokenize import sent_tokenize
oraciones = sent_tokenize(texto)

Verifique que la primera oración obtenida del corpus corresponde a la siguiente oración:


In [109]:
oraciones[0] == u'Fuimos a festejar mi cumpleaños y salimos contentos.'


Out[109]:
True

Transforme cada oración del texto en una lista de tokens y guarde todas las tokenizaciones en una lista llamada 'tokens_oraciones':


In [110]:
from nltk.tokenize import word_tokenize
tokens_oraciones = []
for oracion in oraciones:
    tokens_oraciones.append(word_tokenize(oracion))

Verifique que la lista de tokens de la primera oración corresponda a la siguiente lista:


In [111]:
tokens_oraciones[0] == [u'Fuimos', u'a', u'festejar', u'mi', u'cumplea\xf1os', u'y', u'salimos', u'contentos', u'.']


Out[111]:
True

Realice la misma tokenización que antes pero ahora utilizando expresiones regulares y el módulo re de Python, en esta oportunidad, cumpla las siguientes restricciones:

  • Reconocer tokens de por lo menos 3 caracteres de largo.
  • No reconocer símbolos de puntuación.
  • No reconocer tokens únicamente numéricos.

In [112]:
from nltk.tokenize import RegexpTokenizer
tokenizer = RegexpTokenizer('([^\W\d_][^\W_]{2,})|([^\W_]+[^\W\d_][^\W_]+)|([^\W_]{2,}[^\W\d_])')
tokens_oraciones2 = []
for oracion in oraciones:
    tokens_oraciones2.append(tokenizer.tokenize(oracion))

Utilice la clase CountVectorizer del módulo sklearn.feature_extraction.text para crear un objeto 'transf' que transforme el corpus en un diccionario de las palabras más representativas de las oraciones del corpus. Investigue cada uno de los parámetros que acepta su constructor y configurelos de la forma más adecuada. Justifique sus decisiones:


In [113]:
from sklearn.feature_extraction.text import CountVectorizer
stop_words = [
    u'ademas',
    u'asi',
    u'aunque',
    u'con',
    u'cual',
    u'del',
    u'desde',
    u'despues',
    u'detras',
    u'donde',
    u'hay',
    u'las',
    u'los',
    u'muy',
    u'para',
    u'pero',
    u'por',
    u'que',
    u'sin',
    u'una',
    u'vez'
]
transf = CountVectorizer(encoding=u'unicode', stop_words=stop_words, max_features=None,
                     tokenizer=tokenizer.tokenize, strip_accents=u'unicode')

Ejecute la transformación e imprima las palabras obtenidas en el diccionario de la transformación creada:


In [114]:
transf.fit(oraciones)
transf.get_feature_names()


Out[114]:
[u'abadejo',
 u'abajo',
 u'abierto',
 u'abren',
 u'abril',
 u'abrumado',
 u'abundante',
 u'abundantemente',
 u'abundantes',
 u'aceite',
 u'aceptable',
 u'aceto',
 u'acido',
 u'aclaro',
 u'acogedor',
 u'acompanada',
 u'acompanado',
 u'acompanados',
 u'acompanate',
 u'acondicionado',
 u'acorde',
 u'acordes',
 u'adelante',
 u'adentro',
 u'aderezar',
 u'adherezos',
 u'adiciones',
 u'adorno',
 u'adultos',
 u'agendarlo',
 u'agradable',
 u'agradaria',
 u'agradecere',
 u'agradezco',
 u'aguas',
 u'ahora',
 u'aire',
 u'aires',
 u'albahaca',
 u'alcanzo',
 u'alcaparras',
 u'aldaqu',
 u'algo',
 u'algun',
 u'algunas',
 u'algunos',
 u'alli',
 u'almorzar',
 u'alta',
 u'altamente',
 u'altos',
 u'amabilidad',
 u'amable',
 u'amables',
 u'amasijan',
 u'ambas',
 u'ambientacion',
 u'ambientado',
 u'ambiente',
 u'amenidad',
 u'amiga',
 u'amigas',
 u'amigo',
 u'amigos',
 u'ampliamente',
 u'amplio',
 u'anadiria',
 u'angostitas',
 u'aniversario',
 u'ano',
 u'anoche',
 u'anos',
 u'anteriores',
 u'antes',
 u'apartado',
 u'apreton',
 u'apuradad',
 u'aqui',
 u'area',
 u'argentina',
 u'argentino',
 u'armadas',
 u'aromonia',
 u'arreglados',
 u'arrepiento',
 u'arriba',
 u'arriman',
 u'arroz',
 u'artesanales',
 u'asado',
 u'asados',
 u'aseguro',
 u'asisti',
 u'aspectos',
 u'atencio',
 u'atencion',
 u'atenciones',
 u'atencon',
 u'atender',
 u'atendido',
 u'atendidos',
 u'atendieron',
 u'atendio',
 u'atenta',
 u'atentisimo',
 u'atento',
 u'atentos',
 u'atienden',
 u'atras',
 u'atte',
 u'augurios',
 u'aun',
 u'auxiliares',
 u'ayer',
 u'azucar',
 u'baile',
 u'balde',
 u'banos',
 u'bar',
 u'barato',
 u'barra',
 u'barrio',
 u'barro',
 u'base',
 u'basicamente',
 u'bastante',
 u'bebida',
 u'beneficios',
 u'berenjena',
 u'bien',
 u'bienvenido',
 u'blanco',
 u'bocattas',
 u'bonito',
 u'botella',
 u'botellas',
 u'brasero',
 u'braseros',
 u'brasileros',
 u'brindado',
 u'brindaron',
 u'brotola',
 u'brownies',
 u'buen',
 u'buena',
 u'buenas',
 u'buenisima',
 u'buenisimos',
 u'bueno',
 u'buenos',
 u'bueo',
 u'buna',
 u'buscamos',
 u'busqueda',
 u'cabeza',
 u'cabra',
 u'cada',
 u'cafe',
 u'calefaccionado',
 u'calentitoy',
 u'calidad',
 u'calido',
 u'calificacion',
 u'califico',
 u'calle',
 u'cambian',
 u'cambiar',
 u'cambiaron',
 u'cambo',
 u'cantidad',
 u'canto',
 u'caprese',
 u'cargado',
 u'cargados',
 u'carlos',
 u'carme',
 u'carne',
 u'carnes',
 u'carnivoros',
 u'caro',
 u'caros',
 u'carta',
 u'caruso',
 u'casa',
 u'casados',
 u'casera',
 u'caseras',
 u'casero',
 u'caso',
 u'cayo',
 u'cebollas',
 u'cebollines',
 u'cebollitas',
 u'celebrar',
 u'cena',
 u'cenamos',
 u'cenar',
 u'cenas',
 u'centro',
 u'cerca',
 u'cerdo',
 u'certeza',
 u'cerveza',
 u'chance',
 u'charlar',
 u'chef',
 u'chica',
 u'chicas',
 u'chico',
 u'chicos',
 u'chimichurri',
 u'chinchulines',
 u'chivito',
 u'chocolate',
 u'chorreados',
 u'clasico',
 u'clavo',
 u'cliente',
 u'clientes',
 u'coccion',
 u'coche',
 u'coches',
 u'cocida',
 u'cocido',
 u'cocina',
 u'cocinaran',
 u'colmo',
 u'color',
 u'com',
 u'combinaran',
 u'come',
 u'comedor',
 u'comensales',
 u'comentar',
 u'comentario',
 u'comentarios',
 u'comer',
 u'comfortable',
 u'comida',
 u'comidas',
 u'comieron',
 u'comimos',
 u'como',
 u'comoda',
 u'comodo',
 u'compartir',
 u'compartirse',
 u'completo',
 u'complicado',
 u'comun',
 u'conceptuados',
 u'concurri',
 u'concurriamos',
 u'concurrido',
 u'concurrieron',
 u'concurrimos',
 u'conejo',
 u'confiar',
 u'confirmaban',
 u'confirmacion',
 u'confirmamos',
 u'confirmo',
 u'conforme',
 u'conformes',
 u'conformo',
 u'confundio',
 u'conocerlo',
 u'conocia',
 u'conocimiento',
 u'conquisto',
 u'conseguirnos',
 u'contaron',
 u'contento',
 u'contentos',
 u'continuen',
 u'contrario',
 u'convencio',
 u'conversar',
 u'coordial',
 u'copa',
 u'copas',
 u'cordero',
 u'cordial',
 u'correcta',
 u'correctamente',
 u'correcto',
 u'corriente',
 u'cortesia',
 u'cosas',
 u'costo',
 u'costoso',
 u'crema',
 u'creo',
 u'criticas',
 u'crocante',
 u'crocantes',
 u'cruda',
 u'crudo',
 u'cualquier',
 u'cuando',
 u'cuanto',
 u'cuantos',
 u'cuatro',
 u'cubiertos',
 u'cuenta',
 u'cuida',
 u'cuidado',
 u'culinaria',
 u'cumple',
 u'cumpleano',
 u'cumpleanos',
 u'cumples',
 u'cumplia',
 u'dado',
 u'dados',
 u'dan',
 u'daremos',
 u'darle',
 u'darles',
 u'deberia',
 u'decaigan',
 u'decidimos',
 u'decir',
 u'decoracion',
 u'decorado',
 u'decorados',
 u'dedicada',
 u'defraudo',
 u'degustar',
 u'dejado',
 u'dejando',
 u'dejo',
 u'deliciosa',
 u'delicioso',
 u'demas',
 u'demasiado',
 u'demora',
 u'demoraron',
 u'demoro',
 u'demostro',
 u'depidieron',
 u'derecho',
 u'desactualizada',
 u'desastre',
 u'desconformes',
 u'descubrimiento',
 u'desea',
 u'deseo',
 u'desintegraban',
 u'deslumbrante',
 u'desocupemos',
 u'desordenados',
 u'desprolija',
 u'destacar',
 u'destacaron',
 u'destaco',
 u'destuyendo',
 u'detallandonos',
 u'detalle',
 u'detalles',
 u'deuda',
 u'dia',
 u'dias',
 u'dice',
 u'dicen',
 u'diciembre',
 u'dieciocho',
 u'diego',
 u'dieron',
 u'diferencia',
 u'diferente',
 u'diferentes',
 u'dificil',
 u'dificilmente',
 u'diga',
 u'digo',
 u'dijeron',
 u'dijo',
 u'dio',
 u'dips',
 u'diria',
 u'diseno',
 u'disfrutable',
 u'disfrutando',
 u'dispondrian',
 u'disposicion',
 u'divino',
 u'divinos',
 u'dolares',
 u'domingo',
 u'don',
 u'dos',
 u'dto',
 u'duda',
 u'dudas',
 u'duden',
 u'dulce',
 u'duro',
 u'economico',
 u'eficaz',
 u'ejemplo',
 u'elegimos',
 u'elevado',
 u'eligen',
 u'ella',
 u'ello',
 u'ellos',
 u'embargo',
 u'encantados',
 u'encanto',
 u'encantos',
 u'encima',
 u'encontraba',
 u'encontramos',
 u'encontre',
 u'encuentra',
 u'encuentro',
 u'enero',
 u'enloquecimos',
 u'enojada',
 u'enormes',
 u'enrtetenian',
 u'ensalada',
 u'ensaladas',
 u'enteraron',
 u'entiendan',
 u'entorno',
 u'entrada',
 u'entradas',
 u'entramos',
 u'entran',
 u'entrana',
 u'entre',
 u'entrecot',
 u'entrepiso',
 u'entretot',
 u'entusiasmado',
 u'epocas',
 u'equilibrado',
 u'equipo',
 u'era',
 u'eramos',
 u'escasamente',
 u'escasas',
 u'escelente',
 u'escribir',
 u'esmero',
 u'eso',
 u'espacioso',
 u'espaldas',
 u'especial',
 u'especialidad',
 u'especies',
 u'espectacular',
 u'espectaculares',
 u'espera',
 u'esperamos',
 u'esperandonos',
 u'esperar',
 u'esperas',
 u'esposo',
 u'esque',
 u'esta',
 u'estaba',
 u'estabamos',
 u'estaban',
 u'establecimiento',
 u'estacionar',
 u'estado',
 u'estan',
 u'estar',
 u'estaria',
 u'este',
 u'estipula',
 u'esto',
 u'estrella',
 u'estrellas',
 u'estructura',
 u'estupendo',
 u'estuve',
 u'estuvimos',
 u'estuvo',
 u'etc',
 u'exagerar',
 u'excelente',
 u'excelentes',
 u'excepcion',
 u'excepcional',
 u'exclusivamente',
 u'exito',
 u'expectativas',
 u'experiencia',
 u'experiente',
 u'explico',
 u'exquisita',
 u'exquisito',
 u'exquisitos',
 u'exterior',
 u'extra',
 u'fabsab',
 u'fabulosa',
 u'falla',
 u'falta',
 u'faltaba',
 u'faltando',
 u'familia',
 u'familiar',
 u'fans',
 u'fantastica',
 u'fascina',
 u'favor',
 u'favorito',
 u'favoritos',
 u'febrero',
 u'fede',
 u'federico',
 u'felicitaciones',
 u'felicitar',
 u'felicito',
 u'feliz',
 u'festejamos',
 u'festejar',
 u'fin',
 u'final',
 u'finalizar',
 u'finalmente',
 u'flan',
 u'flauta',
 u'fondo',
 u'forma',
 u'foto',
 u'frente',
 u'fresca',
 u'fria',
 u'frio',
 u'fritas',
 u'fue',
 u'fuego',
 u'fuera',
 u'fueron',
 u'fui',
 u'fuimos',
 u'ganas',
 u'gasta',
 u'gastamos',
 u'gaste',
 u'gasto',
 u'gastronomica',
 u'general',
 u'generales',
 u'generosas',
 u'gente',
 u'gentil',
 u'gentileza',
 u'gerente',
 u'gesto',
 u'gracias',
 u'gran',
 u'grande',
 u'grata',
 u'gratinado',
 u'grupo',
 u'guiados',
 u'gusta',
 u'gustaba',
 u'gustaron',
 u'guste',
 u'gusto',
 u'gustos',
 u'gustosa',
 u'haber',
 u'haberle',
 u'habia',
 u'habiamos',
 u'habian',
 u'habitual',
 u'habitue',
 u'hablar',
 u'hace',
 u'hacen',
 u'hacer',
 u'hacia',
 u'hagan',
 u'hambientacion',
 u'han',
 u'hasta',
 u'haya',
 u'hecha',
 u'hecho',
 u'helada',
 u'helado',
 u'hemos',
 u'hermoso',
 u'hicieron',
 u'hierbas',
 u'higiene',
 u'hija',
 u'hijas',
 u'hijo',
 u'hijos',
 u'hiper',
 u'hizo',
 u'hongos',
 u'hora',
 u'horno',
 u'hoy',
 u'hubieran',
 u'hubo',
 u'ibamos',
 u'iban',
 u'ideal',
 u'ido',
 u'igual',
 u'illy',
 u'impecable',
 u'impecables',
 u'importante',
 u'importantes',
 u'importunar',
 u'impresion',
 u'incansablemente',
 u'incluido',
 u'incluyendo',
 u'incorporara',
 u'indica',
 u'indicando',
 u'infaltables',
 u'ingeniera',
 u'ingresa',
 u'ingresas',
 u'inmediato',
 u'inmejorable',
 u'inquietaron',
 u'inspiro',
 u'instalaciones',
 u'instalados',
 u'insuperable',
 u'insuperables',
 u'intentamos',
 u'intregantes',
 u'invadio',
 u'invasiva',
 u'inversion',
 u'invitados',
 u'invitaron',
 u'invito',
 u'involtinis',
 u'iva',
 u'jamas',
 u'jamon',
 u'joven',
 u'jovenes',
 u'jueves',
 u'jugaban',
 u'jugosa',
 u'julio',
 u'junio',
 u'junto',
 u'lamentable',
 u'lamentablemente',
 u'lamento',
 u'larga',
 u'lasagna',
 u'leche',
 u'leido',
 u'leimos',
 u'lenguado',
 u'lento',
 u'les',
 u'levantar',
 u'libre',
 u'licor',
 u'limoncello',
 u'limpieza',
 u'limpio',
 u'linda',
 u'lindisimo',
 u'lindo',
 u'lindos',
 u'liquida',
 u'lista',
 u'litro',
 u'living',
 u'llama',
 u'llega',
 u'llegada',
 u'llegamos',
 u'llegar',
 u'llegaron',
 u'llego',
 u'lleguamos',
 u'llegue',
 u'llena',
 u'lleno',
 u'llevaron',
 u'llevo',
 u'local',
 u'logrado',
 u'lomo',
 u'luego',
 u'lugar',
 u'lugares',
 u'lujo',
 u'lunes',
 u'madre',
 u'maitre',
 u'mal',
 u'mala',
 u'malo',
 u'malos',
 u'manejar',
 u'manos',
 u'manteles',
 u'mantengan',
 u'manzana',
 u'maracuya',
 u'maravillosa',
 u'marca',
 u'marisco',
 u'mariscos',
 u'marquen',
 u'marzo',
 u'mas',
 u'masa',
 u'matambrito',
 u'mathias',
 u'matias',
 u'mayo',
 u'mayor',
 u'mayoria',
 u'medallon',
 u'media',
 u'medio',
 u'mediocre',
 u'mediodia',
 u'mejillones',
 u'mejor',
 u'mejorando',
 u'mejorar',
 u'mejores',
 u'mencionado',
 u'menos',
 u'menu',
 u'merecen',
 u'mesa',
 u'mesas',
 u'meses',
 u'mesitas',
 u'mientras',
 u'migas',
 u'mil',
 u'mineral',
 u'miniaturas',
 u'minima',
 u'minuscula',
 u'minutas',
 u'minutos',
 u'mio',
 u'miraramos',
 u'mis',
 u'misma',
 u'mismo',
 u'moderno',
 u'molleja',
 u'momentaneamente',
 u'momento',
 u'moneda',
 u'monine',
 u'montevideo',
 u'moreno',
 u'morron',
 u'motivo',
 u'mousse',
 u'moza',
 u'mozo',
 u'mozos',
 u'mucha',
 u'muchas',
 u'mucho',
 u'muchos',
 u'muestra',
 u'mujeres',
 u'musica',
 u'muuuuy',
 u'muzzarella',
 u'nada',
 u'nadie',
 u'naranja',
 u'navidad',
 u'negra',
 u'nietas',
 u'nieto',
 u'ningun',
 u'ninguno',
 u'ninos',
 u'nivel',
 u'noche',
 u'noches',
 u'nombre',
 u'normal',
 u'normales',
 u'nos',
 u'nosotros',
 u'novedosa',
 u'nueces',
 u'nuera',
 u'nuestra',
 u'nuestras',
 u'nuestro',
 u'nuevamente',
 u'nuevas',
 u'nuevo',
 u'nuez',
 u'nunca',
 u'nuy',
 u'obviamente',
 u'ocasion',
 u'ocasiones',
 u'ofrece',
 u'ofrecen',
 u'ofrecer',
 u'ofrecidos',
 u'ofreciendonos',
 u'ofrecieron',
 u'ofrecio',
 u'oliva',
 u'olmos',
 u'olvidado',
 u'olvidara',
 u'olvide',
 u'omimos',
 u'opcion',
 u'opinion',
 u'oportunidad',
 u'oportunidades',
 u'optamos',
 u'oragnizacion',
 u'oregano',
 u'organiza',
 u'original',
 u'oscuro',
 u'oscuros',
 u'otra',
 u'otras',
 u'otro',
 u'otros',
 u'paga',
 u'pagar',
 u'pagina',
 u'palabras',
 u'pan',
 u'panceta',
 u'pancitos',
 u'panera',
 u'paneras',
 u'panqueques',
 u'papas',
 u'papines',
 u'par',
 u'parecia',
 u'parecio',
 u'pareja',
 u'parmesano',
 u'parrilas',
 u'parrilla',
 u'parrillada',
 u'parrilladas',
 u'parte',
 u'pasada',
 u'pasadas',
 u'pasado',
 u'pasamos',
 u'pasando',
 u'pasar',
 u'pasas',
 u'pasta',
 u'pastas',
 u'patio',
 u'pedi',
 u'pedido',
 u'pedimos',
 u'pedir',
 u'pedro',
 u'pena',
 u'pendiente',
 u'pensamos',
 u'peor',
 u'pequeno',
 u'perdamos',
 u'perfectamente',
 u'permanecia',
 u'permite',
 u'persona',
 u'personal',
 u'personas',
 u'pesar',
 u'pesca',
 u'pescado',
 u'pescados',
 u'pesos',
 u'pesto',
 u'picada',
 u'picadas',
 u'picana',
 u'pidieron',
 u'pidio',
 u'pie',
 u'pierdan',
 u'pisano',
 u'piso',
 u'pizarron',
 u'pizza',
 u'pizzas',
 u'pizzetas',
 u'placer',
 u'planta',
 u'platito',
 u'plato',
 u'platos',
 u'plus',
 u'poca',
 u'pocas',
 u'pocillos',
 u'poco',
 u'pocos',
 u'podemos',
 u'podes',
 u'pollo',
 u'ponen',
 u'poner',
 u'pongan',
 u'pongo',
 u'poquito',
 u'porcion',
 u'porciones',
 u'porque',
 u'porteno',
 u'posibilidad',
 u'positivos',
 u'postre',
 u'postres',
 u'ppalmente',
 u'preci',
 u'precio',
 u'precios',
 u'preferimos',
 u'preguntado',
 u'preguntas',
 u'preocupan',
 u'preocuparon',
 u'preparada',
 u'presentacion',
 u'presentadas',
 u'presentados',
 u'presento',
 u'previa',
 u'previsto',
 u'primera',
 u'primero',
 u'principal',
 u'principales',
 u'principalmente',
 u'probamos',
 u'probando',
 u'probar',
 u'probare',
 u'probarlas',
 u'productos',
 u'profesional',
 u'prolijamente',
 u'promedio',
 u'pronta',
 u'pronto',
 u'propuesta',
 u'provolone',
 u'publicados',
 u'publican',
 u'puchero',
 u'pude',
 u'pudimos',
 u'puede',
 u'puedo',
 u'pues',
 u'puesto',
 u'punto',
 u'puntos',
 u'pure',
 u'quedamos',
 u'quedando',
 u'quedar',
 u'quedarse',
 u'quede',
 u'queja',
 u'quemada',
 u'queremos',
 u'queso',
 u'quien',
 u'quienes',
 u'quieren',
 u'quiero',
 u'quizas',
 u'rabas',
 u'ramas',
 u'rapido',
 u'rato',
 u'ravioles',
 u'raviolones',
 u'razon',
 u'razonable',
 u'razonables',
 u'realizada',
 u'realizo',
 u'realmente',
 u'reciben',
 u'recibida',
 u'recibido',
 u'recibimiento',
 u'recibimos',
 u'reciclado',
 u'recien',
 u'recipiente',
 u'recocidos',
 u'recogerlas',
 u'recomendable',
 u'recomendacion',
 u'recomendada',
 u'recomendado',
 u'recomendados',
 u'recomendar',
 u'recomiendan',
 u'recomiendo',
 u'reconfortado',
 u'referencia',
 u'refresco',
 u'refrescos',
 u'regalaron',
 u'regresar',
 u'regresare',
 u'relacion',
 u'rellena',
 u'relleno',
 u'remolacha',
 u'reparo',
 u'repetir',
 u'repito',
 u'rescatable',
 u'rescatar',
 u'reseca',
 u'reserva',
 u'reservamos',
 u'reservar',
 u'reservas',
 u'respecta',
 u'respecto',
 u'respetaron',
 u'restaurant',
 u'restaurante',
 u'resto',
 u'resultar',
 u'resulto',
 u'resumen',
 u'retiran',
 u'rica',
 u'ricas',
 u'richard',
 u'rico',
 u'ricos',
 u'ricotta',
 u'rincon',
 u'risotto',
 u'rissoto',
 u'romero',
 u'rpf',
 u'rucula',
 u'rugiendo',
 u'rustico',
 u'saba',
 u'sabado',
 u'saber',
 u'saberlo',
 u'sabor',
 u'sabrosas',
 u'sabrosos',
 u'sac',
 u'sacaran',
 u'safisfechos',
 u'sale',
 u'sali',
 u'salida',
 u'salido',
 u'saliera',
 u'salieron',
 u'salimos',
 u'salir',
 u'saliracomer',
 u'salmon',
 u'salones',
 u'salsa',
 u'saltimboca',
 u'salu',
 u'saluda',
 u'salvo',
 u'satisfechos',
 u'satisfechso',
 u'sea',
 u'seco',
 u'secos',
 u'seductor',
 u'seguido',
 u'seguir',
 u'segun',
 u'seguramente',
 u'seguro',
 u'semana',
 u'semanas',
 u'senal',
 u'senora',
 u'sensacional',
 u'sentamos',
 u'sentimos',
 u'sentir',
 u'ser',
 u'seria',
 u'servian',
 u'servicio',
 u'servida',
 u'servidas',
 u'servido',
 u'servidos',
 u'sexta',
 u'show',
 u'sido',
 u'siempre',
 u'siendo',
 u'sientan',
 u'sigan',
 u'sigue',
 u'siguiente',
 u'sillas',
 u'sillones',
 u'simplemente',
 u'sinceramente',
 u'sintesis',
 u'sirven',
 u'sirvio',
 u'sitio',
 u'sobra',
 u'sobre',
 u'socio',
 u'sola',
 u'solamente',
 u'solicitado',
 u'solicitamos',
 u'solo',
 u'solomillo',
 u'somos',
 u'son',
 u'sorprenda',
 u'sorprendan',
 u'sorprenderme',
 u'sorprendieron',
 u'sorpresa',
 u'sorrentinos',
 u'sra',
 u'suave',
 u'sucedio',
 u'suegro',
 u'suela',
 u'suficiente',
 u'sugerencia',
 u'sugerencias',
 u'sugerida',
 u'sumamente',
 u'sumarle',
 u'super',
 u'superado',
 u'supero',
 u'supo',
 u'suprema',
 u'supuesto',
 u'sustituyo',
 u'tal',
 u'tambalean',
 u'tambien',
 u'tan',
 u'tannat',
 u'tanta',
 u'tanto',
 u'tarjeta',
 u'tarta',
 u'tela',
 u'temperatura',
 u'temprano',
 u'tendria',
 u'tener',
 u'tengo',
 u'tenia',
 u'teniamos',
 u'tenian',
 u'tercera',
 u'terminar',
 u'terminos',
 u'tes',
 u'tiempo',
 u'tiempos',
 u'tiene',
 u'tienen',
 u'tierna',
 u'timing',
 u'tinto',
 u'tipo',
 u'tips',
 u'tira',
 u'tiran',
 u'tirar',
 u'tiras',
 u'toda',
 u'todas',
 u'todo',
 u'todos',
 u'tomamos',
 u'tomates',
 u'torta',
 u'tostadas',
 u'totalmente',
 u'tourmalion',
 u'trabajarla',
 u'trabajo',
 u'trae',
 u'traer',
 u'traerlos',
 u'tragos',
 u'trajeron',
 u'trajo',
 u'tranquilo',
 u'transformado',
 u'trapito',
 u'trato',
 u'tres',
 u'turistas',
 u'turnos',
 u'tuvieron',
 u'tuvimos',
 u'ubicados',
 u'ubicaron',
 u'ultimo',
 u'unas',
 u'unica',
 u'unico',
 u'uno',
 u'unos',
 u'uruguay',
 u'uruguayos',
 u'vacio',
 u'vale',
 u'valen',
 u'valga',
 u'valido',
 u'valieron',
 u'valio',
 u'vamos',
 u'varias',
 u'variedad',
 u'varios',
 u'vaucher',
 u'veces',
 u'vegetales',
 u'vela',
 u'velita',
 u'ver',
 u'verano',
 u'verdad',
 u'verduras',
 u'viajes',
 u'viajo',
 u'vida',
 u'viene',
 u'vienen',
 u'viernes',
 u'vinieron',
 u'vino',
 u'visita',
 u'visitante',
 u'visitar',
 u'visitarlos',
 u'visito',
 u'vista',
 u'visto',
 u'vivimos',
 u'volvamos',
 u'volvemos',
 u'volver',
 u'volvere',
 u'volveremos',
 u'volveria',
 u'volvermos',
 u'volvi',
 u'volvimos',
 u'voy',
 u'voz',
 u'vuelvo',
 u'vuelvogracias',
 u'vuestro',
 u'web',
 u'whisky',
 u'wok',
 u'yerno',
 u'zanahoria']

Transforme todas las oraciones en vectores utilizando la transformación recién creada. Guarde las transformaciones en una lista llamada 'vectores':


In [115]:
vectores = transf.transform(oraciones)

Escriba una función calcular_similitud(vect1, vect2) que dados dos vectores, devuelva un número en el rango [0, 1] donde 1 significa que los vectores son idénticos y 0 que son completamente diferentes (nota: puede utilizar medidas como la implementada en la función cosine del módulo scipy.spatial.distance):


In [116]:
from scipy.spatial.distance import cosine
def calcular_similitud(vect1, vect2):
    if vect1.nnz == 0 or vect2.nnz == 0:
        return 0.0
    else:
        return (2 - cosine(vect1.todense(), vect2.todense()))/2

Vamos a definir los siguientes dos diccionarios:


In [117]:
similar = {}
similitud = {}

El primer diccionario guardará para cada oración, el índice de la oración más similar a ella. Esto es, similar[i] = j indica que la j-esima oración, es la oración más similar a la i-esima oración. El segundo diccionario guardará el valor de similitud correspondiente. Si similiar[i] = j, entonces similitud[i] = calcular_similitud(oracion[i], oracion[j]). Implemente una fución llamada calcular_similitudes(vectores, similar, similitud) que dada la lista de vectores, construya los diccionarios similar y similitud:


In [118]:
def calcular_similitudes(vectores, similar, similitud):
    for i in range(vectores.shape[0]):
        valor_similitud = -1
        for j in range(vectores.shape[0]):
            calculo = calcular_similitud(vectores[i], vectores[j])
            if i != j and valor_similitud < calculo:
                valor_similar = j
                valor_similitud = calculo
        similar[i] = valor_similar
        similitud[i] = valor_similitud

Implemente una función que imprima los primeros 50 pares de oraciones más similares del corpus:


In [119]:
def encontrar_min (vectores, similitud, i_min):
    i_min = -1
    
    for i in range (vectores.shape[0]):
        if (i_min == -1) or (similitud.get(i) < similitud.get(i_min)):
            i_min = i

def imprimir_similares(vectores, similar, similitud):
    i_min = -1
    mas_similares= []
    
    for i in range (vectores.shape[0]):
        if i < 50:
           mas_similares.append((oraciones[i], oraciones[similar.get(i)], similitud.get(i)))
           if similitud.get(i) < similitud.get(i_min):
                i_min = i
            
        elif similitud.get(i) > similitud.get(i_min):
            mas_similares[i_min] = oraciones[i], oraciones[similar.get(i)], similitud.get(i)
            encontrar_min(vectores, similitud ,i_min)
            
    mas_similares.sort(key = lambda similares: similares[2], reverse = True)
    
    i = 0
    for par in mas_similares :
        print i, par
        i = i+1

Ejecute las funciones calcular_similitudes e imprimir_similares:


In [120]:
calcular_similitudes(vectores, similar, similitud)
imprimir_similares(vectores, similar, similitud)


0 (u'la decoracion excelente la atencion es buena.', u'Atenci\xf3n excelente.', 0.85355339059327373)
1 (u'(no da para compartir pero es buena)\nBuena atenci\xf3n.', u'Muy buena la atenci\xf3n y el servicio.', 0.85355339059327373)
2 (u'Fuimos a festejar mi cumplea\xf1os y salimos contentos.', u'Fuimos a festejar el cumplea\xf1os de mi madre.', 0.83541019662496852)
3 (u'la comida siempre es fabulosa.', u'La comida tb siempre muy buena.', 0.83333333333333337)
4 (u'es costoso pero vale la pena.', u'Realmente vale la pena ir.', 0.83333333333333337)
5 (u'La comida estaba muy bien, platos bien servidos y decorados prolijamente.', u'Los platos bien servidos y ricos.', 0.816227766016838)
6 (u'buen ambiente.', u'Puede resultar algo oscuro pero eso le da buen ambiente.', 0.76726124191242429)
7 (u'Los precios los encontr\xe9 nuevamente muy razonables con un gasto incluyendo  una botella de muy buen Pisano RPF recomendada por Richard, estuvo en los $650 x cabeza.', u'Los precios los encontr\xe9 muy razonables con un gasto x cabeza en los $450 con una copa de tannat.', 0.75253813613805276)
8 (u'La excelente atenci\xf3n y la calidad de los platos hacen que valga la pena pagar el precio.', u'Excelente relaci\xf3n calidad-precio.', 0.75)
9 (u'El local es hermoso.', u'El local muy bonito.', 0.75)
10 (u'Socio gerente de fabsab.s.r.l Argentina.', u'Razon por la que quiero tener la certeza de si abren o no.Aclaro que ya estuve en vuestro local y me agradaria visitarlos nuevamente.Los saluda muy atte.Moreno Saba Domingo.Socio gerente de fabsab.s.r.l Argentina.', 0.71821789023599236)
11 (u'fuimos a cenar 4 personas previa reserva,la atenci\xf3n es excelente desde que se ingresa al lugar,muy c\xe1lido y moderno el ambiente.La comida de muy buena calidad y preci', u'El lugar muy bien ambientado, la atenci\xf3n es de destacar y la comida de muy buena calidad y abundante.', 0.70833333333333337)
12 (u'(al menos en esta ocasi\xf2n fue asi)\n- La atenci\xf2n muy buena y gentil\n- Los precios son acorde y quiz\xe0s un poco elevado en algunas ocasiones pero en t\xe8rminos generales est\xe0n bien.', u'La atenci\xf3n es muy buena, los platos son abundantes y de buena calidad y los precios son acorde a lo que se ofrece.', 0.70732210721568234)
13 (u'Recomendable la pasta rellena de salm\xf3n y salsa de marisco.', u'Muy recomendable.', 0.70412414523193156)
14 (u'El lugar es muy grande y acogedor.', u'Muy buen lugar.', 0.70412414523193145)
15 (u'El lugar es muy lindo, le daremos otra oportunidad.', u'Los recomiendo y seguramente volvamos en otra oportunidad.', 0.69999999999999996)
16 (u'Los recomiendo y seguramente volvamos en otra oportunidad.', u'El lugar es muy lindo, le daremos otra oportunidad.', 0.69999999999999996)
17 (u'La comida en s\xed estaba rica y los precios razonables, por eso la calificaci\xf3n es buena, pero hay trabajo que hacer.', u'La atenci\xf3n excelente, la comida muy buena, y los precios ,muy acordes.', 0.69364916731037085)
18 (u'Cuanto mas vamos  a este lugar, mas queremos volver!', u'La verdad que de ahora en m\xe1s es nuestro lugar de encuentro.', 0.69364916731037085)
19 (u'Basicamente su especialidad es la parrilla si bien hay 3 sugerencias del chef muy bien presentadas y sabrosas.', u'La comida estaba muy bien, platos bien servidos y decorados prolijamente.', 0.69069251784911845)
20 (u'Son excelentes!', u'La atenci\xf3n es muy buena, los platos son abundantes y de buena calidad y los precios son acorde a lo que se ofrece.', 0.68257418583505536)
21 (u'La panera la trajeron despu\xe9s de traer los platos (\xa1\xa1!!', u'Los platos EXQUISITOS!', 0.67677669529663687)
22 (u'Lleguamos sin reserva y no habia lugar, nos invitaron a esperar en el living mientras nos ofrecieron una bebida y pizza de cortesia.', u'Nos gust\xf3.', 0.67677669529663687)
23 (u'El provolone relleno con jam\xf3n crudo y r\xfacula dio en el clavo mientras esperamos la comida.', u'Comimos pizza con queso de cabra, r\xfacula y jamon crudo, muy rica !!!', 0.66770509831248426)
24 (u'Probamos 2 postres de la carta y a todos nos gustaron, nuevamente las porciones generosas, en general lo que uno espera de un servicio, comer bien por lo que paga, no nos pareci\xf3 para nada caro, las porciones lo valen y el servicio tambi\xe9n, para finalizar la noche nos invitaron con te o caf\xe9, un lindo gesto de parte del establecimiento.', u'Nos gust\xf3.', 0.66174915980515758)
25 (u'Despu\xe9s ya ubicados en la mesa comimos muy bien.', u'La comida estaba muy bien, platos bien servidos y decorados prolijamente.', 0.658113883008419)
26 (u'Estuvimos a cenar....,estaba lleno y nos invitaron a esperar,  bien el detalle de la copa.', u'Lleguamos sin reserva y no habia lugar, nos invitaron a esperar en el living mientras nos ofrecieron una bebida y pizza de cortesia.', 0.658113883008419)
27 (u'- No hay gran variedad de comidas ni postres que te sorprendan.', u'Los postres buen\xedsimos.', 0.658113883008419)
28 (u'- Los braseros para dos est\xe0n bien servidos, aunque  indica cosas que no trae, por ejemplo molleja.', u'Los platos bien servidos y ricos.', 0.658113883008419)
29 (u'El mozo nos ofrecio los recomendados por el chef detallandonos todo y ofreciendonos tragos que combinaran con lo que habiamos solicitado.... Al pedir la cuenta nos ofrecieron limoncello de cortesia, que mas decir, un lugar que si bien no es economico, vale cada moneda por el servicio brindado, Realmente continuen asi.', u'Lleguamos sin reserva y no habia lugar, nos invitaron a esperar en el living mientras nos ofrecieron una bebida y pizza de cortesia.', 0.6546796083845573)
30 (u'Agradezco la reserva realizada a pedido mio, por los intregantes de salir a comer.Los saluda muy atte Moreno Saba Domingo.', u'Razon por la que quiero tener la certeza de si abren o no.Aclaro que ya estuve en vuestro local y me agradaria visitarlos nuevamente.Los saluda muy atte.Moreno Saba Domingo.Socio gerente de fabsab.s.r.l Argentina.', 0.65130688316720065)
31 (u'Fuimos un lunes a la noche, quedamos todos muy conformes con el servicio que nos brindaron en este lugar,  de entrada el servicio del mozo ( Carlos ) fue muy cordial y siempre atento.', u'Probamos 2 postres de la carta y a todos nos gustaron, nuevamente las porciones generosas, en general lo que uno espera de un servicio, comer bien por lo que paga, no nos pareci\xf3 para nada caro, las porciones lo valen y el servicio tambi\xe9n, para finalizar la noche nos invitaron con te o caf\xe9, un lindo gesto de parte del establecimiento.', 0.6497506232689374)
32 (u'Se merecen el \xe9xito xq han puesto un lugar muy lindo y sobre todo xq tienen un servicio excepcional.', u'El lugar es muy lindo, le daremos otra oportunidad.', 0.63483997249264845)
33 (u'El mozo parec\xeda abrumado por la cantidad de gente, y nunca supo a qui\xe9n ten\xeda que atender.', u'Hay que tener pasta para atender una mesa de tanta gente y siendo tan joven nos atendi\xf3 como un mozo muy experiente.', 0.62677313820927749)
34 (u'Cena para dos por 70 dolares, con un buen nivel de calidad, es algo poco comun.', u'Puede resultar algo oscuro pero eso le da buen ambiente.', 0.62598815766974236)
35 (u'), y para peor no nos trajeron tips (a otras mesas s\xed les llevaron).', u'Nos gust\xf3.', 0.625)
36 (u'Nos sentamos moment\xe1neamente en el \xe1rea de sillones y fuimos ofrecidos unas copas con  picada con pizza, dips, pancitos, etc.', u'Fuimos sin reserva previa por si no nos gustaba.', 0.61952286093343933)
37 (u'Si hasta confundi\xf3 las adiciones al final (nos trajo la cuenta de otra mesa!!!).', u'Nos gust\xf3.', 0.61785113019775784)
38 (u'Una vez instalados en una mesa en un rinc\xf3n arriba donde los mozos tienen paneras armadas en forma muy desprolija....en la apuradad nos tiran la carta, no tienen manteles de tela, y ni un trapito a la mesa...,La comida  nada deslumbrante y los postres nada "especial" que nos diga queremos regresar.... Para colmo, es complicado para estacionar....\n\nFuimos en dos oportunidades y la verdad que es un lugar 100% recomendable.', u'Probamos 2 postres de la carta y a todos nos gustaron, nuevamente las porciones generosas, en general lo que uno espera de un servicio, comer bien por lo que paga, no nos pareci\xf3 para nada caro, las porciones lo valen y el servicio tambi\xe9n, para finalizar la noche nos invitaron con te o caf\xe9, un lindo gesto de parte del establecimiento.', 0.61242343760332196)
39 (u'Da para volver\n\nfui el viernes 17 de mayo con 8 amigos con motivo de festejar mi cumplea\xf1os no quede para nada conforme  una panera en una mesa de 9 personas pedi la sugerencia del chef entretot con rissoto de zanahoria la carne estaba fr\xeda y cruda yo la pedi cocida el rissoto era arroz blanco y duro sin sabor a nada que de muy enojada gaste  6785 por una cena que no conformo a ninguno de mis invitados yo ya hab\xeda estado por la cocina de pedro pero no vuelvogracias\n\nCenamos: El fin de semana pasado, en la cocina de pedro.Creo por sexta vez y no me arrepiento, lo recomiendo ampliamente.', u'Fui de nuevo hoy de noche a la cocina de Pedro y nuevamente no me defraud\xf3.', 0.60879853497231107)
40 (u'te sirven 6 u 8 raviolones en el plato.', u'recomiendo los raviolones de masa negra de salm\xf3n con salsa de mariscos excelentes!', 0.60206207261596578)
41 (u'Como comentarios les dir\xeca lo siguiente:\n- La carta est\xe0 desactualizada en su p\xe0gina, al llegar solicitamos entradas que ya no serv\xecan, se nos explico que cada 4 meses la cambian.', u'El viernes 11 de mayo fuimos con mi esposo ( luego de haber leido los comentarios en esta p\xe1gina) a festejar nuestro aniversario.', 0.59805806756909208)
42 (u'El poner un pie adentro del local lleno ya me confirm\xf3 q se ha transformado en un favorito tanto de la gente nuestra as\xed tambi\xe9n como de turistas brasileros.', u'Y excelentes los platos, tanto los de la carta, como las sugerencias del d\xeda.', 0.59759000729485323)
43 (u'Nosotros eramos 6 y con entrada, plato principal, postres, refrescos, aguas y un vino gastamos en el entorno de los $4500\n- La pasta, muy rica bien casera!', u'Los postres buen\xedsimos.', 0.59128709291752768)
44 (u'Vienen acompa\xf1ados por media porci\xf2n de fritas y un platito chico de vegetales al horno.', u'El plato de vegetales al horno de barro puede compartirse entre dos.Excelente atenci\xf3n de parte del joven mozo Mat\xedas.', 0.58908708063747484)
45 (u'Me inspir\xf3 a volver xq el a\xf1o pasado me hab\xeda dejado la impresi\xf3n de q esto era mucho + que una parrillada.', u'Seguro vamos a volver.', 0.5870388279778489)
46 (u'El plato de pescado vino medio crudo, hubo que pedir que por favor lo cocinaran un poco m\xe1s (y no esque me guste seco, simplemente le faltaba cocci\xf3n).', u'La \xfanica queja ser\xeda q no ten\xedan el plato q ten\xeda previsto pedir, (ravioles con masa de remolacha que sale con cebollas al vino tinto y nueces), pero el risotto q lo sustituy\xf3 vali\xf3 el cambo.', 0.58134892168199603)
47 (u'La \xfanica queja ser\xeda q no ten\xedan el plato q ten\xeda previsto pedir, (ravioles con masa de remolacha que sale con cebollas al vino tinto y nueces), pero el risotto q lo sustituy\xf3 vali\xf3 el cambo.', u'El plato de pescado vino medio crudo, hubo que pedir que por favor lo cocinaran un poco m\xe1s (y no esque me guste seco, simplemente le faltaba cocci\xf3n).', 0.58134892168199603)
48 (u'Sin embargo, hay varias cosas para mejorar.', u'- Los braseros para dos est\xe0n bien servidos, aunque  indica cosas que no trae, por ejemplo molleja.', 0.5790569415042095)
49 (u'Los felicito!', u'Fuimos a festejar mi cumplea\xf1os y salimos contentos.', 0.5)

Analice los resultados obtenidos. ¿En qué se podría mejorar? Nota: considere utilizar el parámetro 'tokenizer' de la clase CountVectorizer y utilizar conjuntamente la clase SpanishStemmer del módulo nltk.stem.snowball. Justifique sus mejoras y analice los resultados obtenidos:


In [121]:
from nltk.stem.snowball import SpanishStemmer

ss = SpanishStemmer()

def tokenizer_stemmer(oracion):
    return [ss.stem(token) for token in tokenizer.tokenize(oracion)]

transf.stop_words = [ss.stem(token) for token in transf.stop_words]
transf.tokenizer = tokenizer_stemmer
vectores = transf.fit_transform(oraciones)
calcular_similitudes(vectores, similar, similitud)
imprimir_similares(vectores, similar, similitud)


0 (u'Los felicito!', u'Felicitaciones!!!', 1.0)
1 (u'(no da para compartir pero es buena)\nBuena atenci\xf3n.', u'Muy bueno.', 0.90824829046386313)
2 (u'la decoracion excelente la atencion es buena.', u'Atenci\xf3n excelente.', 0.85355339059327373)
3 (u'buen ambiente.', u'Muy bien ambientado, muy buena la atenci\xf3n, y muy buena la propuesta gastron\xf3mica.', 0.85355339059327373)
4 (u'Fuimos a festejar mi cumplea\xf1os y salimos contentos.', u'Fuimos a festejar el cumplea\xf1os de mi madre.', 0.83541019662496852)
5 (u'la comida siempre es fabulosa.', u'La comida tb siempre muy buena.', 0.83333333333333337)
6 (u'es costoso pero vale la pena.', u'Realmente vale la pena ir.', 0.83333333333333337)
7 (u'La comida estaba muy bien, platos bien servidos y decorados prolijamente.', u'Los platos bien servidos y ricos.', 0.816227766016838)
8 (u'Los recomiendo y seguramente volvamos en otra oportunidad.', u'Seguramente volveremos.', 0.816227766016838)
9 (u'Son excelentes!', u'Excelente lugar, excelente atenci\xf3n.', 0.78867513459481287)
10 (u'fuimos a cenar 4 personas previa reserva,la atenci\xf3n es excelente desde que se ingresa al lugar,muy c\xe1lido y moderno el ambiente.La comida de muy buena calidad y preci', u'La atenci\xf3n excelente, la comida muy buena, y los precios ,muy acordes.', 0.75515518153991446)
11 (u'Los precios los encontr\xe9 nuevamente muy razonables con un gasto incluyendo  una botella de muy buen Pisano RPF recomendada por Richard, estuvo en los $650 x cabeza.', u'Los precios los encontr\xe9 muy razonables con un gasto x cabeza en los $450 con una copa de tannat.', 0.75253813613805276)
12 (u'Despu\xe9s ya ubicados en la mesa comimos muy bien.', u'La comida muy bien como siempre en cantidad, calidad y sabor.', 0.75)
13 (u'La excelente atenci\xf3n y la calidad de los platos hacen que valga la pena pagar el precio.', u'Excelente relaci\xf3n calidad-precio.', 0.75)
14 (u'El local es hermoso.', u'El local muy bonito.', 0.75)
15 (u'El provolone relleno con jam\xf3n crudo y r\xfacula dio en el clavo mientras esperamos la comida.', u'Comimos pizza con queso de cabra, r\xfacula y jamon crudo, muy rica !!!', 0.72360679774997894)
16 (u'Socio gerente de fabsab.s.r.l Argentina.', u'Razon por la que quiero tener la certeza de si abren o no.Aclaro que ya estuve en vuestro local y me agradaria visitarlos nuevamente.Los saluda muy atte.Moreno Saba Domingo.Socio gerente de fabsab.s.r.l Argentina.', 0.71821789023599236)
17 (u'Recomendable la pasta rellena de salm\xf3n y salsa de marisco.', u'recomiendo los raviolones de masa negra de salm\xf3n con salsa de mariscos excelentes!', 0.7165063509461097)
18 (u'Probamos 2 postres de la carta y a todos nos gustaron, nuevamente las porciones generosas, en general lo que uno espera de un servicio, comer bien por lo que paga, no nos pareci\xf3 para nada caro, las porciones lo valen y el servicio tambi\xe9n, para finalizar la noche nos invitaron con te o caf\xe9, un lindo gesto de parte del establecimiento.', u'Nos gust\xf3.', 0.71566554640687685)
19 (u'El lugar es muy grande y acogedor.', u'Muy buen lugar.', 0.70412414523193145)
20 (u'te sirven 6 u 8 raviolones en el plato.', u'Los platos EXQUISITOS!', 0.70412414523193145)
21 (u'El lugar es muy lindo, le daremos otra oportunidad.', u'Los recomiendo y seguramente volvamos en otra oportunidad.', 0.69999999999999996)
22 (u'(al menos en esta ocasi\xf2n fue asi)\n- La atenci\xf2n muy buena y gentil\n- Los precios son acorde y quiz\xe0s un poco elevado en algunas ocasiones pero en t\xe8rminos generales est\xe0n bien.', u'La atenci\xf3n es muy buena, los platos son abundantes y de buena calidad y los precios son acorde a lo que se ofrece.', 0.69720265943665383)
23 (u'Lleguamos sin reserva y no habia lugar, nos invitaron a esperar en el living mientras nos ofrecieron una bebida y pizza de cortesia.', u'- Las entradas vienen bien servidas como para compartir entre dos personas, pedimos rabas, miniaturas de pescado y papas don pedro \nTienen muy buenos detalles con el cliente, al llegar habiamos hecho una reserva para menos personas y nos hicieron esperar con bebida de cortes\xeca y al finalizar la cena nos ofrecieron un licor, te o cafe.', 0.69521720236075757)
24 (u'La comida en s\xed estaba rica y los precios razonables, por eso la calificaci\xf3n es buena, pero hay trabajo que hacer.', u'La atenci\xf3n excelente, la comida muy buena, y los precios ,muy acordes.', 0.69364916731037085)
25 (u'Cuanto mas vamos  a este lugar, mas queremos volver!', u'La verdad que de ahora en m\xe1s es nuestro lugar de encuentro.', 0.69364916731037085)
26 (u'Nosotros eramos 6 y con entrada, plato principal, postres, refrescos, aguas y un vino gastamos en el entorno de los $4500\n- La pasta, muy rica bien casera!', u'Los platos bien servidos y ricos.', 0.69364916731037085)
27 (u'El mozo nos ofrecio los recomendados por el chef detallandonos todo y ofreciendonos tragos que combinaran con lo que habiamos solicitado.... Al pedir la cuenta nos ofrecieron limoncello de cortesia, que mas decir, un lugar que si bien no es economico, vale cada moneda por el servicio brindado, Realmente continuen asi.', u'Lleguamos sin reserva y no habia lugar, nos invitaron a esperar en el living mientras nos ofrecieron una bebida y pizza de cortesia.', 0.69293590828532237)
28 (u'Basicamente su especialidad es la parrilla si bien hay 3 sugerencias del chef muy bien presentadas y sabrosas.', u'La comida estaba muy bien, platos bien servidos y decorados prolijamente.', 0.69069251784911845)
29 (u'Cena para dos por 70 dolares, con un buen nivel de calidad, es algo poco comun.', u'El servicio muy bueno y la comida es de buena calidad, realmente precio calidad muy equilibrado.', 0.68490006540840975)
30 (u'Fuimos un lunes a la noche, quedamos todos muy conformes con el servicio que nos brindaron en este lugar,  de entrada el servicio del mozo ( Carlos ) fue muy cordial y siempre atento.', u'Desde que llegamos hasta que nos fuimos la atenci\xf3n fue excelente, nuestro mozo, Diego, estuvo atento a todo detalle en todo momento.', 0.68002057495577395)
31 (u'La panera la trajeron despu\xe9s de traer los platos (\xa1\xa1!!', u'Los platos EXQUISITOS!', 0.67677669529663687)
32 (u'- No hay gran variedad de comidas ni postres que te sorprendan.', u'Tienen gran variedad de platos, mientras esperas te hacen una atenci\xf3n de comida o bebida, el ambiente es muy acogedor y los precios son razonables.', 0.67320508075688767)
33 (u'Estuvimos a cenar....,estaba lleno y nos invitaron a esperar,  bien el detalle de la copa.', u'Lleguamos sin reserva y no habia lugar, nos invitaron a esperar en el living mientras nos ofrecieron una bebida y pizza de cortesia.', 0.658113883008419)
34 (u'- Los braseros para dos est\xe0n bien servidos, aunque  indica cosas que no trae, por ejemplo molleja.', u'Los platos bien servidos y ricos.', 0.658113883008419)
35 (u'), y para peor no nos trajeron tips (a otras mesas s\xed les llevaron).', u') El local estaba completo, as\xed que nos ubicaron en un living a la entrada y mientras confirmaban en cu\xe1ntos minutos dispondr\xedan de una mesa para 4, nos trajeron una copa de vino, refrescos y una picada.', 0.65430334996209194)
36 (u'Agradezco la reserva realizada a pedido mio, por los intregantes de salir a comer.Los saluda muy atte Moreno Saba Domingo.', u'Razon por la que quiero tener la certeza de si abren o no.Aclaro que ya estuve en vuestro local y me agradaria visitarlos nuevamente.Los saluda muy atte.Moreno Saba Domingo.Socio gerente de fabsab.s.r.l Argentina.', 0.65130688316720065)
37 (u'Me inspir\xf3 a volver xq el a\xf1o pasado me hab\xeda dejado la impresi\xf3n de q esto era mucho + que una parrillada.', u'Volveremos.', 0.65075567228888187)
38 (u'Se merecen el \xe9xito xq han puesto un lugar muy lindo y sobre todo xq tienen un servicio excepcional.', u'El lugar es muy lindo, le daremos otra oportunidad.', 0.63483997249264845)
39 (u'Nos sentamos moment\xe1neamente en el \xe1rea de sillones y fuimos ofrecidos unas copas con  picada con pizza, dips, pancitos, etc.', u'Lleguamos sin reserva y no habia lugar, nos invitaron a esperar en el living mientras nos ofrecieron una bebida y pizza de cortesia.', 0.63363062095621214)
40 (u'El plato de pescado vino medio crudo, hubo que pedir que por favor lo cocinaran un poco m\xe1s (y no esque me guste seco, simplemente le faltaba cocci\xf3n).', u'Pedimos parrilla y vino la carne reci\xe9n hecha y con muy poca demora.', 0.62862393885688161)
41 (u'El mozo parec\xeda abrumado por la cantidad de gente, y nunca supo a qui\xe9n ten\xeda que atender.', u'Hay que tener pasta para atender una mesa de tanta gente y siendo tan joven nos atendi\xf3 como un mozo muy experiente.', 0.62677313820927749)
42 (u'Como comentarios les dir\xeca lo siguiente:\n- La carta est\xe0 desactualizada en su p\xe0gina, al llegar solicitamos entradas que ya no serv\xecan, se nos explico que cada 4 meses la cambian.', u'), y para peor no nos trajeron tips (a otras mesas s\xed les llevaron).', 0.625)
43 (u'Una vez instalados en una mesa en un rinc\xf3n arriba donde los mozos tienen paneras armadas en forma muy desprolija....en la apuradad nos tiran la carta, no tienen manteles de tela, y ni un trapito a la mesa...,La comida  nada deslumbrante y los postres nada "especial" que nos diga queremos regresar.... Para colmo, es complicado para estacionar....\n\nFuimos en dos oportunidades y la verdad que es un lugar 100% recomendable.', u'Probamos 2 postres de la carta y a todos nos gustaron, nuevamente las porciones generosas, en general lo que uno espera de un servicio, comer bien por lo que paga, no nos pareci\xf3 para nada caro, las porciones lo valen y el servicio tambi\xe9n, para finalizar la noche nos invitaron con te o caf\xe9, un lindo gesto de parte del establecimiento.', 0.62366578136365414)
44 (u'Si hasta confundi\xf3 las adiciones al final (nos trajo la cuenta de otra mesa!!!).', u'), y para peor no nos trajeron tips (a otras mesas s\xed les llevaron).', 0.61785113019775784)
45 (u'Da para volver\n\nfui el viernes 17 de mayo con 8 amigos con motivo de festejar mi cumplea\xf1os no quede para nada conforme  una panera en una mesa de 9 personas pedi la sugerencia del chef entretot con rissoto de zanahoria la carne estaba fr\xeda y cruda yo la pedi cocida el rissoto era arroz blanco y duro sin sabor a nada que de muy enojada gaste  6785 por una cena que no conformo a ninguno de mis invitados yo ya hab\xeda estado por la cocina de pedro pero no vuelvogracias\n\nCenamos: El fin de semana pasado, en la cocina de pedro.Creo por sexta vez y no me arrepiento, lo recomiendo ampliamente.', u'El 18 de junio mi se\xf1ora, para sorprenderme en mi cumplea\xf1os N\xba 60 me organiza una cena para toda la familia y amigos, eramos 24 personas, pasamos excelente, quedando todos los invitados conformes con la atenci\xf3n y ,los diferentes platos servidos todos en el mismo momento, pastas , parrilas y pescados.', 0.60403129732205985)
46 (u'El poner un pie adentro del local lleno ya me confirm\xf3 q se ha transformado en un favorito tanto de la gente nuestra as\xed tambi\xe9n como de turistas brasileros.', u'Hay que tener pasta para atender una mesa de tanta gente y siendo tan joven nos atendi\xf3 como un mozo muy experiente.', 0.60350983390135315)
47 (u'La \xfanica queja ser\xeda q no ten\xedan el plato q ten\xeda previsto pedir, (ravioles con masa de remolacha que sale con cebollas al vino tinto y nueces), pero el risotto q lo sustituy\xf3 vali\xf3 el cambo.', u'El plato de pescado vino medio crudo, hubo que pedir que por favor lo cocinaran un poco m\xe1s (y no esque me guste seco, simplemente le faltaba cocci\xf3n).', 0.60341753799900388)
48 (u'Sin embargo, hay varias cosas para mejorar.', u'Un lugar muy recomendable, de los mejores lugares para comer en Montevideo.', 0.60206207261596578)
49 (u'Vienen acompa\xf1ados por media porci\xf2n de fritas y un platito chico de vegetales al horno.', u'El plato de vegetales al horno de barro puede compartirse entre dos.Excelente atenci\xf3n de parte del joven mozo Mat\xedas.', 0.58908708063747484)