Extrayons des informations d'une carte de visite en combinant l'API Cloud Vision et l'API Natural Language. Je vais le faire en utilisant Python pour utiliser l'API.
Cliquez ici pour l'article précédent:
Donnez une image de carte de visite et créez une application qui extrait le nom, le nom de l'entreprise et l'adresse. L'image ressemble à ceci:
Étape 0: Préparez-vous à créer une application ↓ Étape 1: détecter le texte à l'aide de l'API Vision ↓ Étape 2: Extraire les noms et les noms d'entreprises à l'aide de l'API Natural Language ↓ Étape 3: Intégrez les deux API pour extraire les informations de la carte de visite
Pour créer une application, installez les bibliothèques nécessaires, téléchargez le référentiel et définissez la clé API.
Installez les bibliothèques nécessaires pour créer l'application. Exécutez la commande suivante pour installer.
$ pip install requests
$ pip install pyyaml
J'ai créé le modèle de l'application à l'avance. Si vous remplissez les parties nécessaires, cela fonctionnera, veuillez donc télécharger le référentiel pour cela à partir de ce qui suit.
Vous pouvez le télécharger à partir de «Télécharger ZIP» de «Cloner ou télécharger».
Décrivez la clé API obtenue par Google Cloud Platform dans le fichier de paramètres (plugins / config / google.yaml). Ouvrez google.yaml dans votre éditeur et remplacez la valeur du jeton par la valeur de la clé de votre API Google Cloud Platform. Veuillez réécrire la partie de ** xxx **.
google.yaml
token: xxx
Cette section décrit d'abord l'API Vision. Après cela, écrivez un script pour utiliser l'API. Après l'écriture, exécutez le script pour vérifier l'opération. Commençons par l'explication de l'API.
L'API Google Cloud Vision exploite la puissance de puissants modèles d'apprentissage automatique pour permettre le développement d'applications capables de reconnaître et de comprendre le contenu des images. L'API Cloud Vision présente les fonctionnalités suivantes:
C'est difficile à comprendre avec des mots seuls, alors essayons-le. Visitez la page Web ci-dessous pour essayer la démo.
Bien qu'il s'agisse d'un système de facturation, vous pouvez l'utiliser gratuitement jusqu'à 1000 demandes. Après cela, vous serez facturé en fonction du nombre de demandes.
Écrivez un script pour utiliser l'API Vision. L'emplacement du script est ** plugins / apis / vision.py **. Ouvrez vision.py dans l'éditeur et réécrivez le contenu comme suit. Veuillez enregistrer après réécriture. Dans ce cas, veuillez utiliser UTF8 comme code de caractère.
vision.py
# -*- coding: utf-8 -*-
import base64
import requests
def detect_text(image_file, access_token=None):
with open(image_file, 'rb') as image:
base64_image = base64.b64encode(image.read()).decode()
url = 'https://vision.googleapis.com/v1/images:annotate?key={}'.format(access_token)
header = {'Content-Type': 'application/json'}
body = {
'requests': [{
'image': {
'content': base64_image,
},
'features': [{
'type': 'TEXT_DETECTION',
'maxResults': 1,
}]
}]
}
response = requests.post(url, headers=header, json=body).json()
text = response['responses'][0]['textAnnotations'][0]['description'] if len(response['responses'][0]) > 0 else ''
return text
En donnant le chemin et la clé API du fichier image à ** detect_text **, le texte du fichier image sera détecté, extrait et renvoyé. Exécutons-le pour vérifier l'opération.
Exécutons le script que nous avons écrit plus tôt. Tout d'abord, allez dans le dossier ** plugins / tests **. Pouvez-vous voir que test_vision.py s'y trouve? Dans test_vision.py, il est spécifié d'appeler ** detect_text ** du script écrit précédemment. En d'autres termes, s'il fonctionne correctement, il doit renvoyer le texte de l'image lorsque vous le donnez.
Faisons le. Donnez example.png dans le dossier de données et exécutez.
$ python test_vision.py data/example.png > result.txt
Avez-vous obtenu la chaîne suivante à la suite de l'exécution?
Kintone Co., Ltd.
Premier département des ventes du siège de Tokyo
Cai Ai Zutaro
23-4567
1 Nihonbashi Tenjikucho, Tokyo-2-3
Tel: 00-1234-5678
E-mail: [email protected]
义
Cette section décrit d'abord l'API Natural Language. Après cela, écrivez un script pour utiliser l'API. Après l'écriture, exécutez le script pour vérifier l'opération. Commençons par l'explication de l'API.
L'API Google Cloud Natural Language est une API REST facile à utiliser qui applique un modèle d'apprentissage automatique puissant pour reconnaître la structure et la signification du texte. L'API Natural Language possède les fonctionnalités suivantes:
C'est difficile à comprendre avec des mots seuls, alors essayons-le. Visitez la page Web ci-dessous pour essayer la démo.
Bien qu'il s'agisse d'un système de facturation, vous pouvez l'utiliser gratuitement jusqu'à 5000 demandes. Après cela, vous serez facturé en fonction du nombre de demandes.
Écrivez un script pour utiliser l'API Natural Language. L'emplacement du script est ** plugins / apis / language.py **. Ouvrez language.py dans l'éditeur et réécrivez le contenu comme suit. Veuillez enregistrer après réécriture. Dans ce cas, veuillez utiliser UTF8 comme code de caractère.
language.py
# -*- coding: utf-8 -*-
import requests
def extract_entities(text, access_token=None):
url = 'https://language.googleapis.com/v1beta1/documents:analyzeEntities?key={}'.format(access_token)
header = {'Content-Type': 'application/json'}
body = {
"document": {
"type": "PLAIN_TEXT",
"language": "JA",
"content": text
},
"encodingType": "UTF8"
}
response = requests.post(url, headers=header, json=body).json()
return response
def extract_required_entities(text, access_token=None):
entities = extract_entities(text, access_token)
required_entities = {'ORGANIZATION': '', 'PERSON': '', 'LOCATION': ''}
for entity in entities['entities']:
t = entity['type']
if t in required_entities:
required_entities[t] += entity['name']
return required_entities
En donnant du texte ** extract_entities ** et une clé API, vous pouvez extraire diverses expressions uniques. Cependant, cette fois, seuls ** nom de l'entreprise **, ** nom de la personne ** et ** emplacement ** sont extraits du texte. ** extract_required_entities ** est utilisé pour extraire ces informations.
Exécutons-le pour vérifier l'opération.
Exécutons le script que nous avons écrit plus tôt. Tout d'abord, allez dans le dossier ** plugins / tests **. Pouvez-vous voir que test_language.py s'y trouve? test_language.py spécifie d'appeler ** extract_required_entities ** du script que j'ai écrit plus tôt. En d'autres termes, si cela fonctionne correctement, lorsque vous donnez un texte, il doit renvoyer le nom de l'entreprise, le nom de la personne et l'emplacement dans le texte.
Faisons le. Donnez example.txt dans le dossier de données et exécutez. Le résultat de la reconnaissance de caractères mentionné précédemment est inclus dans example.txt.
$ python test_language.py data/example.txt > result.txt
Avez-vous obtenu la chaîne suivante à la suite de l'exécution?
{'PERSON': 'Cai Ai Zutaro', 'LOCATION': '1 Nihonbashi Tenjikucho, Tokyo-2-3', 'ORGANIZATION': 'Kintone Co., Ltd.'}
Enfin, j'écrirai un script pour combiner l'API Vision et l'API Natural Language que j'ai écrit jusqu'à présent. Après l'écriture, exécutez le script pour vérifier l'opération. Commençons par écrire le script.
Écrivez un script pour combiner l'API Vision et l'API Natural Language. L'emplacement du script est ** plugins / apis / integration.py **. Ouvrez integration.py dans un éditeur et réécrivez le contenu comme suit. Veuillez enregistrer après réécriture. Dans ce cas, veuillez utiliser UTF8 comme code de caractère.
integration.py
# -*- coding: 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)
entities = extract_required_entities(text, access_token)
return entities
En donnant le chemin et la clé API du fichier image à ** extract_entities_from_img **, il reconnaîtra et renverra le nom de l'entreprise et le nom de la personne dans le fichier image. Exécutons-le pour vérifier l'opération.
Maintenant, exécutons le script. Tout d'abord, allez dans le dossier ** plugins / tests **. Pouvez-vous voir que test_integration.py s'y trouve? test_integration.py spécifie d'appeler ** extract_entities_from_img ** du script que j'ai écrit plus tôt. En d'autres termes, si cela fonctionne correctement, lorsque vous donnez une image, elle doit renvoyer le nom de l'entreprise, etc. dans l'image.
Faisons le. Donnez example.png dans le dossier de données et exécutez.
$ python test_integration.py data/example.png > result.txt
Avez-vous obtenu la chaîne suivante à la suite de l'exécution?
{'PERSON': 'Cai Ai Zutaro', 'LOCATION': '1 Nihonbashi Tenjikucho, Tokyo-2-3', 'ORGANIZATION': 'Kintone Co., Ltd.'}
Comment était-ce. J'ai essayé de gérer le développement en utilisant l'API Vision et l'API Natural Language, mais je pense que vous pourriez ressentir diverses possibilités en connectant les deux.
Ensuite, combinez les applications que vous avez créées jusqu'à présent avec Slack afin de pouvoir télécharger des images de cartes de visite sur Slack et les enregistrer dans kintone. Veuillez passer à l'article suivant.
Le contenu de cette pratique est résumé dans trois articles.
Veuillez vous préparer à l'avance à partir de l'article suivant.