Cómo llama Python a la API de análisis de entidades de Google
Introducción
Todos hemos utilizado tarjetas de visita en algún momento. Sin embargo, si hay una gran cantidad de tarjetas de visita, será complicado administrarlas. Por ello, en el caso de este artículo, propongo un método para gestionar tarjetas de visita.
Aquí, primero tomé una foto de cada tarjeta de presentación con mi teléfono y seguí el siguiente proceso:
Obtener la imagen de la tarjeta de presentación y entregársela a nuestra aplicación para extraer los nombres de las personas. nombres de empresas, direcciones y otra información. Aquí, utilicé la API de Google Vision y la API de lenguaje natural porque son fáciles de usar y funcionan bien.
Escribo aplicaciones en Python para llamar a la API de Google Vision y a la API de lenguaje natural.
Pasos de creación
Paso 0: Preparación
Paso 1: Reconocer texto usando la API de Google Vision
Paso 2 Paso: Usar lenguaje natural API para extraer el nombre de la persona, el nombre de la empresa y la información de la dirección
Paso 3: integrar los pasos 1 y 2
Paso 0: preparar
Antes de comenzar a escribir la aplicación , debemos instalar las librerías necesarias, descargar la configuración y configurar la clave API. Puede configurar una clave API de Google a través de este enlace.
Instalar la biblioteca de clases
Ejecute la línea de comando para instalar la biblioteca de clases.
Solicitudes de instalación de $ pip
$ pip install pyyaml
Descargue la fuente del software
Aquí he preparado la fuente del software con anticipación. También puedes descargarlo desde el siguiente enlace.
Descargar
Establecer clave API
Escriba la clave API de Google en el archivo de configuración (plugins/config/google.yaml).
Primero, abre google.yaml y reemplaza xxx con tu clave API. token: xxx
Paso 1 Utilice la API de Google Vision para reconocer texto
Introducción a la API de Vision
Basándose en un potente modelo de aprendizaje automático, la API de Google Vision tiene la siguientes funciones:
Clasificación de imágenes (como "lancha rápida", "león", "Torre Eiffel", etc.)
Reconocimiento facial
Reconocimiento de texto
Identificación del logotipo
Identificación de puntos de referencia
Identificación de búsqueda segura
La API de Vision tiene 1000 solicitudes gratuitas por mes.
Escribir el script
Aquí escribiremos un script de Python que utiliza la API Vision. Guarde el siguiente código como plugins/apis/vision.py. Aquí usaremos la codificación UTF-8.
# -*- codificación: utf-8 -*-
importar base64
solicitudes de importación
def detect_text(image_file, access_token=Ninguno):
con open (image_file, 'rb') como imagen:
base64_image = base64.b64encode(image.read()).decode()
url = 'hogleapis .com/v1/images:annotate? key={}'.format(access_token)
header = {'Content-Type': 'application/json'}
body = {
'solicitudes': {
'imagen': {
'contenido': base64_image,
},
'características': {
'tipo': 'TEXT_DETECTION',
'maxResults': 1,
}]
}]
}]
}
respuesta = solicitudes.post(url, encabezados=encabezado, json=cuerpo).json()
texto = respuesta['respuestas'][0]['textAnnotations'][0][' descripción'] if len(respuesta['respuestas'][0]) gt; /p>
devolver texto
En la función detect_text, podemos obtener la información de texto en el archivo de imagen
¿Ejecutar el script?
Primero, mueva el archivo de secuencia de comandos a la carpeta "complementos/pruebas". Ya contiene un archivo test_vision.py. En test_vision.py, escriba un caso de prueba que llame a la función detect_text. Si se ejecuta correctamente podremos obtener la información del texto en la imagen.
Utilice la tarjeta de presentación example_en.png que aparece a continuación como entrada y ejecute el script.
$ python test_vision.py data/example_en.png
SalidaJohn Smith.
Capsule Corporation
217-767-8187
1332 Spring Street Elwin Illinois
Paso 2 Utilice API de lenguaje natural para extraer el nombre de la persona, el nombre de la empresa y la información de dirección
Introducción a la API de lenguaje natural
¿API de lenguaje natural? API de lenguaje para La forma de API REST proporciona un potente modelo de aprendizaje automático para identificar la estructura del texto y su significado.
Reconocimiento de entidades (como nombre personal, nombre de organización, información de eventos, etc.)
Análisis semántico (sentimiento en reseñas de productos, opiniones de clientes, etc.)
Análisis de sintaxis
Vision API es una API gratuita de API de lenguaje natural que se puede solicitar 5000 veces por mes y se utiliza para extraer información sobre personas, empresas y direcciones. La API Vision viene con 5000 solicitudes gratuitas por mes.
Ejecutar el script
Del mismo modo, escribimos un script de Python para llamar a la API de lenguaje natural. Guarde el script como plugins/apis/language.py. Tenga en cuenta el uso de codificación UTF-8.
# -*- codificación: utf-8 -*-
solicitudes de importación
def extract_entities(text, access_token=None):
url = 'htoogleapis. com/v1beta1 /documents:analyzeEntities?key={}'.format(access_token)
header = {'Content-Type': 'application/json'}
body = {
"documento": {
"tipo": "PLAIN_TEXT",
"idioma": "ES",
" content": texto
},
"encodingType": "UTF8"
}
respuesta = request.post(url, headers=header, json=body).json()
devolver respuesta
def extract_required_entities(text, access_token=None):
entidades = extract_entities(texto , access_token)
require_entities = {'ORGANIZACIÓN': '', 'PERSON': '', ' UBICACIÓN': ''}
para entidad en entidad['entidades'] :
t = entidad['tipo']
si t en entidades_requeridas:
entidades_requeridas['nombre'] = entidad['tipo'].t ] = entidad['nombre']
Devuelve entidades_requeridas
Al pasar datos de texto y clave API como parámetros a la función extract_entities, puede extraer información de entidad diferente. Todo lo que necesitamos es el nombre de la empresa, el nombre personal y la ubicación. La función extract_required_entities? se utiliza para filtrar el contenido requerido.
Ejecute el script
Además, mueva el archivo del script a la carpeta plugins/tests. Veremos un archivo test_language.py. En test_language.py, escriba un caso de prueba que llame a la función extract_required_entities.
Aquí ejecuto el script utilizando el archivo de texto example_en.txt preparado como entrada. El archivo de texto example_en.txt contiene el resultado del paso anterior.
$ python test_language.py data/example.txt
Salida{'UBICACIÓN': 'Spring Street Elwin Illinois', 'PERSONA': 'John Smith', 'ORGANIZACIÓN': 'Capsule Corporation'} p>
Paso 3 Integrar los pasos 1 y 2 I
Finalmente, escribiremos otro script para integrar la API de visión y la API de lenguaje natural.
Escribir scripts
Escribir scripts para integrar Vision API y Natural Language API. Guárdelo como ?plugins/apis/integration.py. Aquí usaremos la codificación UTF-8. # -*- codificación: utf-8 -*-
from .language import extract_required_entities
from .vision import detect_text
def extract_entities_from_img(img_path, access_token ):
text = detect_text(img_path, access_token)
entidades = extract_required_entities(text, access_token)
devolver entidades
Por la ruta del archivo de imagen y la clave API se ingresan como parámetros para ?extract_entities_from_img?
Ejecutar el script
Primero, mueva el archivo del script a la carpeta complementos/pruebas. Ya contiene un archivo test_integration.py. En test_integration.py, escriba una prueba que llame a extract_entities_from_img.
Ejecute el script con el archivo de imagen example_en.png como datos de entrada. $ python test_integration.py data/example_en.png
Salida{'UBICACIÓN': 'Spring Street Elwin Illinois', 'PERSONA': 'John Smith', 'ORGANIZACIÓN': 'Capsule Corporation'} p>
Conclusión
Arriba hemos escrito una aplicación sencilla que utiliza la API de Google Vision y la API de lenguaje natural para extraer información de tarjetas de presentación. Sin embargo, este es sólo un prototipo simple y lo mejoraré más adelante para hacerlo más completo.