fbpx

Natural Language de Google

Éste es el primer artículo que escribo sobre Machine Learning, y concretamente sobre una herramienta novedosa que nos ofrece el gran señor Google para analizar texto masivo. Se llama Natural Language de Google.

Natural Language es una herramienta para analizar el sentimiento, el lenguaje y las frases que contiene cualquier tipo de texto. Cuando hablo de texto me refiero a PDFs, comentarios o posts en redes sociales. ¿Para qué me podría servir esto a mí?. Te pongo un ejemplo:

“Eres una persona influenciable en el sector que te dedicas y tienes una cuenta en tu red social de Instagram con 10mil seguidores. Cada vez que subes una nueva publicación, tienes más de 1.000 comentarios que no eres capaz de leer ni de atender a sus peticiones. Sin embargo, estás muy interesado/a en saber la opinión de tus seguidores y el sentimiento de lo que están comentándote. En este caso, con Natural Language de Google, eres capa< de tener una lista de “entidades” (o sustantivos) que se hablan más en tus publicaciones e incluso puedes obtener una nota sobre lo positivo o negativo que son los comentarios.”

Sin embargo, la única pega es que lo puedes hacer únicamente a través de la API de Natural Language de Google. Sin embargo y si estás leyendo este artículo en mi web, es que algo te gusta sobre la parte técnica por tanto no sería ningún problema.

Utilizar Natural Language con Python

Vas a ver de primera mano, cómo utilizar la API de Natural Language con Python. Voy a obviar los pasos de instalación de Python y crear credenciales en Google Cloud Platform, aunque sí te voy a dejar unos enlaces para que te sea más fácil conseguirlo: instalación Python con Anaconda, crear prueba gratuita Google Cloud Platform y crear credenciales para Natural Language.

Nos descargamos los paquetes necesarios para conectarnos a la API de Google Cloud.

pip install --upgrade google-cloud-language

Una vez descargadas las librerias, debemos configurar la variable de entorno GOOGLE_APPLICATION_CREDENTIALS para que contenga la ruta de nuestro fichero de credenciales .json. Las librerías de Google Cloud para python utilizan esta variable de entorno para obtener el fchero .json descargado del apartado de Credenciales de GCP (Google Cloud Platform) y así poder autentificarse cuando hagamos una llamada a cualquier función de la API.

Entonces, en nuestro código empezaremos importando las librerías que necesitaremos para conectarnos a la API.

from google.cloud import language
from google.cloud.language import enums
from google.cloud.language import types

Seguidamente los conectaremos al servicio de Natural Language.

client = language.LanguageServiceClient()

La variable client contiene la instancia de la API de Natural Language. Con ella utilizaremos las funciones para analizar nuestro texto. Como ejemplo práctico, inicializaremos una variable de texto con una frase simple para que veáis el funcionamiento. Luego si quiéres, puedes probar con un texto más extenso a tu elección.

text = u'Hello world! I am happy'
doc = types.Document(
        content=text,
        type=enums.Document.Type.PLAIN_TEXT)

sentiment = client.analyze_sentiment(document=doc).document_sentiment

En la variable sentiment tenemos la puntuación de sentimiento que ha calculado el algoritmo de Natural Language de Google. Este “sentimiento” consta de 2 variables:

  • Puntuación. Nos devuelve un número con decimales entre -1 y 1, indicando -1 un sentimiento muy negativo y 1 un sentimiento muy positivo.
  • Magnitud. Nos devuelve un número con decimales entre 0 y infinito. Esta variable no se normaliza, cada expresión de emoción en el texto contribuye en la magnitud. Sirve mucho para comparaciones de textos con similar longitud o evoluciones del mismo (ejemplo: cómo evoluciona la magnitud de los comentarios de tu red social).
print('Sentiment: {}, {}'.format(sentiment.score, sentiment.magnitude))
Sentiment: 0.5, 1.100000023841858

Así como vemos en los resultados, tenemos una puntuación de 0,5 lo que indica cierto positivismo y una magnitud baja de 1,1 debido a que hay poco texto en este ejemplo.

El ejemplo utilizado en el vídeo es con datos cogidos de posts Reddit mediante su API. Te recomiendo que le eches un vistazo para ver lo que se puede llegar a hacer con esta herramienta.

Futuros proyectos

Ya para finalizar, esta herramienta es sólo la punta del iceberg de lo que se puede hacer con el módulo de Natural Language de Google. Este módulo también integra la herramienta llamada AutoML ya más enfocada a Machine Learning con la que puedes entrenar modelos creados por Google con tu set de datos de texto ya marcados con una puntuación. Escribiré un artículo sobre AutoML para entrar en más profundidad.

Aparte de analizar y tener un algoritmo ML entrenado en base a mis datos, ¿para qué más me puede servir?. Para generar contenido de texto adaptado a tu audiencia. Si sabes los temas que más hablan y sabes qué opinión tienen de ellos, puedes saber qué texto les va a gustar y qué texto no. Te aporta un gran abanico de posibilidades inimaginables.

Espero que te haya gustado esta aportación, cualquier comentario o duda que tengas, no dudes en dejarla aquí abajo.

11 comentarios

Deja un comentario