Abrir en Google Colab
|
Descargar notebook
|
Servicios cognitivos de Análisis de Texto
¿Que son los servicios cognitivos?
Crear modelos de Análisis de Texto que tengan gran precisión y funcionen en una variedad de contextos importante no es una tarea sencilla. Requiren grandes cantidades de datos y experencia en la creación de modelos básados en Deep Learning. A medida que el procesamiento de texto se vuelve mas robusto, muchas organizaciones de tecnología han optado por empaquetar estos modelos de alta performance y ofrecerlos como servicios que las organizaciones pueden consumir directamente como un servicio web.
Azure Cognitive Services es uno de estos servicios, el cual cuenta con una API y librerias que se pueden utilizar en multiples lenguajes para ayudarnos a construir aplicaciones inteligentes sin necesidad de tener habilidades de ciencia de datos ni grandes volumenes de información.
En nuestro caso, exploraremos los servicios cognitivos de Análisis de Texto entre los cuales se encuentran:
Nombre del servicio | Descripción |
|---|---|
Análisis de sentimiento | El análisis de sentimiento permite averiguar el sentimiento de un texto analizando su contenido. |
Extracción de frases principales | Extrae automáticamente frases clave para identificar rápidamente los puntos principales. |
Detección del lenguaje | Permite la detección del lenguaje de un texto dado. |
Extración de entidades en particular | Named Entity Recognition (NER) puede identificar y clasificar diferentes entidades. |
Creación de una cuenta de servicios cognitivos en Azure
Creación de una cuenta en Azure
Hay varias alternativas para utilizar los servicios cognitivos de Azure, pero en nuestro caso crearemos una cuenta de pruebas que tendrá una duracción de 7 días para probar los servicios cognitivos. Esta metodología no requiere de una tarjeta de crédito. Si necesitaran disponer de una cuenta por mayor cantidad de tiempo, es posible crear una cuenta gratuita de Azure que dispone de acceso a los servicios en un Tier Free por 12 meses, sin embargo, este procedimiento requiere la validación del usuario por medio de una tarjeta de crédito.
Para crear una cuenta, utilicen el siguiente link: https://azure.microsoft.com/es-es/try/cognitive-services/
Luego, seleccionaremos la opción para obtener una clave del servicio de Language API:

Luego debemos indicar que tipo de cuenta utilizaremos. en nuestro caso, especificaremos una cuente de tipo Trial que durará por 7 dias desde el momento de creación:

Luego deberemos aceptar los terminos y condiciones para utilizar el servicio y finalmente iniciar sesión utilizando alguna de las opciones que están disponibles. Si no disponen de una cuenta Microsoft, pueden crearse una desde https://signup.microsoft.com y eligiendo la opción Crear una Cuenta Microsoft.
Obtener las claves de acceso a los servicios
Una vez que activamos nuestra cuenta trial, obtendremos 2 puntos de información importante:
Puntos de conexión: Es la URL que deberemos de indicar para acceder al servicio
Claves: Estas claves son el mecanismo de autenticación que utilizaremos.
Necesitaremos ambas piezas de información para continuar. Si no pueden encontrar sus claves, pueden acceder al siguiente link y debería llevarlos a una pagina similar a la siguiente donde están especificados ambos valores:

Creación de un cliente para la utilización de la API de NLP
Instalación del SDK
Instalamos las librerias del SDK junto con algunas otras que necesitaremos
[ ]:
!pip install azure-cognitiveservices-language-textanalytics
Importamos las clases con las que vamos a trabajar
[7]:
from azure.cognitiveservices.language.textanalytics import TextAnalyticsClient
from msrest.authentication import CognitiveServicesCredentials
Especificación de las credenciales para operar el servicio. Aquí deberemos utilizar las credenciales que generaron desde la página del portal de Microsoft Azure
[14]:
subscription_key = ""
endpoint = "https://westus.api.cognitive.microsoft.com"
*Noten que endpoint es la URL que obtienen desde el portal, pero sin la parte «/text»
[15]:
client = TextAnalyticsClient(endpoint=endpoint, credentials=CognitiveServicesCredentials(subscription_key))
Analisis de sentimiento
El análisis de sentimiento permite averiguar el sentimiento de un texto analizando su contenido. Esta API devuelve una puntuación entre 0 y 1 para cada documento. Las puntuaciones cercanas a 1 indican un sentimiento positivo, mientras que las puntuaciones cercanas a 0 indican un sentimiento negativo.
[16]:
documents = [{
'language': 'en',
'id': 0,
'text': "I had the best day of my life."
}, {
'language': 'en',
'id': 1,
'text': "This was a waste of my time. The speaker put me to sleep."
}, {
'language': 'es',
'id': 2,
'text': "No tengo dinero ni nada que dar..."
}, {
'language': 'fr',
'id': 3,
'text': "Comme ce n'est pas cher, je n'ai pas confiance"
}]
for document in documents:
print("Sentimiento '{}' (id: {})".format(document['text'], document['id']))
Sentimiento 'I had the best day of my life.' (id: 0)
Sentimiento 'This was a waste of my time. The speaker put me to sleep.' (id: 1)
Sentimiento 'No tengo dinero ni nada que dar...' (id: 2)
Sentimiento 'Comme ce n'est pas cher, je n'ai pas confiance' (id: 3)
[17]:
response = client.sentiment(
documents=documents
)
[18]:
for document in response.documents:
print("Sentimiento en el documento {}, puntuación es: {}:".format(document.id, document.score))
Sentimiento en el documento 0, puntuación es: 0.8668136596679688:
Sentimiento en el documento 1, puntuación es: 0.06479135155677795:
Sentimiento en el documento 2, puntuación es: 0.43635445833206177:
Sentimiento en el documento 3, puntuación es: 0.1989094614982605:
Extracción de frases importantes
Extrae automáticamente frases clave para identificar rápidamente los puntos principales. Por ejemplo, para el texto de entrada «La comida era deliciosa y el personal era maravilloso», la API devuelve los puntos principales de conversación: «comida» y «personal maravilloso».
[5]:
documents = [
{
"id": "1",
"language": "en",
"text": "My cat might need to see a veterinarian."
},
{
"id": "2",
"language": "es",
"text": "A mi me encanta el fútbol!"
}
]
[ ]:
response = client.key_phrases(documents=documents)
[ ]:
for document in response.documents:
print("ID del documento: ", document.id)
print("\tFrases clave:")
for phrase in document.key_phrases:
print("\t\t",phrase)
Abrir en Google Colab
Descargar notebook