VIDEO - COMO ES LA SEGURIDAD EN INTERNET

COMERCIO ELECTRÓNICO SEGURO

Un video que nos resume las medidas de seguridad que se deben considerar al momento de realizar transacciones electrónicas y evitar fraudes tales como phishing, hoaxes, scam, spam entre otros.



RECOMENDACIONES PARA TENER UNA BUENA EXPERIENCIA EN COMERCIO ELECTRÓNICO AL MOMENTO DE REALIZAR TRANSACCIONES

¿Qué son los hoaxes?
¿Que son los botnets?
¿Qué es el spam?
Si no reenvio este correo a 25 de mis contactos, ¿Tendré mala suerte en el amor, el trabajo y los estudios?


EVITA LAS AMENAZAS DE SEGURIDAD EN EL COMERCIO ELECTRÓNICO CON EL PAGO DE TARJETAS Y LAS ESTAFAS EN LA WEB

Encuentra más de 500 casos de estudio de marketing, administración y gestión empresarial en http://www.facebook.com/EBlogDeRaffo
Recuerda que también puedes seguirnos en twitter como @rtrucios




Te invitamos a compartir nuestros contenidos con tus colegas y así hacer crecer nuestra comunidad

Cómo Navegar Efectivamente Los Egos en el Diseño

Considera grandes maravillas de la civilización humana desde las Grandes Pirámides hasta Snapchat. Las extraordinarias hazañas de ingenio requieren visión, ambición y, sobre todo, colaboración. Y puede estar seguro de que en cualquier empresa creativa importante, abundan los egos, imagínese tratar de colaborar con figuras más grandes que la vida como Thomas Edison o Steve Jobs o Kanye West.
Los innovadores y los soñadores con grandes ideas requieren equipos de creadores posiblemente menos conocidos para hacerlos realidad. Un elemento que separa los ejemplos exitosos de los fracasos desconocidos relegados al basurero de la historia es el manejo efectivo del yo.
Al trabajar en cualquier proyecto de diseño, ya sea que tú sea el único diseñador que trabaja para un cliente o colabora en un equipo regularmente, significa poner en práctica las habilidades de tu personal. La mayoría de las personas con las que trabajarás en diseño serán jugadores de equipo dispuestos a participar, escuchar, contribuir y colaborar de manera efectiva para crear algo sorprendente. Y todos pueden tener un mal día aquí y allá — ¡todos lo hacemos!
Los emprendimientos creativos y emprendedores son provocados y avanzados por todo tipo de personajes, eso es lo que los hace interesantes, pero ¿quién no ha visto muchos proyectos prometedores obstaculizados por personalidades y actitudes inflexibles?
Las asignaciones remotas pueden ser especialmente difíciles en este sentido. Puede que trabajes solo con un único cliente, o como uno de los pocos diseñadores/desarrolladores que llevan sombreros de cada uno. Puedes estar trabajando en diferentes zonas horarias, lo que puede hacer que sea difícil realizar conferencias en tiempo real, y ralentiza el ritmo, y es posible que no tengas el lujo de contar con un gerente de proyecto dedicado para asegurarte de que todos traten el mismo carro.
Cualquiera que sea la situación, para garantizar el resultado óptimo para tu proyecto, debes equilibrar tus responsabilidades técnicas mientras juegas el papel de administrador del ego. Como diseñador, tú eres responsable de gestionarlos (y también a ti mismo) y no hay excusas para tus decisiones de diseño: el usuario es el rey, no un cliente o tu compañero de equipo.
Aprende a navegar en estas aguas difíciles con gracia y profesionalismo y crecerás como diseñador y como ser humano.

I. Comunes Egos Monstruosos

Cada proyecto es una colaboración creativa entre múltiples seres humanos que aprovechan sus habilidades y experiencia únicas para avanzar hacia la meta. Es bastante comprensible que cualquiera de estos expertos tenga una diferencia de opinión o estilo informados por su propia experiencia. La tensión creativa saludable puede unir dos o más cerebros diversos para resolver una gran solución a través del conflicto. A veces, sin embargo, personalidades fuertes pueden sacudir el barco con demasiada fuerza.
Cuidado con estos monstruos ego comunes:

EL CLIENTE REY - ¡Mi camino o la carretera!

Como profesional del diseño, es tu trabajo analizar un problema particular que necesita solución y proponer soluciones. Lo basas en tu propia experiencia para aplicarla hacia la búsqueda del diseño óptimo para presentar a tu cliente. Si bien le agradecemos los comentarios constructivos y las revisiones iterativas, esperas un nivel de confianza en tu experiencia, que ty solución y la lógica detrás de esto se considerarán cuidadosamente.
Sin embargo, de vez en cuando se encontrará con un cliente o gerente de proyecto que simplemente espera que haga lo que te dicen. Este tipo de cliente tiene una idea clara, a veces inmutable, de lo que quieren que sean los diseños y están seguros de que tienen la mejor respuesta para cada problema de diseño.
Gestión del ego de clientes que tienen grandes egos
Entonces, ¿qué importa si un amplio precedente de investigación y diseño respalda tu diseño de formulario simple?— Tu cliente sabe que los usuarios desean proporcionar información profundamente personal a través de 15 campos de formulario para suscribirse a su boletín de noticias. ¿A quién le importa si has probado una docena de diseños de UI para la aplicación móvil?— el cliente prefiere controles rotacionales en la pantalla de configuración.
Este tipo de circunstancia a menudo se denomina una situación HiPPO(Opinión de la persona con mayor remuneración), y puede ser particularmente difícil de manejar. El Cliente Rey “gobierna” un proyecto, emitiendo comentarios en forma de decretos y mandatos. Esta especie de gran monstruo del ego se ve a sí mismo como la única fuente de inspiración y se resistirá a las contrapropuestas, incluso cuando esté respaldado con datos.
Como diseñador, tu responsabilidad es entregar valor a tu cliente a través de diseños optimizados y probados. Espera ponderar las opiniones externas para mejorar tu diseño y satisfacer las necesidades comerciales del cliente al mismo tiempo. No esperas que tu cliente pelee tercamente contra tus recomendaciones porque están obsesionados con nociones preconcebidas o ideas de mascotas.
Por supuesto, quieres complacer a tu cliente, pero a veces “simplemente siguiendo órdenes” diluirá la efectividad del resultado final. Nadie quiere sentirse como un “chofer de mouse”, y esto puede ser particularmente desmoralizador para cualquier diseñador que se preocupe.

EL ALARGADOR DE SCOPE - ¡Solo una pequeña cosa más!

Nunca he trabajado en un proyecto de diseño donde el alcance o el resultado final deseado no cambió un poco aquí y allá desde el principio según lo acordado. Tal vez tu diseño necesita dar cuenta de un escenario imprevisto. Tal vez pueda mejorar una presentación de marca al representar el logotipo que diseñó simulado en una pila de tarjetas de presentación. Esa es la naturaleza del diseño.
Desafortunadamente, hay clientes y gerentes que pueden sentirse autorizados a estirar y llevar el alcance del proyecto mucho más allá de los límites razonables. Ellos deciden a tres cuartas partes del camino a través de un proyecto de marca que han cambiado de opinión y quieren empezar de cero. Solo acordó en su alcance diseñar pantallas para una aplicación iOS, pero esperan ver un conjunto separado para Android. Pueden hacer solicitudes aparentemente pequeñas aquí y allá que, antes de que te des cuenta, suman docenas de horas de trabajo extra.
Eficaz gestión de proyectos en equipos de diseño
Cuando se le solicite, un colaborador sensato probablemente se dará cuenta de que sus solicitudes están fuera del alcance y hará modificaciones, ya sea a sus expectativas o a su compensación. Pero una personalidad irracional puede reaccionar con una indignación casi justa. No creen que estén pidiendo nada fuera de lo común. Pueden declarar que ** usted ** es el que no es razonable o no coopera.
Como profesionales, existe una regla implícita para respetar el tiempo y el esfuerzo de los demás. Al definir el alcance de un proyecto desde el principio, todas las partes acuerdan un marco de expectativas razonables en el que todos harán su parte para lograr el mejor resultado. Todos queremos excedernos y superar las expectativas, pero depende de nosotros decidir qué solicitudes constituyen un puente demasiado lejos.
No debería necesitar decirle esto, pero debes tener un contrato y siempre tener un registro escrito detallado del alcance, los requisitos y los resultados. Aquí hay 10 cláusulas debe estar seguro de incluir en su acuerdo .

EL VISIONARIO - Soy el gurú

Un diseñador es parte científico, parte artista — un analista y un solucionador de problemas. Un nivel de confianza cultivada es un requisito de la profesión y los diseñadores se alistan por su experiencia creativa. Al resolver un problema de diseño, ya sea solo o en equipo, debes creer en tus propias habilidades y confiar en tu experiencia.
Hay diseñadores, sin embargo, cuyas actitudes van más allá de una buena racha de confianza. Se ven a sí mismos como el siguiente inserta-tu-gurú-del-diseño-inspiracional-aquí. Rehúsan escrutar o enmendar sus propias ideas y responder a la crítica constructiva de manera deficiente.
Diseñador con gran ego dejado de lado
En un equipo, pueden ignorar por completo los conocimientos y las contribuciones de otros diseñadores que no se alinean con los suyos. Parecen desinteresados al sopesar las sugerencias de los diseñadores “menores” que simplemente no pueden ver su genio. Tratan a los desarrolladores como “monos de código” y otros diseñadores como aficionados, lo que hace que todos se pongan gruñones.
Esta actitud es especialmente desmoralizante proveniente de un líder de equipo o director creativo. Claro, pueden tener la última palabra en la forma de los diseños finales, pero una gran parte de ser un líder es aprovechar toda la creatividad que su equipo tiene para ofrecer. Las mejores ideas no siempre vienen directamente de la parte superior.
Un gran líder de diseño tiene en cuenta diversas opiniones, así como ofrecer una crítica estratégica para facilitar el diseño. No importa el tamaño de su equipo, las opiniones de cada colaborador deben ser consideradas y escrutadas para lograr el mejor resultado. Cualquiera puede tener esa gran idea que marca la diferencia. Incluso los creativos más experimentados y celebrados pueden encontrar algo para aprender.

II. Formas de navegar por los mares de los egos

Si bien no puedes ajustar todas las malas actitudes, existen algunos métodos generales para evitar y sobrellevar una superabundancia de ego inflado.

Sobrecomunicación

Puedes sorprenderte por el poder de la transparencia y la comunicación. Ten en cuenta que no todas las personas con las que trabajas compartirán tu experiencia, conjunto de habilidades y comprensión exacta de su práctica de diseño. Deja que tus clientes sepan que el diseño de productos complejos puede requerir fases específicas de pensamiento de diseño. Si educas a tu cliente acerca de los beneficios de validar tu diseño de UX a baja fidelidad, será más receptivo y dará comentarios constructivos cuando los presente con bocetos y wireframes.
Como la diseñadora Bronwen Rees escribe en su artículo sobre Comuicación de Diseño Efectiva:
“Tener la capacidad de articular las decisiones de diseño asegura a las partes interesadas que se puede confiar y tener la experiencia necesaria para completar el trabajo. También demuestra el propósito, validando que han pensado en sus soluciones y que su enfoque es lógico. la explicación les dice a las empresas que el resultado es el resultado de la investigación del usuario, las pruebas del producto y un proceso de diseño bien pensado”.
Se explícito: guía a tus colaboradores y clientes a través de sus soluciones y ábrete a los comentarios. Evita la confusión al ser claro acerca de lo que pretende transmitir con tus diseños y es probable que reduzcas la fricción en el proceso. Mejor aún: inclúyelos en algunos de los procesos de ideación y resolución de problemas mediante la realización de talleres de diseño a distancia.

Administrar expectativas

Parte de la comunicación también es asegurarse de que todos estén en sintonía desde el primer día. Si no cuentas con la ayuda de un gerente de proyecto efectivo, depende de ti establecer el ritmo. Asegura un buen resultado con el comienzo correcto. Ten un bosquejo claro de los entregables (y se explícito sobre los niveles de fidelidad) así como las contingencias para los cambios en el alcance. Ten en claro que los entregables oportunos se basan en comentarios oportunos.
Shopify esboza algunos escollos comunes en un proyecto que pueden llevar a un aumento de alcance, así como algunas estrategias efectivas para ayudar a evitarlo. Gestionar las expectativas significa comunicarse con su cliente y su equipo sobre lo que se necesita y ser proactivo en los puntos de contacto.
También recomiendo establecer un horario de check-ins regulares y oportunidades para comentarios de los clientes. Asegúrese de que sientan que son parte del proceso, ¡porque lo son! Una mala actitud es a veces el subproducto de la inseguridad y la comunicación regular ayuda a asegurar a todas las partes que están remando en la misma dirección.

Haz un mapa

Algunas veces, los documentos de alcance estándar no son suficientes para ayudar a tu cliente o colaboradores a visualizar completamente el alcance real de tu proyecto. Una lista de requisitos basada en texto puede no cumplir el objetivo de lograr que todos estén en la misma página.
¿El sitio que está diseñando requiere una reflexión profunda sobre toda la navegación cruzada? ¿Un mapa del sistema te ayudaría y a tus desarrolladores a alinearse con el movimiento de datos a través de una aplicación compleja? ¿Estás seguro de que tú y tu cliente saben cuántas plantillas diferentes va a crear?
Herramientas de comunicación utilizadas por los equipos de diseño
Frauke Seewald ofrece una descripción completa de mapeo sistemático de wireframe, que es una gran cosa para mantener en su diseño caja de instrumento. Usar mapas visuales como estos te ayuda a evitar sorpresas desagradables en el camino, y puede hacer la diferencia entre un proyecto relativamente suave y uno que se cuelga en las rocas.

Haz una copia de seguridad con los datos

El diseño es una solución creativa de problemas. Los patrones de diseño practicados ahora están informados por precedentes de diseño validados que abarcan décadas. Hay métodos probados y verdaderos para acercarse a interfaz de usuario de navegación en dispositivos móviles. El diseño de campo de formulario es una disciplina completa por derecho propio con mejores prácticas basadas en métricas cubiertas en innumerables artículos.
Partiendo de la investigación del usuario, mejores prácticas establecidas, y datos al presentar soluciones de diseño. Lo más probable es que alguien más haya considerado un problema de diseño similar al que tiene frente a ti y pueda tener una idea de las posibles soluciones. Utiliza la investigación para validar sus suposiciones y también para que sus colaboradores confíen en los fundamentos de sus conceptos.

Sé adaptable

Incluso los proyectos más cuidadosamente planeados pueden golpear inconvenientes, y la gente puede sentirse frustrada y difícil de trabajar. ¿El proyecto chocó contra un muro con fondos u otra preocupación comercial? ¿Están presionando las presiones externas en la fecha límite? ¿El proyecto debe adaptarse a una nueva hoja de ruta? Ve lo que puede proponer para mover las cosas más rápido y lo que puede salvar que ya se ha trabajado.
Si el alcance o la dirección del proyecto cambia drásticamente, es posible que necesites reorientarse. Cuando surgen estas situaciones, considera redactar un contrato nuevo o enmendado para asegurarse de que todos estén en sintonía.

Mírate a ti mismo antes de destruirte

¡No olvides administrar tu propio ego en el diseño! Todos tenemos egos en cierta medida, necesitas creer en tu propia intuición y habilidades para trabajar en el diseño. Pero incluso los mejores de nosotros podemos sucumbir al comportamiento del monstruo del ego de vez en cuando.
Incluso los profesionales del diseño más experimentados pueden caer en cualquiera de las trampas del ego monstruo. ¿Estás empeñado en una solución en particular porque es la mejor solución al problema o simplemente porque le gusta? ¿Estás molesto con tu cliente porque se muestra obstinado y quisquilloso con respecto a algo, o has sido tú el que no ha logrado ponerlos al día y explicar tu razonamiento? ¿Estás recibiendo comentarios constructivos también personalmente?.
Cómo superar su propio ego en el diseño

Evita las reacciones emocionales

Si un cliente o colaborador se enoja, mantente calmado. Incluso los profesionales más zen pueden perder la calma una y otra vez. ¿La persona reacciona a presiones personales o profesionales sin relación alguna con el proyecto? Todos tenemos vidas fuera del trabajo que hacemos y a veces hay un cruce. Como diseñador, no es tu trabajo adivinar lo que está sucediendo en la vida de tu cliente (a menos que tenga una relación particularmente amistosa), así que asegúrate de mantener las cosas profesionales.
Una de las peores cosas que puedes hacer es enfrentar emociones con emoción. Ser reaccionario no solo no es profesional, sino que puede convertir a un tiff secundario en una tormenta destructiva. Para alivio de catarsis/comedia, recomiendo navegar Clientes del infierno. Tome una respiración profunda y un paso atrás — su actitud positiva es probable que sea contagiosa.

III. Date cuenta de cuándo abandonar la nave

A nadie le gusta decirlo, pero hay momentos en que un cliente y un equipo creativo llegan a un punto donde el barco se ha atascado y no hay un camino hacia adelante. Tal vez nadie puede ponerse de acuerdo sobre las soluciones de diseño que ha propuesto. Tal vez un actor ha cruzado la línea. De cualquier manera, se necesita un nivel de madurez profesional (y, a veces, estoicismo) para ver las señales y para comunicarse con tu cliente/colaborador de forma clara y sin emociones excesivas, que la relación ha seguido su curso.
Siempre tengo una cláusula de “muerte” en mis contratos para esta contingencia, y tú también debes hacerlo. Decida desde el principio qué debería suceder en qué etapa si el proyecto necesita ser cancelado. Delinear quién posee qué artefactos de diseño de cada fase en el proceso. Si solo llegas a la fase de boceto antes de tirar del enchufe, debes haber acordado previamente si el próximo diseñador puede usarlos o si son suyos.
Acuerda una “tarifa de muerte” para que no te encuentres en el camino de un proyecto cuando el cliente lo abandone y no quiera pagarte más allá del depósito inicial. Conocer estas cosas por adelantado ayuda a mitigar las consecuencias si las cosas van hacia el sur. El líder de diseño Mike Monteiro escribió una gran pieza sobre qué detalles incluir en tu propia cláusula de muerte.
Problema del ego en proyectos de diseño

IV. Sé un buen compañero de barco

Al final, tú eres el principal responsable de sus propias contribuciones a un proyecto. Por supuesto, eso significa entregar un diseño exitoso que sea ideal para tus clientes y tus usuarios. Más allá de eso, sin embargo, también eres responsable de tu contribución humana.
Incluso las personalidades extremadamente difíciles comienzan a suavizarse ante un profesionalismo agradable y sostenido. Una buena actitud y un enfoque positivo para trabajar con sus clientes y colaboradores son de gran ayuda. Practique la empatía y la paciencia y se sorprenderá de la cantidad de efecto que puede tener en los estados de ánimo de otras personas.

BY BREE CHAPIN - FREELANCE DESIGNER @ TOPTAL (TRANSLATED BY YESICA DANDERFER)

COMO EVITAR ROBOS O ESTAFAS POR INTERNET - Casos de estudio

En la actualidad, en mas de una oportunidad, hemos recibido un mensaje por correo electrónico, por mensajería instantánea u otro medio en el que nos comentan que AYER PASARON EN TELEVISIÓN un supuesto mensaje del director del whatsapp (ojo, no del director de Whastapp, sino del director del whatsapp) en el que nos advierte que si no reenviamos el mensaje a todos nuestros contactos, la aplicación te cobrará 0.01 euros por cada mensaje enviado... creemos que a estas alturas sabrás muy bien que a esta aplicación de mensajería instantánea no le quedan solo 543 cuentas disponibles en todo el mundo.

Por otro lado, resulta que una de las modelos mediáticas acaba de agregarte como amigo a facebook y tu, considerándote un gran prospecto decides aceptar la solicitud de amistad sin darte cuenta que acabas de darles las llaves de tu casa a un o una perfecta desconocida en el que se enterarán donde estudias, donde trabajas, que carro tienes y cuando fue que lo compraste sin dejar de mencionar que saben donde almuerzas, que comes, tus platos favoritos o cual fue la última película que viste en el cine y lo que opinas de ella.

Mucho cuidado internauta, no todo lo que lees es cierto, o realmente crees que el arroz de plástico es cierto.

No todo lo que está en internet significa que es verdad, debes buscar la fuente y validar si esta es confiable, no lo tomes a mal, pero los audios que te pasan por whatsapp diciendo que tu primo tiene un contacto en el gobierno a través del hermano del enamorado de uno de tus compañeros de la universidad que sabe que el "próximo jueves habrá terremoto" por lo que debes ir inmediatamente a los supermercados a comprar toda el agua posible.

Cuidado, las estafas estan a la orden del día y estamos seguros que los seguidores de EL BLOG DE RAFFO no van a caer.

Por ello, te dejamos un entretenido video de las precauciones que debes tener en cuenta para tal fin.


Y pensar que hay personas que siguen reenviando esto:

Hola, soy Rafael Trucíos el nuevo director del whatsapp, este mensaje es para informarles la entrevista que me hicieron ayer en canal 11 luego de la repetición de HABLA EL PUEBLO en la que comento via skype a todos nuestros usuarios que sólo nos quedan 230 cuentas disponibles (hace una semana eran 540) para nuevos teléfonos, y que nuestros servidores han estado recientemente muy congestionados, por lo que estamos pidiendo su ayuda para solucionar este problema. 
Necesitamos que nuestros usuarios activos reenvien este mensaje a cada una de las personas de su lista de contactos a fin de confirmar nuestros usuarios activos que utilizan WhatsApp, si usted no envía este mensaje a todos sus contactos de WhatsApp, entonces su cuenta permanecerá inactiva con la consecuencia de perder todos sus contactos. El símbolo de actualización automática en su SmartPhone, aparecera con la transmisión de este mensaje. Su SmartPhone se actualizará dentro de las 24 horas siguientes, contará con un nuevo diseño, un nuevo color para el chat y su icono pasará de ser verde a azul eléctrico con la misma tonalidad de facebook. Whatsapp pasará a tarifa de pago a menos que seas un usuario frecuente, lo mismo pasará con MySpace y Hi5. Si tienes al menos 10 contactos envía este sms y el logotipo se convertirá en rojo para indicar que eres un usuario frecuente. Mañana empiezan a cobrar los mensajes por whatsapp a 0.01 euros. Recuerda que asi no tengamos tu numero de tarjeta de credito te cobraremos, por lo que es necesario publiques en facebook si deseas que uno de nuestros asesores comerciales te visite o que te hagan el cargo junto con el pago mensual de tu cuenta de Netflix o Brazzers.

Reenvia este mensaje a mas de 9 personas de tus contactos y te será gratuito de por vida fíjate y se pondrá azul la pelotita de arriba.☑® Mándalo a todos tus contacto para que se actualicé la aplicación ✅ Whatsapp esta regalando 88000 MB DE INTERNET y 0.25 bitcons DE CREDITO - Envia este mensaje a 15 contactos y checa tu saldo
Para mayor informacón visita http://rafaeltrucios.blogspot.pe


Encuentra más de 500 casos de estudio de marketing, administración y gestión empresarial en http://www.facebook.com/EBlogDeRaffo
Recuerda que también puedes seguirnos en twitter como @rtrucios




Te invitamos a compartir nuestros contenidos con tus colegas y así hacer crecer nuestra comunidad

Cómo Crear un Bot de Análisis de Sentimientos de Correo Electrónico: Un Tutorial de NLP

Las tecnologías de procesamiento del lenguaje natural se han vuelto bastante sofisticadas en los últimos años. Desde gigantes tecnológicos hasta aficionados, muchos se apresuran a construir interfaces ricas que puedan analizar, comprender y responder al lenguaje natural. La Alexa de Amazon, la Cortana de Microsoft, la Google Home de Google y la Siri de Apple apuntan a cambiar la forma en que interactuamos con las computadoras.
El análisis del sentimiento, un subcampo del procesamiento del lenguaje natural, consiste en técnicas que determinan el tono de un texto o discurso. Hoy en día, con el aprendizaje automático y la gran cantidad de datos recopilados de las redes sociales y los sitios de revisión, podemos entrenar modelos para identificar el sentimiento de un pasaje en lenguaje natural con una precisión razonable.
Tutorial de Análisis de Sentimiento de Bots de Emails
En este tutorial, aprenderá cómo puede crear un bot que pueda analizar el sentimiento de los correos electrónicos que recibe y notificarle sobre los correos electrónicos que pueden requerir su atención de inmediato.

Análisis del sentimiento en correos electrónicos

El bot se construirá usando una mezcla de Java y Python. Los dos procesos se comunicarán entre ellos usando Thrift. Si no está familiarizado con uno o ambos idiomas, puede seguir leyendo ya que los conceptos fundamentales de este artículo también se aplicarán a otros idiomas.
Para determinar si un correo electrónico necesita su atención, el bot lo analizará y determinará si hay un fuerte tono negativo. Luego enviará una alerta de texto si es necesario.
Usaremos Sendgrid para conectarnos a nuestro buzón de correo y Twilio enviará alertas de texto. ## Análisis de sentimiento: un problema engañosamente simple
Hay palabras que asociamos con emociones positivas, como el amor, la alegría y el placer. Y, hay palabras que asociamos con emociones negativas, como el odio, la tristeza y el dolor. ¿Por qué no entrenar al modelo para reconocer estas palabras y contar la frecuencia relativa y la fuerza de cada palabra positiva y negativa?
Bueno, hay un par de problemas con eso.
Primero, hay un problema de negación. Por ejemplo, una oración como “El melocotón no es malo” implica una emoción positiva usando una palabra que a menudo asociamos con ser negativo. Un modelo simple de bolsa de palabras no podrá reconocer la negación en esta oración.
Además, los sentimientos mixtos demuestran ser otro problema con el análisis ingenuo de sentimientos. Por ejemplo, una oración como “El melocotón no es malo, pero la manzana es realmente terrible” contiene sentimientos mixtos de intensidades mixtas que interactúan entre sí. Un enfoque simple no podrá resolver los sentimientos combinados, la intensidad diferente o las interacciones entre los sentimientos.

Análisis de sentimiento mediante la red recursiva del tensor neuronal

La biblioteca Stanford Natural Language Processing para el análisis del sentimiento resuelve estos problemas usando una Red de tensor neuronal recursivo (RNTN).
RNTN en una oración
El algoritmo RNTN primero divide una oración en palabras individuales. Luego construye una red neuronal donde los nodos son las palabras individuales. Finalmente, se agrega una capa de tensor para que el modelo pueda ajustar adecuadamente las interacciones entre las palabras y frases.
Puede encontrar una demostración visual del algoritmo en su sitio web oficial.
El grupo Stanford NLP entrenó a la Red Recursiva del Tensor Neural usando evaluaciones de películas IMDB etiquetadas manualmente y descubrió que su modelo es capaz de predecir el sentimiento con muy buena precisión.

Bot que recibe correos electrónicos

Lo primero que debes hacer es configurar la integración del correo electrónico para que los datos puedan transferirse a tu bot.
Hay muchas maneras de lograr esto, pero por simplicidad, configuremos un servidor web simple y use el enganche de análisis de entrada de Sendgrid para canalizar correos electrónicos al servidor. Podemos reenviar correos electrónicos a la dirección de análisis entrante de Sendgrid. Sendgrid enviará una solicitud POST a nuestro servidor web, y luego podremos procesar los datos a través de nuestro servidor.
Para construir el servidor, usaremos Flask, un marco web simple para Python.
Además de construir el servidor web, querremos conectar el servicio web a un dominio. Para abreviar, omitiremos escribir sobre esto en el artículo. Sin embargo, puedes leer más sobre esto aquí.
Crear un servidor web en Flask es increíblemente simple.
Simplemente crea un app.py y agrégalo al archivo:
from flask import Flask, request
import datetime
 
app = Flask(__name__)
 
@app.route('/analyze', methods=['POST'])
def analyze():
    with open('logfile.txt', 'a') as fp_log:
        fp_log.write('endpoint hit %s \n' % datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'))
    return "Got it"
 
app.run(host='0.0.0.0')
Si implementamos esta aplicación detrás de un nombre de dominio y pulsamos el punto final “/analizar”, debería ver algo como esto:
>>> requests.post ('http://sentiments.shanglunwang.com:5000/analyze') .text
'Lo tengo'

A continuación, queremos enviar correos electrónicos a este punto final.
Puede encontrar más documentación aquí pero básicamente desea configurar Sendgrid para que sea su procesador de correo electrónico y que Sendgrid reenvíe los correos electrónicos a nuestro Servidor web.
Aquí está mi configuración en Sendgrid. Esto reenviará correos electrónicos a @sentibot.shanglunwang.com como solicitudes POST a “http://sentiments.shanglunwang.com/analyze”:
Configuración de SendGrid
Puedes usar cualquier otro servicio que admita el envío de correos entrantes a través de webhooks.
Después de configurar todo, intenta enviar un correo electrónico a tu dirección SendGrid. Deberías ver algo como esto en los registros:
endpoint hit 2017-05-25 14:35:46
¡Eso es genial! Ahora tienes un bot que puede recibir correos electrónicos. Eso es la mitad de lo que estamos tratando de hacer.
Ahora, deseas darle a este bot la capacidad de analizar sentimientos en correos electrónicos.

Email Sentiment Analysis con Stanford NLP

Dado que la biblioteca Stanford NLP está escrita en Java, querremos construir el motor de análisis en Java.
Comencemos descargando la biblioteca y los modelos de PNL de Stanford en Maven. Crea un nuevo proyecto Java, agrega lo siguiente a sus dependencias Maven e importe:
<dependency>
   <groupId>edu.stanford.nlp</groupId>
   <artifactId>stanford-corenlp</artifactId>
   <version>3.6.0</version>
</dependency>
Se puede acceder al motor de análisis de sentimiento de Stanford NLP especificando el anotador de sentimiento en el código de inicialización de la tubería. La anotación se puede recuperar como una estructura de árbol.
Para los fines de este tutorial, solo queremos saber el sentimiento general de una oración, por lo que no será necesario analizar el árbol. Solo tenemos que mirar el nodo base.
Esto hace que el código principal sea relativamente simple:
package seanwang;
import edu.stanford.nlp.pipeline.*;
import edu.stanford.nlp.util.CoreMap;
import edu.stanford.nlp.ling.CoreAnnotations;
import edu.stanford.nlp.sentiment.SentimentCoreAnnotations;
 
 
import java.util.*;
 
public class App
{
    public static void main( String[] args )
    {
        Properties pipelineProps = new Properties();
        Properties tokenizerProps = new Properties();
        pipelineProps.setProperty("annotators", "parse, sentiment");
        pipelineProps.setProperty("parse.binaryTrees", "true");
        pipelineProps.setProperty("enforceRequirements", "false");
        tokenizerProps.setProperty("annotators", "tokenize ssplit");
        StanfordCoreNLP tokenizer = new StanfordCoreNLP(tokenizerProps);
        StanfordCoreNLP pipeline = new StanfordCoreNLP(pipelineProps);
        String line = "Los amigos hermosos increíblemente agradecidos están cumpliendo un logro increíblemente alegre. ¡Qué idea verdaderamente terrible!";
        Annotation annotation = tokenizer.process(line);
        pipeline.annotate(annotation);
        // normal output
        for (CoreMap sentence : annotation.get(CoreAnnotations.SentencesAnnotation.class)) {
            String output = sentence.get(SentimentCoreAnnotations.SentimentClass.class);
            System.out.println(output);
        }
    }
}
Prueba algunas oraciones y deberías ver las anotaciones apropiadas. Ejecutando los resultados del código de ejemplo:
Muy positivo
Negativo

Integrando el Bot y el Motor de Análisis

Así que tenemos un programa analizador de sentimientos escrito en Java y un bot de correo electrónico escrito en Python. ¿Cómo hacemos que hablen entre ellos?
Hay muchas soluciones posibles para este problema, pero aquí utilizaremos Thrift. Activaremos el Analizador de Sentimientos como un servidor Thrift y el bot de correo electrónico como un cliente Thrift.
Thrift es un generador de código y un protocolo utilizado para habilitar dos aplicaciones, a menudo escritas en diferentes idiomas, para poder comunicarse entre sí utilizando un protocolo definido. Los equipos de Polyglot usan Thrift para construir redes de microservicios para aprovechar lo mejor de cada idioma que usan.
Para usar Thrift, necesitaremos dos cosas: un archivo .thrift para definir los puntos finales del servicio y un código generado para hacer uso del protocolo definido en el archivo.proto. Para el servicio analizador, el sentiment.thrift se ve así:
namespace java sentiment
namespace py sentiment
 
service SentimentAnalysisService
{
        string sentimentAnalyze(1:string sentence),
}
Podemos generar código de cliente y servidor utilizando este archivo .thrift. Corre:
thrift-0.10.0.exe --gen py sentiment.thrift
thrift-0.10.0.exe --gen java sentiment.thrift
Nota: genere el código en una máquina con Windows. Deberá utilizar la ruta adecuada al ejecutable Thrift en su entorno.
Ahora, hagamos los cambios apropiados en el motor de análisis para crear un servidor. Su programa Java debería verse así:
SentimentHandler.java
package seanwang;
 
public class SentimentHandler implements SentimentAnalysisService.Iface {
    SentimentAnalyzer analyzer;
    SentimentHandler() {
        analyzer = new SentimentAnalyzer();
    }
 
    public String sentimentAnalyze(String sentence) {
        System.out.println("got: " + sentence);
        return analyzer.analyze(sentence);
    }
 
}
Este manejador es donde recibimos la solicitud de análisis sobre el protocolo Thrift.
SentimentAnalyzer.java
package seanwang;
 
// ...
 
public class SentimentAnalyzer {
    StanfordCoreNLP tokenizer;
    StanfordCoreNLP pipeline;
 
    public SentimentAnalyzer() {
        Properties pipelineProps = new Properties();
        Properties tokenizerProps = new Properties();
        pipelineProps.setProperty("annotators", "parse, sentiment");
        pipelineProps.setProperty("parse.binaryTrees", "true");
        pipelineProps.setProperty("enforceRequirements", "false");
        tokenizerProps.setProperty("annotators", "tokenize ssplit");
        tokenizer = new StanfordCoreNLP(tokenizerProps);
        pipeline = new StanfordCoreNLP(pipelineProps);
    }
 
    public String analyze(String line) {
        Annotation annotation = tokenizer.process(line);
        pipeline.annotate(annotation);
        String output = "";
        for (CoreMap sentence : annotation.get(CoreAnnotations.SentencesAnnotation.class)) {
            output += sentence.get(SentimentCoreAnnotations.SentimentClass.class);
            output += "\n";
        }
        return output;
    }
}
El analizador utiliza la biblioteca de PNL de Stanford para determinar el sentimiento del texto y produce una cadena que contiene las anotaciones de sentimiento para cada oración en el texto.
SentimentServer.java
package seanwang;
 
// ...
 
public class SentimentServer {
    public static SentimentHandler handler;
 
    public static SentimentAnalysisService.Processor processor;
 
    public static void main(String [] args) {
        try {
            handler = new SentimentHandler();
            processor = new SentimentAnalysisService.Processor(handler);
 
            Runnable simple = new Runnable() {
                public void run() {
                    simple(processor);
                }
            };
 
            new Thread(simple).start();
        } catch (Exception x) {
            x.printStackTrace();
        }
    }
 
    public static void simple(SentimentAnalysisService.Processor processor) {
        try {
            TServerTransport serverTransport = new TServerSocket(9090);
            TServer server = new TSimpleServer(new Args(serverTransport).processor(processor));
 
            System.out.println("Starting the simple server...");
            server.serve();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
Ten en cuenta que no incluí el archivo SentimentAnalysisService.java aquí porque es un archivo generado. Deberás poner el código generado en un lugar donde el resto de tu código puedas acceder a él.
Ahora que tenemos el servidor activo, escribamos un cliente de Python para usar el servidor.
client.py
from sentiment import SentimentAnalysisService
from thrift.transport import TSocket
from thrift.transport import TTransport
from thrift.protocol import TBinaryProtocol
 
class SentimentClient:
    def __init__(self, server='localhost', socket=9090):
        transport = TSocket.TSocket(server, socket)
        transport = TTransport.TBufferedTransport(transport)
        protocol = TBinaryProtocol.TBinaryProtocol(transport)
        self.transport = transport
        self.client = SentimentAnalysisService.Client(protocol)
        self.transport.open()
 
    def __del__(self):
        self.transport.close()
 
    def analyze(self, sentence):
        return self.client.sentimentAnalyze(sentence)
 
if __name__ == '__main__':
    client = SentimentClient()
    print(client.analyze('An amazingly wonderful sentence'))
Ejecuta esto y deberías ver:
Muy positivo
¡Estupendo! Ahora que tenemos el servidor ejecutándose y hablando con el cliente, integrámoslo con el robot de correo electrónico instanciando un cliente y conectándolo al correo electrónico.
import client
 
# ...
 
@app.route('/analyze', methods=['POST'])
def analyze():
    sentiment_client = client.SentimentClient()
    with open('logfile.txt', 'a') as fp_log:
        fp_log.write(str(request.form.get('text')))
        fp_log.write(request.form.get('text'))
        fp_log.write(sentiment_client.analyze(request.form.get('text')))
    return "Got it"
Ahora despliega tu servicio Java en la misma máquina donde estás ejecutando el servidor web, inicia el servicio y reinicia la aplicación. Envía un correo electrónico al bot con una oración de prueba y deberías ver algo como esto en el archivo de registro:
Increíblemente maravillosamente positiva y hermosa frase.
Muy positivo

Analizando el correo electrónico

¡Todo bien! ¡Ahora tenemos un bot de correo electrónico que puede realizar análisis de opinión! Podemos enviar un correo electrónico y recibir una etiqueta de opinión para cada oración que enviamos. Ahora, exploremos cómo podemos hacer que la inteligencia sea procesable.
Para mantener las cosas simples, centrémonos en los correos electrónicos donde hay una alta concentración de oraciones negativas y muy negativas. Usemos un sistema de puntuación simple y digamos que si un correo electrónico contiene más del 75% de oraciones de sentimiento negativo, lo marcaremos como un posible correo electrónico de alarma que puede requerir una respuesta inmediata. Implementemos la lógica de puntuación en la ruta de análisis:
@app.route('/analyze', methods=['POST'])
def analyze():
    text = str(request.form.get('text'))
    sentiment_client = client.SentimentClient()
    text.replace('\n', '')  # remove all new lines
    sentences = text.rstrip('.').split('.')  # remove the last period before splitting
    negative_sentences = [
        sentence for sentence in sentences
        if sentiment_client.analyze(sentence).rstrip() in ['Negative', 'Very negative']  # remove newline char
    ]
    urgent = len(negative_sentences) / len(sentences) > 0.75
    with open('logfile.txt', 'a') as fp_log:
        fp_log.write("Received: %s" % (request.form.get('text')))
        fp_log.write("urgent = %s" % (str(urgent)))
 
    return "Got it"
El código anterior hace algunas suposiciones, pero funcionará con fines de demostración. Envía un par de correos electrónicos a tu bot y deberías ver el análisis del correo electrónico en los registros:
Recibido: Aquí hay una prueba para el sistema. Se supone que es una solicitud no urgente.
¡Es muy bueno! En su mayor parte esto es positivo o neutral. Grandes cosas
están sucediendo!
urgente = Falso
 
Recibido: esta es una solicitud urgente. Todo es realmente horrible Esto es un desastre.
La gente odia este correo insípido.
urgente = True

Envío de una alerta

¡Ya casi hemos terminado!
Hemos creado un bot de correo electrónico que puede recibir correos electrónicos, realizar análisis de sentimientos y determinar si un correo electrónico requiere atención inmediata. Ahora, solo tenemos que enviar una alerta de texto cuando un correo electrónico es particularmente negativo.
Utilizaremos Twilio para enviar una alerta de texto. Su API de Python, que está documentada aquí, es bastante sencilla. Modifiquemos la ruta de análisis para enviar una solicitud cuando reciba una solicitud urgente.
def send_message(body):
    twilio_client.messages.create(
        to=on_call,
        from_=os.getenv('TWILIO_PHONE_NUMBER'),
        body=body
    )
 
app = Flask(__name__)
 
 
@app.route('/analyze', methods=['POST'])
def analyze():
    text = str(request.form.get('text'))
    sentiment_client = client.SentimentClient()
    text.replace('\n', '')  # remove all new lines
    sentences = text.rstrip('.').split('.')  # remove the last period before splitting
    negative_sentences = [
        sentence for sentence in sentences
        if sentiment_client.analyze(sentence).rstrip() in ['Negative', 'Very negative']  # remove newline char
    ]
    urgent = len(negative_sentences) / len(sentences) > 0.75
    if urgent:
        send_message('Highly negative email received. Please take action')
    with open('logfile.txt', 'a') as fp_log:
        fp_log.write("Received: " % request.form.get('text'))
        fp_log.write("urgent = %s" % (str(urgent)))
        fp_log.write("\n")
 
    return "Got it"
Deberás configurar las variables de entorno en sus credenciales de cuenta de Twilio y establecer el número de llamada en un teléfono que pueda verificar. Una vez que hayas hecho eso, envía un correo electrónico al punto final del análisis y verás un mensaje de texto enviado al número de teléfono en cuestión.
¡Y terminamos!

Procesamiento de lenguaje natural simplificado con Stanford NLP

En este artículo, aprendiste a construir un bot de análisis de sentimiento de correo electrónico utilizando la biblioteca Stanford NLP. La biblioteca ayuda a abstraer todos los detalles esenciales del procesamiento del lenguaje natural y te permite usarlo como un bloque de construcción para sus aplicaciones NLP.
Espero que esta publicación haya demostrado una de las muchas aplicaciones potenciales increíbles del análisis de sentimientos, y que esto te inspire a crear tu propia aplicación PNL.
Fuente:

BY SHANGLUN WANG - DEVELOPER @ TOPTAL (TRANSLATED BY YESICA DANDERFER)

Síguenos en Google +

El Blog de Raffo recomienda