Alice aidera les développeurs à trouver des objets dans les demandes des utilisateurs. NER dans les dialogues

Au printemps, nous avons lancé la plateforme Dialogs , qui vous permet de créer des compétences pour Alice et de reconnaître les demandes vocales des utilisateurs. Initialement, les développeurs de compétences devaient analyser eux-mêmes les requêtes. Par exemple, recherchez l'adresse dans le texte. Maintenant, la plate-forme reprend cette partie du travail.

Aujourd'hui, nous parlerons aux lecteurs Habr de la reconnaissance des entités nommées (reconnaissance d'entités nommées; NER) et de nouvelles opportunités pour les développeurs de compétences.



Nous pensons que l'avenir est avec les interfaces vocales. Déjà maintenant dans de nombreux cas, les utilisateurs préfèrent utiliser la voix plutôt qu'un clavier à l'écran. Par exemple, lorsque vous conduisez une voiture. Ou pour trouver des réponses rapides à des questions simples. Ou pour jouer dans la "ville" allongée sur le canapé. Mais pour que de tels scénarios deviennent de plus en plus, il ne suffit pas de reconnaître la voix dans le texte.

Les interfaces vocales sont similaires aux requêtes des moteurs de recherche. Nous ne comprenons pas toujours exactement comment formuler notre demande afin de trouver exactement ce dont nous avons besoin. À l'aube de la formation d'Internet, c'était un gros problème, car les moteurs de recherche ne recherchaient que les occurrences exactes des mots de la requête. Donc avec la voix. Si nous ne savons pas quelle équipe est attendue de nous, alors nous devinerons pendant longtemps.

Une bonne interface vocale ne doit pas conduire une personne dans une impasse. En règle générale, les développeurs de compétences résolvent cela avec deux astuces. Tout d'abord, les réponses attendues sont demandées à l'aide des boutons à l'écran. Il s'agit d'une bonne pratique que nous vous recommandons de ne pas ignorer.

De plus, les créateurs de compétences essaient de décomposer des questions complexes en une série de questions plus simples, dont les réponses sont plus faciles à prévoir. De plus, dans certains cas, les utilisateurs sont tenus de prononcer des mots strictement dans une certaine forme et cas. Le problème avec cette approche est qu'elle ne peut plus être appelée communication naturelle. Plus il y a de conventions et de limitations, moins le contrôle vocal diffère de l'utilisation d'un clavier et de boutons. Idéalement, l'utilisateur devrait communiquer avec le service aussi librement qu'avec une personne.

C’est bien quand l’utilisateur peut dire «Merci! Rendre l'ordre à Léon Tolstoï 16 et le remettre à Sergey Sergeyev », plutôt que de le décomposer en une série de questions sur la rue, le numéro de la maison, le nom et le prénom. Mais cela nécessitera que le développeur analyse davantage les réponses reçues. Vous pouvez le faire manuellement par l'opérateur, mais avec un grand nombre d'opérateurs, beaucoup sera nécessaire. Et les opérateurs sont peu susceptibles de le faire en temps réel, de sorte que la compétence perdra l'occasion de clarifier immédiatement les informations manquantes. Vous pouvez développer une technologie qui trouvera automatiquement des informations importantes dans le texte, les classera, les normalisera et les enregistrera. Mais c'est une tâche assez laborieuse.

Afin d'extraire efficacement des entités utiles du texte et de les classer correctement par type, le service doit avoir une expérience dans deux directions importantes. Tout d'abord, vous devez être en mesure de collecter des connaissances sur ce que sont les objets. Si vous n'avez pas Leo Tolstoy Street dans le "dictionnaire", alors lors du traitement d'une demande, il est facile de la confondre avec le nom de la personne et de la sauter. En revanche, il est tout aussi important de pouvoir retrouver ces objets en texte brut auprès de l'utilisateur. Tenez compte au minimum de la morphologie de la langue russe pour que le mot «Sergey» soit trouvé et se transforme en nom «Sergey».

Il se trouve que Yandex a beaucoup d'expérience dans ces domaines. Les technologies de recherche sont utilisées à la fois pour rechercher de nouveaux objets et pour analyser les requêtes des utilisateurs. Désormais, ces technologies sont également disponibles pour les développeurs de compétences pour Alice.

Reconnaître les entités nommées dans les boîtes de dialogue


Après qu'un utilisateur a prononcé une commande, notre plateforme reconnaît son texte et extrait des mots et des phrases qui décrivent des objets spécifiques. Actuellement, les dialogues reconnaissent:

- noms;
- indications de localisation;
- dates et heures;
- nombres entiers et fractionnaires.

Les informations sur les objets reconnus sont envoyées au serveur de compétences avec le texte de réponse de l'utilisateur. Prenons un exemple:

«Commandez une pizza sur Leo Tolstoï 16 pour Sergey Sergeyev à 22 h»

Notre plateforme sait que Leo Tolstoy n'est pas seulement une personne, mais aussi une rue. Elle tient également compte du fait que dans les adresses à côté des noms de rue, on indique souvent des numéros de maison. Par conséquent, la demande de compétence contiendra le bloc suivant:

{ "type": "YANDEX.GEO", "value": { "house_number": "16", "street": " " } } 

Les emplacements peuvent inclure non seulement la rue et la maison, mais aussi la ville, le pays ou même l'aéroport.

Avec les noms, cela fonctionne de la même manière. La plateforme peut trouver le nom, le prénom, le deuxième prénom et les amener au cas nominatif.

 { "type": "YANDEX.FIO", "value": { "first_name": "", "last_name": "" } } 

La normalisation des données est une caractéristique importante de la reconnaissance des entités nommées. Si pour les adresses et les noms, cette propriété n'est pas si évidente, alors avec les dates et les heures, tout est beaucoup plus clair. «22 h» se transforme automatiquement en «22». Demain et après-demain incrémentent explicitement les dates.

 { "type": "YANDEX.DATETIME", "value": { "hour_is_relative": false, "hour": 22 } } 

La reconnaissance des numéros ne doit pas non plus être sous-estimée. Par exemple, «quatre virgule cinq dixièmes» dans un texte d'un utilisateur se transformera en:

 { "type": "YANDEX.NUMBER", "value": 4.5 } 

Intéressé par? Nous vous invitons à la documentation . Si des questions demeurent, alors bienvenue dans notre chat en télégramme . Il est pratique de suivre les autres actualités de la plateforme sur le blog .

Source: https://habr.com/ru/post/fr425331/


All Articles