Different Ways To Create Synonyms In Power BI Copilot

If you have been using Power BI Copilot to ask questions about the data in your model you will probably know that you should tune your Linguistic Schema to get the best results (something I’ve blogged about, for example here and here). Synonyms are one of the most important things you can add to your Linguistic Schema and in this post I will explain all the different ways synonyms can be created.

To illustrate this, consider a semantic model that contains a Customer dimension table with the following structure:

Manually Created Synonyms

The most effective synonyms are the ones you add to your Linguistic Schema yourself. You can do this by going to the Modelling tab on the ribbon in Power BI Desktop and clicking on the Q&A Setup button. This opens the Q&A Setup dialog, and if you then go to the Synonyms pane you will see a list of all the tables and columns in your model:

Next to each table or column name is a list of “Approved synonyms” which are the synonyms which actually get used by Copilot and a list of “Suggestions” which are synonyms you might consider adding.

Clicking the “Add” button in the “Approved synonyms” list allows you manually add a synonym. For example you might want to add the synonym “Client” to the DimCustomer table:

Manually added synonyms are almost always going to be the ones that improve Copilot’s results the most, and as a result Copilot will always try to match user input with them when possible. What’s more, the more manual synonyms that you add the better the suggested synonyms created using the methods below will be because they are taken into account when the suggested synonyms are generated.

You can also delete synonyms in the Synonyms pane. If a synonym is deleted in the Synonyms pane it still remains in the Linguistic Schema but is marked as deleted and the synonym will never be suggested again.

This type of manually-created synonym is known as “Authored” in the Linguistic Schema.

Heuristic Rules

Looking at the screenshots of the Synonyms pane above you can see that some other synonyms are automatically generated and added to the Linguistic Schema in the “Approved” section. These synonyms are created according to a series of heuristic rules, so for example:

  • Camel casing is replaced by spaces, so “DimCustomer” becomes “Dim Customer”
  • Obvious prefixes like “Dim” are removed and “DimCustomer” becomes just “Customer”
  • Underscores are replaced by spaces, so “Customer_Name” becomes “Customer Name”

…and so on. The benefit of this is that these synonyms are almost as high quality as authored synonyms and do not require any effort on the part of the model developer to create.

This type of synonym is known as “Generated” in the Linguistic Schema. Generated synonyms are not persistent and are deleted and recreated when the model changes or when the heuristic rules used change.

Thesaurus

The Suggestions column at first mostly contains suggested synonyms created from a thesaurus search. They are not added to the Approved synonyms by default because they are often relatively low quality but if you see one that is useful you can click the “+” button next to it to add it to the list of “Approved” synonyms that are actually used by Copilot.

This type of synonym is known as “Suggested” in the Linguistic Schema.

Organisational Sharing

Synonyms can be shared with other semantic model developers in your organisation and you can reuse the synonyms that other developers have created. This is only possible if the Synonym Sharing feature is turned on by your admin in the tenant settings:

If you promote a suggested synonym to the approved list then you’ll be prompted to decide if you want to share your synonyms with other developers in your organisation:

Synonyms created by other developers will appear in the “Suggested” list so you can decide to use them if you want. It’s unlikely many synonyms will be found this way unless you actively promote sharing to your developers, but the synonyms found are likely to be good quality.

Visual Renaming

If you edit the report in the same .pbix file as your semantic model, create a visual and then rename a column in that visual, that rename also results in an automatically-created synonym. So if you create a table visual in my report like this:

…and then rename the Customer_Name column in the visual (but not in the semantic model itself) to Person:

…this rename gets added to the list of Suggested synonyms:

Copilot Generated Synonyms

Lastly (and this feature is in preview at the time of writing) you can use Copilot to generate Suggested synonyms. This is very similar to using the thesaurus but the synonyms generated are higher quality because the LLM used has more domain knowledge. There’s a banner at the top of the Synonyms pane advertising this feature and a button to press; full docs are here, you will need Copilot enabled and it will add a (small) load on your capacity.

Copilot synonyms are not automatically added to the Suggested synonyms list because they are considered AI-generated content, which requires explicit user consent.

Suggestion Settings

You can control which of these methods are used to generate Suggested synonyms from, as well as your sharing settings, from the Suggestion Settings dropdown at the top of the Synonyms pane.

[Thanks to Tu Phan for the information in this post]

3 thoughts on “Different Ways To Create Synonyms In Power BI Copilot

  1. When a user is using the built in Copilot chat pane, does the Copilot also use these synonyms? Or just when you’re specifically using the Q&A feature?

  2. Hi Chris.I have created a semantic model in Microsoft Fabric and am connecting it to Power BI using OneLake Data Hub. I have enabled Q&A setup at the semantic model level and allowed synonyms from the organization. Can you tell me where I can add synonyms in my semantic model in Fabric?

Leave a Reply