Travailler une technique SEO avec Tensorflow

Travailler une technique SEO avec Tensorflow

Développé par des ingénieurs affectés à l’équipe Google Brain au sein de la division Intelligence Artificielle de Google, TensorFlow est un framework open source (depuis 2015) dédié au machine learning. Il figure parmi les outils les plus utilisés dans le domaine de l’apprentissage automatique.

Pour être plus évocateur, j’aurai pu introduire le titre de l’article avec le verbe « automatiser » plutôt que « travailler » mais je vais ici vous présenter un exemple applicatif de la reconnaissance d’images et de vidéos pour le SEO. Comme vous vous en doutez certainement, l’objectif ici est de viser l’automatisation (ou semi-automatisation, nous verrons qu’un traitement humain demeure nécessaire) de l’optimisation des fichiers images et des vidéos (ndlr. sur YouTube).

Installer TensorFlow

TensorFlow peut être installé de différentes façons mais dans notre cas, nous l’installons via la fonction native $pip.

On considère ainsi que Python est installé sur votre machine mais, si besoin, je peux vous aider dans l’installation (il suffit simplement de me le demander dans un commentaire :)).

$ pip install tensorflow

Une fois l’installation terminée, il nous faut installer les librairies nécessaires :

$pip install Cython
$pip install pillow
$pip install lxml
$pip install jupyter
$pip install matplotlib

Il faut ensuite télécharger l’archive Github « models » de Tensorflow.

On doit ensuite installer la librairie Protobuf (développé par Google, et utilisé notamment pour les communications inter-machines en interne. Les messages sont sérialisés au format binaire). On télécharge l’archive « protoc« , version 3.4.0.

Les archives doivent être affichées dans le même dossier :

Archives TensorFlow

On entre ensuite la commande suivante :

export PATH=$PATH:/Users/aliceroussel/Desktop/videorecognition/protoc/bin

Toujours dans le terminal, on se place dans le dossier « research » :

cd /research

protoc object_detection/protos/*.proto –python_out=.

Ensuite, il faut récupérer le notebook « object_detection_tutorial.ipnyb » (je vous le partage via mon Drive), et remplacer le notebook existant qui se trouve dans le répertoire :

videorecognition/models/research/object_detection/

L’installation est désormais terminée 🙂

Lorsque j’ai effectué l’installation pour la première fois, il était nécessaire d’utiliser une version antérieure de TensorFlow pour que cela fonctionne mais désormais, cela fonctionne avec la version 1.8.

Reconnaissance d’images

On entre désormais dans le vif du sujet avec, comme première étape, la reconnaissance d’images.

On lance la commande suivante :

jupyter notebook

Puis on ouvre le notebook qui nous intéresse :

Jupyter NotebookOn exécute ensuite toutes les sections jusqu’à « Détection ». Elles sont nécessaires pour l’importation des librairies et la préparation du modèle de reconnaissance d’objet fourni.

Section détectionEnsuite, vous devez indiquer dans le répertoire /videorecognition/models/research/object_detection/test_images/ les images que vous souhaitez analyser. Pour ma part, j’ai choisi une image issue d’une fiche produit Sézanne (exemple intéressant lorsque l’objectif est d’automatiser l’optimisation des attributs ALT et des légendes des fichiers images sur un site ecommerce).

Image recognition

Sur le résultat ci-dessus, on note que seule la personne est reconnue (à 81,4%). Evidemment, le modèle ne s’arrête pas là (autrement, notre objectif ne serait pas atteint) mais permet en effet d’identifier d’autres éléments. Dans le cas présent, c’est le type de vêtement porté par la personne qui nous intéresserait. Pour avoir fait le test avec une chaise, le modèle parvient à la classifier en tant que « fauteuil de barbier ». On peut noter la précision de l’identification (en l’occurrence la longue traine associée).

Chaise

Identification chaise

Reconnaissance de vidéos

L’objectif ici serait de générer un descriptif de la vidéo, complète ou non, afin de travailler le référencement de la vidéo sur YouTube. On peut aussi imaginer combiner cette fonctionnalité à la reconnaissance vocale afin, par exemple, de générer un fichier de sous-titres. Pour l’illustration, j’ai choisi une vidéo issue du tournoi de Roland-Garros avec mon joueur de tennis favori : Roger Federer. 🙂

On exécute donc la section suivante, en prenant soin d’indiquer le chemin vers la vidéo :

# mp4 format
cap = cv2.VideoCapture(‘/Users/aliceroussel/Desktop/tennis.mp4’)

La fonctionnalité est encore perfectible mais cela est un bon début, et il faudrait travailler une base d’apprentissage spécifique à un type de vidéos ou d’images afin de parfaire l’optimisation des images et des vidéos.

Tennis reconnaissance vidéo

Enfin, on peut également activer la reconnaissance vidéo via la webcam (pour ce faire, il suffit de mettre en commentaire le chemin vers la vidéo). Là aussi, le modèle est perfectible et on note un temps de latence entre l’apparition d’un objet (une bouteille d’eau par exemple) et son identification. Ci-dessous le test avec mon Jack Russell :

Webcam recognition

On peut également utiliser cette fonctionnalité au travers du Vision Kit de Google, disponible chez Target.

Dans un prochain article, nous évoquerons cette fois l’automatisation complète de l’analyse des entités et des sentiments au travers de la construction d’un crawler « maison », le tout en Python. Nous verrons notamment comment exporter les résultats au format .xlsx. C’est évidemment le point le plus important puisque c’est lui qui permet, au final, la semi-automatisation du procédé.

Cet article a été rédigé avec la collaboration de Pierre Lopez, actuellement en stage au sein de mon équipe SEO en tant que Data Scientist spécialisé dans le Natural Language Processing.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Up Next:

Analyse de logs : orienter efficacement ses actions SEO

Analyse de logs : orienter efficacement ses actions SEO