Comment analyser le langage naturel ?
Avec l’émergence des réseaux sociaux et du contenu produit par les internautes à foison, il devient difficile d’analyser les données pour en extraire des informations pertinentes.
Afin de régler ce problème nous avons intégré un worker TextRazor qui permet d’analyser tout champ texte produit dans votre application Apiloop.
1. Le modèle de données
Besoin : Je veux créer un site sur lequel n’importe qui peut poster n’importe quoi et ensuite analyser automatiquement le contenu.
Commençons par créer l’application Reddit Light
.
Créons une entité Post
qui a pour attributs title
, content
et contentAnalysis
.
2. Les permissions
Besoin : N’importe qui doit pouvoir créer et lister les posts
Créons une permission au niveau de Post
disant que les utilisateurs anonymes peuvent LIST
et une autre indiquant
qu’ils peuvent CREATE
.
3. Le workflow
Maintenant que notre modèle de données est en place et que nous avons défini les permissions, modifions le workflow.
Besoin : Analyser chaque post envoyé
Vous l’aurez compris, nous allons modifier le workflow relatif à l’action CREATE
de l’entité Post
.
Créons donc le workflow assoocié en ajoutant une étape ayant les caractéristiques suivantes :
- title : Analyze message
- order : 10
L’ordre est défini à 10 afin de laisser de la place pour une étape future avant. Et il est inférieur à 500
car cette
valeur caractéristique représente la sauvegarde en base de données.
Puis renseignons les données demandées par le worker chargé d’analyser le commentaire Analyser un texte avec TextRazor.
- apiKey : créez un compte sur TextRazor et copiez/collez votre clé API
- sourceField :
{{content}}
- destinationField :
contentAnalysis
Vous remarquez que la syntaxe du champ sourceField est particulière. Elle permet en fait d’identifier la valeur du champ
content
que nous avons défini dans le modèle dans le contexte d’execution du workflow.
Ainsi, cette syntaxe indique au workflow de substituer cette valeur avec la réelle valeur postée par l’utilisateur.
À l’inverse, le destinationField indique simplement le nom de l’attribut, sa valeur étant nulle par définition quand
on crée le Post
.
4. Le frontend
Jusqu’à présent, rien de tout ce que nous avons fait n’est visible de nos utilisateurs. Et pourtant nous avons fait beaucoup, c’est là dedans que réside toute la puissance d’Apiloop.
Rendons nous sur le dashboard de notre application afin de générer le frontend. Une fois que cela est fait, après quelques minutes, notre site est accessible via le bouton Prévisualiser. Comme nous pouvons le voir, il est relativement vide, c’est une pièce blanche.
Rendons nous dans l’onglet Personnaliser afin d’ajouter la liste des Post
.
Ajouter une fonctionnalité :
- Lister les objets
Post
- Site web
Ajouter une fonctionnalité :
- Créer un objet
Post
- Site web
Retournons dans le dashboard afin de publier notre application. Une fois le déploiement fini, prévisualisons le site à nouveau. Surprise : rien n’a changé !
En réalité si. Si vous changez l’URL dans votre navigateur en ajoutant /posts
, vous obtenez la page listant les Post
.
À nouveau si vous rajoutez /posts/new
vous obtenez le formulaire permettant de créer un post avec les champs liés
automatiquement aux attributs que nous avons défini dans le modèle de données.
5. Faisons joujou
Allons-y, n’ayons pas peur, créons un post.
Une fois que c’est fait, lorsque nous nous rendons dans notre console Apiloop, et que nous visualisons les données
nous voyons bien que le workflow a analysé le contenu de notre Post
afin d’en extraire des données.
6. Pistes d’évolution
Maintenant que nous avons mis tout cela en place, il y a de nombreuses pistes d’amélioration :
- Améliorer le frontend pour lister les
Post
directement sur la page d’accueil - Créer un bouton call to action Créer un nouveau post
- Ajouter un système d’utilisateurs
- Désactiver un
Post
lors de la création afin de le faire valider par un administrateur - Notifier l’administrateur lors de la création d’un post
- Ajouter une entité
Comment
liée auxPost
afin de permettre aux utilisateurs de commenter - Analyser les commentaires de la même façon
Et cette liste est loin d’être exhaustive.
À vous de jouer ;)
Chafik