Share via


Modifier le schéma linguistique de la fonctionnalité Questions et réponses et ajouter des formulations dans Power BI Desktop

Utiliser des phrases courantes et un langage naturel pour poser des questions sur vos données, c’est fort. C’est encore plus puissant lorsque vos données répondent. Quand vous posez une question dans Questions et réponses, cet outil essaie de vous donner la meilleure réponse possible. Vous pouvez modifier le schéma linguistique pour améliorer les réponses de Questions et Réponses afin d’obtenir des interactions encore meilleures.

Tout commence par vos données d’entreprise. La qualité du modèle de données et la qualité des réponses obtenues par les utilisateurs sont étroitement liées. Un moyen d’améliorer le modèle est d’ajouter un schéma linguistique qui définit et catégorise la terminologie ainsi que les relations entre les noms de table et de colonne dans votre jeu de données. Vous gérez vos schémas linguistiques dans Power BI Desktop.

Le processus Questions et réponses a deux facettes. La première représente la préparation, c’est-à-dire la modélisation. La seconde est la consommation, qui consiste à poser des questions et à explorer les données. Dans certaines entreprises, ce sont les modélisateurs de données ou les administrateurs informatiques qui assemblent les jeux de données, créent les modèles de données et publient les jeux de données sur Power BI. Les autres employés utilisent, ou « consomment », les données en ligne. Dans d’autres entreprises, les employés peuvent combiner tous ces rôles.

Cet article s’adresse aux modélisateurs de données, auxquels il incombe d’optimiser les jeux de données pour fournir les meilleurs résultats possibles de Questions et réponses.

Qu’est-ce qu’un schéma linguistique ?

Un schéma linguistique décrit les termes et les expressions que l’outil Questions et réponses doit comprendre pour reconnaître les objets dans un jeu de données, y compris les catégories grammaticales, les synonymes et les formulations. Quand vous importez un jeu de données ou que vous vous y connectez, Power BI crée un schéma linguistique basé sur la structure du jeu de données. Lorsque vous posez une question à l’aide de l’outil Questions et réponses, celui-ci recherche les correspondances et les relations dans les données pour déterminer l’intention de votre question. Par exemple, il recherche les substantifs, verbes, adjectifs, formulations et autres éléments en rapport avec la question. Il regarde également les relations existantes entre ces éléments, par exemple, quelles colonnes sont définies comme objets d’un verbe.

Vous connaissez probablement déjà les catégories grammaticales mais les formulations pourraient être un nouveau concept. Une formulation est la façon dont vous décrivez (ou formulez) les relations entre des éléments. Par exemple, pour décrire la relation entre les clients et les produits, vous pouvez dire « les clients achètent des produits ». Ou, pour décrire la relation entre les clients et l’âge, vous pouvez dire « l’âge indique l’ancienneté des clients ». Ou encore, pour décrire la relation entre des clients et des numéros de téléphone, vous pouvez dire « des clients ont des numéros de téléphone ».

Ces formulations revêtent diverses formes et tailles. Certaines correspondent directement à des relations décrites dans le modèle de données. Certaines lient les colonnes avec les tables qui les contiennent. D’autres lient plusieurs tables et colonnes entre elles dans des relations complexes. Dans tous les cas, elles décrivent des relations à l’aide de termes courants.

Les schémas linguistiques sont enregistrés dans un format .yaml. Ce format est similaire au format JSON répandu, mais sa syntaxe est plus flexible et plus facilement lisible. Les schémas linguistiques peuvent être modifiés, exportés et importés dans Power BI Desktop.

Prérequis

Configurer un éditeur pour les fichiers .yaml

Nous vous recommandons d’utiliser Visual Studio Code pour modifier des fichiers .yaml de schéma linguistique. Visual Studio Code offre une prise en charge directe des fichiers .yaml et peut être installé avec une extension de validation spécifique du format des schémas linguistiques Power BI.

  1. Installez Visual Studio Code.

  2. Cliquez avec le bouton droit sur le fichier .yaml dans l’exemple de schéma linguistique que vous avez enregistré précédemment : QnALinguisticSchema.zip.

  3. Sélectionnez Ouvrir avec>Choisir une autre application.

  4. Sélectionnez Visual Studio Code, puis Toujours.

    Screenshot of the dialog that shows a list of programs to open the file. Visual Studio Code and Always are highlighted.

Dans Visual Studio Code, installez l’extension YAML Support by Red Hat.

  1. Sélectionnez l’onglet Extensions (dernier onglet dans le menu gauche) ou appuyez sur Ctrl+Maj+X.
    Screenshot of the left menu in Visual Studio Code with the Extensions icon highlighted.
  2. Recherchez « yaml » et sélectionnez YAML Support by Red Hat dans la liste.
  3. Sélectionnez Installer > Recharger.

Utiliser des schémas linguistiques

Il existe deux façons de travailler avec des schémas linguistiques. L’une consiste à modifier, importer et exporter le fichier .yaml à partir du ruban dans Power BI Desktop. Cette méthode est traitée dans l’article Présentation des outils Questions et réponses dans Power BI. Vous n’avez pas besoin d’ouvrir le fichier .yaml pour améliorer Questions et réponses.

L’autre façon de modifier un schéma linguistique consiste à exporter et modifier directement le fichier .yaml. Quand vous modifiez le fichier .yaml d’un schéma linguistique, vous marquez les colonnes de la table en tant qu’éléments grammaticaux différents, et vous définissez les mots qu’un collègue est susceptible d’employer pour formuler une question. Par exemple, vous indiquez les colonnes qui sont le sujet et l’objet du verbe. Vous ajoutez d’autres mots que vos collègues peuvent utiliser pour faire référence aux tables, colonnes et mesures dans votre modèle.

Screenshot of a sample linguistic schema .yaml file.

Avant de pouvoir modifier un schéma linguistique, vous devez l’ouvrir (l’exporter) à partir de Power BI Desktop. L’enregistrement du fichier .yaml au même emplacement est considéré comme une importation. Vous pouvez également importer d’autres fichiers .yaml à la place. Si, par exemple, vous avez un jeu de données similaire pour lequel vous avez déjà passé du temps à ajouter des catégories grammaticales, identifier les différentes relations, créer des formulations et ajouter des synonymes, vous pouvez utiliser ce fichier .yaml dans un autre fichier Power BI Desktop.

Questions et réponses combine toutes ces informations et les éventuelles améliorations apportées afin de fournir une meilleure réponse, des suggestions automatiques et un récapitulatif des questions.

Modifier un schéma linguistique

Quand vous exportez un schéma linguistique pour la première fois à partir de Power BI Desktop, la plus grande partie ou la totalité du contenu du fichier est automatiquement générée par le moteur Questions et réponses. Ces entités générées, les mots (synonymes), les relations et les formulations sont désignés avec une étiquette State: Generated. Ils sont inclus dans le fichier principalement à titre informatif, mais peuvent constituer un point de départ utile pour vos propres modifications.

Notes

L’exemple de fichier .yaml fourni dans ce tutoriel ne contient pas les balises State:Generated (État : Généré) et State:Deleted (État : Supprimé), car il a été spécialement préparé pour les besoins de ce tutoriel. Pour voir ces balises, ouvrez un fichier .pbix non modifié dans la vue Relations et exportez le schéma linguistique.

Screenshot of a sample .yaml file showing State: Generated.

Quand vous réimportez votre fichier de schéma linguistique dans Power BI Desktop, tous les éléments qui sont marqués State: Generated sont ignorés, puis regénérés ultérieurement. Par conséquent, si vous souhaitez modifier du contenu généré, supprimez l’étiquette State: Generated correspondante. De la même façon, pour supprimer un contenu généré, remplacez l’étiquette State:Generated par State: Deleted afin d’empêcher la regénération du contenu au moment de l’importation du fichier de schéma linguistique.

Exporter, puis importer un fichier .yaml

  1. Dans Power BI Desktop, ouvrez le jeu de données dans la vue Modèle.

  2. Sous l’onglet Modélisation, sélectionnez Schéma linguistique>Exporter un schéma linguistique.

  3. Enregistrez-le. Le nom de fichier se termine par. lsdl.yaml.

  4. Ouvrez-le dans Visual Code ou un autre éditeur.

  5. Dans la vue Modèle dans Power BI Desktop, sous l’onglet Modélisation, sélectionnez Schéma linguistique>Importer.

  6. Accédez à l’emplacement où vous avez enregistré le fichier .yaml modifié et sélectionnez ce fichier. Un message de réussite s’affiche pour confirmer l’importation du fichier .yaml de schéma linguistique.

    Screenshot of the successful import dialog.

Formulations dans le schéma linguistique

Une formulation est la façon dont vous décrivez (ou formulez) les relations entre des éléments. Par exemple, pour décrire la relation entre les clients et les produits, vous pouvez dire « les clients achètent des produits ».

D’où les formulations proviennent-elles ?

Power BI ajoute automatiquement au schéma linguistique de nombreuses formulations simples basées sur la structure du modèle, et des suppositions basées sur les noms de colonne. Par exemple :

  • La plupart des colonnes se rapportent à leur table contenante avec une formulation simple telle que « les produits ont des descriptions ».
  • Les relations du modèle sont à l’origine de formulations par défaut pour les deux sens de la relation, telles que « les commandes ont des produits » et « les produits ont des commandes ».
  • Sur la base de leurs noms de colonne, certaines relations de modèle peuvent avoir une formulation par défaut plus complexe, comme « les commandes sont expédiées aux villes ».

Cependant, vos utilisateurs parlent parfois des choses d’une façon que Questions et réponses ne peut pas deviner. Par conséquent, vous pourriez ajouter manuellement vos propres formulations.

Pourquoi ajouter des formulations ?

En premier lieu, vous ajoutez une formulation quand vous avez besoin de définir un nouveau terme. Par exemple, si vous souhaitez pouvoir demander la « liste des clients les plus anciens », vous devez d’abord apprendre la signification du terme « ancien » à l’outil Questions et réponses. Pour cela, vous ajoutez une formulation comme « l’âge indique l’ancienneté des clients ».

En deuxième lieu, l’ajout d’une formulation vous permet de lever une ambiguïté. La recherche par mot clé simple fonctionne uniquement quand les mots n’ont qu’une seule signification. Par exemple, « vols vers Toulouse » n’est pas la même chose que « vols à partir de Toulouse ». Mais Questions et réponses ne fait pas la distinction entre les deux formulations, sauf si vous ajoutez les formulations « les vols sont vers les villes d’arrivée » et « les vols sont à partir des villes de départ ». De même, Questions et réponses peut faire la distinction entre « voitures vendues à Marie par David » et « voitures achetées à Marie par David » seulement si vous ajoutez les formulations « les clients achètent des voitures aux employés » et « les employés vendent des voitures aux clients ».

La dernière raison qui justifie l’ajout d’une formulation est l’amélioration des reformulations. Si vous posez la question « Afficher les clients et leurs produits », il serait plus juste que l’outil Questions et réponses lise « Afficher les clients et les produits qu’ils ont achetés » ou « Afficher les clients et les produits qu’ils ont essayés », selon le sens que Questions et réponses a donné à la question. L’ajout de formulations personnalisées permet de rendre les reformulations plus explicites et sans ambiguïté.

Types de formulations

Pour vous aider à comprendre les différents types de formulations, voici un rappel de quelques notions grammaticales simples :

  • Un substantif (ou nom) désigne une personne, un lieu ou une chose. Exemples : voiture, adolescent, Coralie, condensateur
  • Un verbe désigne une action ou un état. Exemples : éclore, éclaté, dévorer, éjecter
  • Un adjectif est un mot descriptif qui modifie un substantif. Exemples : puissant, magique, doré, volé
  • Une préposition est un mot placé devant un substantif pour associer ce dernier à un substantif, verbe ou adjectif précédent. Exemples : de, pour, à côté de, à partir de.
  • Un attribut qualifie ou caractérise quelque chose.
  • Un nom est un mot ou groupe de mots par lequel une personne, un animal, un lieu ou une chose est connu ou appelé.

Formulations attributives (Attribute)

Les formulations attributives sont le cheval de bataille de Questions et Réponses. Elles sont utilisées quand une chose agit comme un attribut d’une autre. Simples et précises, elles font le gros du travail quand vous n’avez défini aucune formulation plus subtile et détaillée. Les formulations attributives sont décrites à l’aide du verbe de base « avoir » (« les produits ont des catégories » et « les pays/régions hôtes ont des villes hôtes »). De plus, elles permettent automatiquement les questions avec les prépositions « de » et « pour » (« catégories de produits » ou « commandes pour des produits ») et les expressions possessives (« commandes de David »). Les formulations attributives sont utilisées dans les genres de questions suivantes :

  • Quels clients ont passé des commandes ?
  • Répertorier les villes hôtes par ordre croissant de pays/région
  • Afficher les commandes avec du chai
  • Répertorier les clients avec des commandes
  • Quelle est la catégorie de chaque produit ?
  • Afficher le nombre de commandes de Gilbert Bonsaint

Power BI génère la plupart des formulations attributives nécessaires dans votre modèle en fonction du contenu des tables ou des colonnes et des relations du modèle. En règle générale, vous n’avez pas besoin de les créer vous-même. Voici un exemple illustrant une formulation attributive dans le schéma linguistique :

product_has_category:
  Binding: {Table: Products}
  Phrasings:
  - Attribute: {Subject: product, Object: product.category}

Formulations Nom

Les formulations nominales sont utiles si votre modèle de données comporte une table contenant des objets nommés, tels que des noms d’athlètes ou des noms de clients. Par exemple, la formulation « les noms de produits sont les noms donnés aux produits » est essentielle pour pouvoir utiliser des noms de produits dans les questions. Une formulation nominale permet également d’utiliser « nommé » comme un verbe (par exemple, « Répertorier les clients nommés Christophe Beaulieu »). Toutefois, elles sont particulièrement importantes quand elles sont utilisées en combinaison avec d’autres formulations. Elles permettent d’utiliser une valeur de nom pour faire référence à une ligne de table particulière. Par exemple, dans « Clients qui ont acheté du chai », Questions et réponses comprend que la valeur « chai » fait référence à la ligne entière dans la table des produits, et pas seulement à une valeur particulière dans la colonne du nom de produit. Les formulations nominales sont utilisées dans les genres de questions suivantes :

  • Quels employés sont nommés Gilbert Bonsaint ?
  • Qui est la personne nommée Thomas Margand ?
  • Sports Fernand De Montigny
  • Nombre d’athlètes nommées Marie
  • Qu’a acheté Gilbert Bonsaint ?

Si vous avez utilisé une convention de nommage judicieuse pour les colonnes de noms dans votre modèle (par exemple, « Nom » ou « NomProduit » plutôt que « NmPrd »), Power BI génère automatiquement la majorité des formulations nominales nécessaires dans votre modèle. En règle générale, vous n’avez pas besoin de les créer vous-même.

Voici un exemple de formulation nominale dans un schéma linguistique :

employee_has_name:
  Binding: {Table: Employees}
  Phrasings:
  - Name:
      Subject: employee
      Name: employee.name

Formulations adjectivales

Les formulations adjectivales définissent de nouveaux adjectifs utilisés pour décrire des éléments dans votre modèle. Par exemple, la formulation « les clients satisfaits sont les clients avec une évaluation > 6 » est nécessaire pour pouvoir poser des questions comme « répertorier les clients satisfaits à Bordeaux ». Il existe plusieurs formes de formulations adjectivales à utiliser dans différentes situations.

Les formulations adjectivales simples définissent un nouvel adjectif basé sur une condition, par exemple, « les produits qui ne sont plus disponibles sont les produits dont l’état = D ». Les formulations adjectivales simples sont utilisées dans les genres de questions suivantes :

  • Quels produits ne sont plus disponibles ?
  • Liste des produits qui ne sont plus disponibles
  • Répertorier les médaillés d’or
  • Produits en cours de réapprovisionnement

Voici un exemple illustrant une formulation adjectivale simple dans le schéma linguistique :

product_is_discontinued :

Binding: {Table: Products}
  Conditions:
  - Target: product.discontinued
    Operator: Equals
    Value: true
  Phrasings:
  - Adjective:
      Subject: product
      Adjectives: [discontinued]

Les formulations adjectivales de mesure définissent un nouvel adjectif basé sur une valeur numérique qui indique l’étendue d’application de l’adjectif, comme dans « les longueurs indiquent de combien les rivières sont longues » et « les petites régions ont une petite superficie ». Des formulations adjectivales de mesure sont utilisées dans ces types de questions :

  • Répertorier les rivières longues
  • Quelles sont les rivières les plus longues ?
  • Lister les plus petites régions qui ont gagné une médaille d’or au basket
  • Quelle est la longueur de la Loire ?

Voici un exemple illustrant une formulation adjectivale de mesure dans le schéma linguistique :

river_has_length :

Binding: {Table: Rivers}
 Phrasings:
 - Adjective:
     Subject: river
     Adjectives: [long]
     Antonyms: [short]
     Measurement: river.length

Les formulations adjectivales dynamiques définissent un ensemble de nouveaux adjectifs basés sur les valeurs d’une colonne dans le modèle, comme « les couleurs caractérisent les produits » et « les événements ont une catégorie de genre ». Des formulations adjectivales dynamiques sont utilisées dans ces types de questions :

  • Répertorier les produits rouges
  • Quels produits sont verts ?
  • Afficher les événements de patinage féminin
  • Dénombrer les problèmes actifs

Voici un exemple illustrant une formulation adjectivale dynamique dans le schéma linguistique :

product_has_color :

Binding: {Table: Products}
  Phrasings:
  - DynamicAdjective:
      Subject: product
      Adjective: product.color

Formulations substantivales (Noun)

Les formulations substantivales définissent de nouveaux substantifs qui décrivent des sous-ensembles d’éléments dans votre modèle. Elles incluent souvent un type de mesure ou condition propre au modèle. Par exemple, dans notre modèle, nous pourrions ajouter des formulations pour différencier les champions et les médaillés, les sports terrestres et les sports aquatiques, les équipes et les individus, ou les catégories d’âge des athlètes (juniors, adultes, seniors). Dans notre base de données de films, nous pourrions ajouter des formulations substantivales comme « les échecs sont les films avec un bénéfice < 0 » afin de pouvoir poser des questions telles que « dénombrer les échecs par an ». Il existe deux formes de formulations substantivales, destinées à différentes situations.

Les formulations substantivales simples définissent un nouveau nom basé sur une condition, comme « les contractuels sont des employés où la valeur temps complet = false » et « un champion est un athlète ayant un nombre de médailles > 5 ». Des formulations substantivales simples sont utilisées dans ces types de questions :

  • Quels sont les employés qui sont contractuels ?
  • Dénombrer les contractuels à Strasbourg
  • Nombre de champions en 2016

Voici un exemple illustrant une formulation substantivale simple dans le schéma linguistique :

employee_is_contractor :

Binding: {Table: Employees}
  Conditions:
  - Target: employee.full_time
    Operator: Equals
    Value: false
  Phrasings:
  - Noun:
      Subject: employee
      Nouns: [contractor]

Les formulations substantivales dynamiques définissent un ensemble de nouveaux substantifs basés sur les valeurs d’une colonne dans le modèle, comme « les postes définissent les groupes d’employés ». Les formulations substantivales dynamiques sont utilisées dans les genres de questions suivantes :

  • Répertorier les caissiers à Toulouse
  • Quels employés sont serveurs ?
  • Répertorier les arbitres en 1992

Voici un exemple illustrant une formulation substantivale dynamique dans le schéma linguistique :
employee_has_job :

Binding: {Table: Employees}
 Phrasings:
 - DynamicNoun:
     Subject: employee
     Noun: employee.job

Formulations prépositionnelles (Preposition)

Les formulations prépositionnelles servent à décrire de quelle manière les éléments dans votre modèle sont liés entre eux par des prépositions. Par exemple, la formulation « les villes sont dans des pays/régions » améliore la compréhension de questions telles que « dénombrer les villes en Occitanie ». Certaines formulations prépositionnelles sont créées automatiquement quand une colonne est reconnue comme entité géographique. Les formulations prépositionnelles sont utilisées dans les genres de questions suivantes :

  • Dénombrer les clients à Paris
  • Répertorier les livres de linguistique
  • De quelle ville est Gilbert Bonsaint ?
  • Combien de livres Stephen Pinker a-t-il écrit ?

Voici un exemple illustrant une formulation prépositionnelle simple dans le schéma linguistique :
customers_are_in_cities :

Binding: {Table: Customers}
 Phrasings:
 - Preposition:
     Subject: customer
     Prepositions: [in]
     Object: customer.city

Formulations verbales

Les formulations verbales servent à décrire de quelle manière les éléments dans votre modèle sont liés entre eux par des verbes. Par exemple, la formulation « les clients achètent des produits » améliore la compréhension de questions telles que « qui a acheté du fromage ? » et « qu’a acheté Christophe ? » Les formulations verbales sont les plus flexibles de tous les types de formulations. Elles relient souvent plus de deux éléments entre eux, comme dans « les employés vendent aux clients des produits ». Les formulations verbales sont utilisées dans les genres de questions suivantes :

  • Qui a vendu quoi à qui ?
  • Quel employé a vendu du chai à Christophe ?
  • Combien de clients ont acheté du chai à Marie ?
  • Liste des produits que Marie a vendus à Christophe.
  • Quels produits qui ne sont plus disponibles ont été vendus par les employés de Lyon aux clients de Toulouse ?

Les formulations verbales peuvent également contenir des formulations prépositionnelles, ce qui les rend plus flexibles, comme dans « les athlètes gagnent des médailles lors de compétitions » ou « les clients obtiennent des remboursements pour les produits ». Les formulations verbales contenant des formulations prépositionnelles sont utilisées dans les genres de questions suivantes :

  • Combien d’athlètes ont gagné une médaille d’or au championnat Visa ?
  • Quels clients ont obtenu un remboursement pour du fromage ?
  • À quelle compétition Danell Leyva a gagné une médaille de bronze ?

Certaines formulations verbales sont créées automatiquement quand une colonne est reconnue comme contenant à la fois un verbe et une préposition.

Voici un exemple de formulation verbale dans un schéma linguistique :
customers_buy_products_from_salespeople :

Binding: {Table: Orders}
  Phrasings:
  - Verb:
      Subject: customer
      Verbs: [buy, purchase]
      Object: product
      PrepositionalPhrases:
      - Prepositions: [from]
        Object: salesperson

Relations avec plusieurs formulations

Une relation peut fréquemment être décrite de plusieurs manières. Dans ce cas, une relation peut donc avoir plusieurs formulations. Il est courant de définir une relation entre une entité de table et une entité de colonne avec une formulation attributive et un autre type de formulation. Par exemple, dans la relation entre le client et le nom du client, vous pouvez avoir à la fois une formulation attributive (par exemple, « les clients ont des noms ») et une formulation nominale (par exemple, « les noms de clients sont les noms des clients »), ce qui vous permet de poser les deux types de questions.

Voici un exemple de relation avec deux formulations dans le schéma linguistique  :
customer_has_name :

Binding: {Table: Customers}
Phrasings:
  - Attribute: {Subject: customer, Object: customer.name}
  - Name:
      Subject: customer
      Object: customer.name

Un autre exemple serait d’ajouter une autre formulation, « les employés vendent des produits clients », à la relation « les clients achètent des produits aux employés ». Vous n’avez pas besoin d’ajouter des variations comme « les employés vendent des produits à des clients » ou « des produits sont vendus à des clients par des employés », car Questions et réponses déduit automatiquement les variations « par » et « à » du sujet et du complément d’objet indirect.

Considérations et résolution des problèmes

Si vous apportez une modification à un fichier .lsdl.yaml qui n’est pas conforme au format du schéma linguistique, des lignes ondulées de validation indiquent le problème :

Screenshot of a sample .yaml file showing errors.

D’autres questions ? Poser des questions à la communauté Power BI