{"id":86574,"date":"2020-03-02T23:46:22","date_gmt":"2020-03-02T23:46:22","guid":{"rendered":"https:\/\/www.red-gate.com\/simple-talk\/?p=86574"},"modified":"2025-06-30T12:07:38","modified_gmt":"2025-06-30T12:07:38","slug":"text-mining-and-sentiment-analysis-power-bi-visualizations","status":"publish","type":"post","link":"https:\/\/www.red-gate.com\/simple-talk\/databases\/sql-server\/bi-sql-server\/text-mining-and-sentiment-analysis-power-bi-visualizations\/","title":{"rendered":"Text Mining and Sentiment Analysis: Power BI Visualizations"},"content":{"rendered":"<p><strong>The series so far:<\/strong><\/p>\n<ol>\n<li><a href=\"https:\/\/www.red-gate.com\/simple-talk\/sql\/bi\/text-mining-and-sentiment-analysis-introduction\/\">Text Mining and Sentiment Analysis: Introduction<\/a><\/li>\n<li><a href=\"https:\/\/www.red-gate.com\/simple-talk\/sql\/bi\/text-mining-and-sentiment-analysis-power-bi-visualizations\">Text Mining and Sentiment Analysis: Power BI Visualizations<\/a><\/li>\n<li><a href=\"https:\/\/www.red-gate.com\/simple-talk\/sql\/bi\/text-mining-and-sentiment-analysis-with-r\/\">Text Mining and Sentiment Analysis: Analysis with R<\/a><\/li>\n<li><a href=\"https:\/\/www.red-gate.com\/simple-talk\/sql\/bi\/sentiment-analysis-oracle-text\/\">Text Mining and Sentiment Analysis: Oracle Text<\/a><\/li>\n<li><a href=\"https:\/\/www.red-gate.com\/simple-talk\/databases\/sql-server\/bi-sql-server\/text-mining-and-sentiment-analysis-data-visualization-in-tableau\/\">Text Mining and Sentiment Analysis:\u00a0Data Visualization in Tableau<\/a><\/li>\n<li><a href=\"https:\/\/www.red-gate.com\/simple-talk\/development\/data-science-development\/sentiment-analysis-python\/\">Sentiment Analysis with Python<\/a><\/li>\n<\/ol>\n\n<p>The first article of this three-part series introduced Azure cognitive services Text Analytics API and Power BI. With a team health survey use-case, I demonstrated:<\/p>\n<ul>\n<li>Creating Azure Cognitive services resource<\/li>\n<li>Loading the survey data into Power BI<\/li>\n<li>Creating and Invoking Custom Functions in Power BI, to extract key phrases and generate sentiment scores from raw text<\/li>\n<li>Saving the Key phrases and sentiment scores as new columns, into the data table loaded in Power BI<\/li>\n<\/ul>\n<p>After completing the steps demonstrated in the first article, the data table in Power BI Desktop has six fields. The fields <em>Period<\/em>, <em>Manager<\/em>, <em>Team<\/em> and <em>Response<\/em> come from the raw data file, while fields <em>KeyPhrases<\/em> and <em>SentimentScore<\/em> are added and populated by invoking the Text Analytics API.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1053\" height=\"519\" class=\"wp-image-86575\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2020\/03\/word-image-3.png\" \/><\/p>\n<p class=\"caption\">Figure 1. Power BI Desktop Data Pane \u2013 data tables with six fields<\/p>\n<p>In this article, I will demonstrate how to apply various analytical and visualization techniques in Power BI to the qualitative (<em>Key<\/em> <em>Phrases<\/em>) &amp; quantitative (<em>Sentiment<\/em> <em>Scores<\/em>) data extracted from the survey responses, using word cloud, charts and filters.<\/p>\n<h2>Visualization Page One \u2013 Word Cloud &amp; Slicers<\/h2>\n<p>A Word cloud is one of the most popular ways to visualize and analyze qualitative data. It\u2019s an image composed of key words found within a body of text, where the size of each word indicates its frequency in that body of text. I will use the new <em>KeyPhrases<\/em> field to generate a word cloud, because it has only the important words. This will help ensure the word sizing in the resulting cloud isn&#8217;t skewed by the frequent use of common but trivial words in the response text.<\/p>\n<p>Click on the <em>Reports<\/em> pane from the left menu of Power BI desktop, then expand the <em>Visualizations<\/em> pane on the right side. If you don&#8217;t already have the Word Cloud custom visual installed, import the Custom Visual from the Store. In the <em>Visualizations<\/em> panel to the right of the workspace, click the ellipses (<strong>&#8230;<\/strong>) and choose\u00a0<em>Import from AppSource.<\/em> (In some older versions, you may see <em>Import from marketplace<\/em>).<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"446\" height=\"399\" class=\"wp-image-86576\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2020\/03\/a-screenshot-of-a-cell-phone-description-automati-12.png\" alt=\"A screenshot of a cell phone\n\nDescription automatically generated\" \/><\/p>\n<p class=\"caption\">Figure 2. Import Custom Power BI Visuals from AppSource\/Marketplace<\/p>\n<p>Then search for <em>word cloud<\/em> and click the\u00a0<em>Add<\/em>\u00a0button next to the Word Cloud visual to install it. (Please do your due diligence when installing add-ins from the online marketplace, as they may pose a potential security \/ privacy risk)<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1308\" height=\"535\" class=\"wp-image-86577\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2020\/03\/a-screenshot-of-a-social-media-post-description-a-1.png\" alt=\"A screenshot of a social media post\n\nDescription automatically generated\" \/><\/p>\n<p class=\"caption\">Figure 3. Import Word Cloud Custom Visual from the Marketplace.<\/p>\n<p>Once installed successfully, click on the visual (look for a <em>w<\/em> under the main visualizations section) in the <em>Visualizations<\/em> pane and a new report will appear on your page.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1920\" height=\"1080\" class=\"wp-image-86578\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2020\/03\/word-image-4.png\" \/><\/p>\n<p class=\"caption\">Figure 4. WordCloud custom visual in the Visualization Pane<\/p>\n<p>Then drag the <em>KeyPhrases<\/em> field from the <em>Fields<\/em> panel into <em>Category<\/em> field of the <em>Visualizations<\/em> panel, which creates a basic word cloud in your report.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1774\" height=\"667\" class=\"wp-image-86579\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2020\/03\/word-image-5.png\" \/><\/p>\n<p class=\"caption\">Figure 5. The basic word cloud<\/p>\n<p>The basic word cloud looks a bit clumsy with the default settings. I will walk through some clean up steps and tweaks to the default settings, giving it a more polished look.<\/p>\n<p>From the <em>Visualization<\/em> <em>Pane<\/em> for the <em>Word<\/em> <em>Cloud<\/em>, switch to the <em>Format<\/em> section and expand the <em>General<\/em> menu. Enter the number <em>5<\/em> in the field <em>Minimum number of repetitions to display<\/em>, which only eliminates words appearing less than five times (you can tweak this setting anytime to suit your needs).<\/p>\n<p>Next, expand the <em>Stop<\/em> words menu and turn on <em>Default<\/em> <em>Stop<\/em> <em>words<\/em>, which will eliminate the most commonly used but low value words from appearing. For additional reading about stop words in the context of Natural Language Processing, please follow this <a href=\"https:\/\/en.wikipedia.org\/wiki\/Stop_words\">link<\/a>. You can also add custom stop words (each word separated by a space), in the <em>Words<\/em> field of this section. For example, I have added <em>health<\/em>, <em>team<\/em> and <em>s<\/em> to the list of custom stop words<\/p>\n<p>Lastly, switch off <em>Rotate<\/em> <em>text<\/em> and switch on <em>Title<\/em> and set it to <em>Word<\/em> <em>Cloud<\/em>.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"440\" height=\"527\" class=\"wp-image-86580\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2020\/03\/a-screenshot-of-a-cell-phone-description-automati-13.png\" alt=\"A screenshot of a cell phone\n\nDescription automatically generated\" \/><\/p>\n<p class=\"caption\">Figure 6. Custom stop words<\/p>\n<p>The word cloud now looks much cleaner.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1349\" height=\"636\" class=\"wp-image-86581\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2020\/03\/a-screenshot-of-a-cell-phone-description-automati-14.png\" alt=\"A screenshot of a cell phone\n\nDescription automatically generated\" \/><\/p>\n<p class=\"caption\">Figure 7. The polished word cloud<\/p>\n<p>This word cloud covers responses from all periods, teams and managers in your data. Wouldn\u2019t it be great if you could focus on identifying popular topics by period, team, manager or any combination of thereof? You can easily implement this with filters, or with slicer visualizations;<\/p>\n<ul>\n<li>Visual level filters are applicable only to the visualization they are set up for<\/li>\n<li>Page level filters apply to all visualizations on the page<\/li>\n<li>Report level filters apply to all visualization on the report, across all pages<\/li>\n<li>Slicers are visualizations used as filters on the report canvas for easier access<\/li>\n<\/ul>\n<p>To add a slicer to your report, click on the <em>Slicer<\/em> icon in the <em>Visualization<\/em> pane. Then drop the <em>period<\/em> field into it. Then, at the top right of the slicer, select <em>Dropdown<\/em> as the <em>Slicer<\/em> <em>Type<\/em>.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"481\" height=\"149\" class=\"wp-image-86582\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2020\/03\/word-image-6.png\" \/><\/p>\n<p class=\"caption\">Figure 8. Type of slicer<\/p>\n<p>Next, repeat these steps to add slicers for <em>Team<\/em> and <em>Manager<\/em> fields. Your users can now use these slicers to filter the word cloud.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1277\" height=\"445\" class=\"wp-image-86583\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2020\/03\/a-screenshot-of-a-cell-phone-description-automati-15.png\" alt=\"A screenshot of a cell phone\n\nDescription automatically generated\" \/><\/p>\n<p class=\"caption\">Figure 9. The polished word cloud with Slicers for Period, Team and Manager<\/p>\n<h2>Visualization Page Two \u2013 Line, Column and Bar Charts<\/h2>\n<p>The Sentiment score is a numeric value that lends itself to quantitative analysis. This section will demonstrate:<\/p>\n<ul>\n<li>A Line Chart, to see how Sentiment Scores are Trending over a period of four quarters<\/li>\n<li>A Column Chart, to compare Sentiment Scores for teams rolling up to different managers<\/li>\n<li>A Bar Chart, to compare Sentiment Scores rolling up to different teams<\/li>\n<\/ul>\n<p>Add a <em>New<\/em> <em>Page<\/em>, then add the following three visualizations to this page.<\/p>\n<p><strong>Visualization One &#8211; Line Chart:<\/strong> A line chart is a type of chart which displays information as a series of data points called <em>markers<\/em> connected by straight line segments. A line chart is typically used to visualize a trend in data over a period of time. Click on the <em>Line<\/em> <em>Chart<\/em> in the <em>Visualizations<\/em> pane, to add it to the page. Next, add the <em>period<\/em> field into Axis, which sets the X-axis. Then add <em>SentimentScore<\/em> field into <em>Values<\/em> and set the aggregation to <em>Average<\/em>. Set title to <em>Average of SentimentScore by Period<\/em>.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"593\" height=\"670\" class=\"wp-image-86584\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2020\/03\/a-screenshot-of-a-computer-description-automatica.png\" alt=\"A screenshot of a computer\n\nDescription automatically generated\" \/><\/p>\n<p class=\"caption\">Figure 10. Visualization settings for a line chart<\/p>\n<p>Lastly, click the ellipses on the top right corner of the report, to expand <em>More<\/em> <em>Options<\/em>, then select <em>Sort ascending<\/em> and <em>Sort by Period<\/em>. This will sort the <em>Periods<\/em> on the X-axis in an ascending sequence, showing the trend of average sentiment score over time.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"436\" height=\"202\" class=\"wp-image-86585\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2020\/03\/word-image-7.png\" \/><\/p>\n<p class=\"caption\">Figure 11. Sorting the chart by <em>Period<\/em><\/p>\n<p><strong>Visualization Two &#8211; Column Chart:<\/strong> A column\/bar chart is a type of chart where each category is represented by a column\/bar and the height of the column\/length of the bar is proportional to the value being plotted. Click on the <em>Stacked<\/em> <em>Column<\/em> <em>Chart<\/em> in the <em>Visualizations<\/em> pane, to add it to the page. Next, add <em>Manager<\/em> field into <em>Axis<\/em>, which sets the X-axis. Then add <em>SentimentScore<\/em> field into <em>Values<\/em> and set the aggregation to <em>Average<\/em>. Set title to <em>Average of SentimentScore by Manager<\/em>. Lastly, set this chart to <em>Sort<\/em> <em>Ascending<\/em> and <em>Sort by Manager<\/em>.<\/p>\n<p><strong>Visualization Three &#8211; Bar Chart:<\/strong> Click on the <em>Stacked<\/em> <em>Bar<\/em> <em>Chart<\/em> in the Visualizations pane, to add it to the page. Next, add <em>Team<\/em> field into <em>Axis<\/em>, which sets the Y-axis. Then add <em>SentimentScore<\/em> field into <em>Values<\/em> and set the aggregation to <em>Average<\/em>. Set the title to <em>Average of SentimentScore by Team<\/em>. Lastly, set this chart to <em>Sort<\/em> <em>Descending<\/em> and <em>Sort by Average of Sentiment Score<\/em>. This sorting is useful in visually ranking the teams from the highest to lowest values of their Average Sentiment Score.<\/p>\n<p>Adjust the placement of the three visualizations on your page if necessary. You can always add filters as you see fit, to allow further in-depth analysis on each chart (for e.g., it might be valuable to add Team as a filter to the line chart, which allows users to see how average sentiment Scores are trending over four quarters for each team).<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1070\" height=\"640\" class=\"wp-image-86586\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2020\/03\/a-screenshot-of-a-cell-phone-description-automati-16.png\" alt=\"A screenshot of a cell phone\n\nDescription automatically generated\" \/><\/p>\n<p class=\"caption\">Figure 12. Line, Column and Bar Chart visualizations on single page<\/p>\n<p>These three visualizations help to infer the following:<\/p>\n<p>The line chart shows the Average Sentiment score went up for the first three quarters and the gains leveled off in the fourth quarter.<\/p>\n<ul>\n<li>The column chart shows that Average Sentiment scores rolling up to all three managers are close.<\/li>\n<li>The Bar chart indicates that Team 4 has the highest sentiment score, whereas Team 5 has the lowest.<\/li>\n<\/ul>\n<h2>Visualization Page Three \u2013 Histogram<\/h2>\n<p>A Histogram is a representation of the distribution of numerical data. To construct a histogram, the first step is to <a href=\"https:\/\/en.wikipedia.org\/wiki\/Data_binning\">bin<\/a> (or <a href=\"https:\/\/en.wikipedia.org\/wiki\/Data_binning\">bucket<\/a>) the range of values into a series of intervals , then count how many values fall into each interval. The bins are usually specified as consecutive, non-overlapping <a href=\"https:\/\/en.wikipedia.org\/wiki\/Interval_(mathematics)\">intervals<\/a> of a variable. The bins (intervals) must be adjacent and are often (but not necessarily) of equal size. In the team health survey scenario, the sentiment score bin will form the x axis, and the frequency (count of responses) belonging to that bin will be on the y axis.<\/p>\n<p>There are two ways to plot a histogram in Power BI \u2013 either use the custom histogram visualization or use a regular bar chart by binning the data beforehand. I will demonstrate the regular bar chart method in this article.<\/p>\n<p>To Bin the data, right click on <em>SentimentScore<\/em> and select <em>New<\/em> <em>Group<\/em><strong>. <\/strong>On the <em>Groups<\/em> page, change <em>Bin<\/em> <em>Type<\/em> to <em>Number<\/em> <em>of Bins<\/em> and set <em>Bin Count<\/em> to <em>10<\/em>, then click <em>OK<\/em><strong>. <\/strong>This will create ten equal sized bins for the range of sentiment score values.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1158\" height=\"696\" class=\"wp-image-86587\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2020\/03\/word-image-8.png\" \/><\/p>\n<p class=\"caption\">Figure 13. Bin Sentiment Score for Histogram<\/p>\n<p>Next, create a new page and<\/p>\n<ul>\n<li>Pull the stacked column chart visualization on this page<\/li>\n<li>Drag and drop SentimentScore(bins) field into Axis<\/li>\n<li>Drag and drop Response field into Value and set aggregation to Count<\/li>\n<li>In the Formats tab, expand X axis (should be set to ON by default) and set Title to ON. This will display title Sentiment Score (bins) for the X axis. Do the same for Y axis, which will display title Count of Response for the Y axis<\/li>\n<li>In the Formats tab, set Data Labels to ON<\/li>\n<li>In the Formats tab, set Title to ON and enter text Histogram &#8211; Distribution of number of Responses Over SentimentScore (bins) in the Title field<\/li>\n<li>Add slicers for Period, Team and Manager as demonstrated earlier, which will allow users to filter the Histogram using these dimensions<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1627\" height=\"528\" class=\"wp-image-86588\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2020\/03\/a-screenshot-of-a-computer-description-automatica-1.png\" alt=\"A screenshot of a computer\n\nDescription automatically generated\" \/><\/p>\n<p class=\"caption\">Figure 14. Histogram with slicers<\/p>\n<p>This Histogram shows an almost bimodal data distribution, indicating there is some degree of polarization in terms of how team members feel about their team\u2019s health. Many team members (200+ responses clustered towards the right) feel strongly positive about their team\u2019s health, while some (about 100 responses clustered towards the left) feel strongly negative. Very few (only 17 responses in the middle) are in the neutral score range. Users can filter the histogram by period, team or manager for further analysis.<\/p>\n<h2>Visualization Page Four \u2013 Box and Whiskers Plot<\/h2>\n<p>A box plot is a method of graphically depicting groups of numerical data through their <a href=\"https:\/\/en.wikipedia.org\/wiki\/Quartile\">quartiles<\/a>. Box plots may also have lines extending from the boxes (<em>whiskers<\/em>) indicating variability outside the upper and lower quartiles, hence the terms box-and-whisker plot. It is commonly used in descriptive statistics and is efficient way of visually displaying data distribution through their quartiles. They take up less space and are very useful when comparing data distribution between groups.<\/p>\n<p>To build a box plot, create a new page and import the box and whiskers chart custom visual from the marketplace and add it to the page. Since I find value in comparing distribution of sentiment score data between various teams, drag the <em>Team<\/em> field into <em>Category<\/em>. Next, drag the <em>Sentiment<\/em> <em>Score<\/em> field into <em>Values<\/em> and select <em>Average<\/em> for aggregation. Lastly, drag the <em>Period<\/em> field into <em>Sampling<\/em>.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1614\" height=\"683\" class=\"wp-image-86589\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2020\/03\/word-image-9.png\" \/><\/p>\n<p class=\"caption\">Figure 15. Box and Whiskers plot<\/p>\n<p>This box and whiskers plot reveals some interesting insights. Without any background in statistics, just focusing on just the height of each box and its position along the vertical axis, one can interpret:<\/p>\n<ul>\n<li>For Team 9, the box is short, and the whiskers are short, too. The distribution of their response sentiment scores is grouped tightly around the median value of 0.76. I would interpret it as most team members agree about their team\u2019s health. The placement of the box is high on the vertical axis, which indicates they feel quite positive about their team\u2019s health as well. The short whiskers indicate the outliers are not too far away from the upper and lower quartile boundaries.<\/li>\n<li>For Team 5, the box is taller, but the whiskers are not too long. The distribution of their sentiment scores is spread wider (not as tightly grouped together) around the median score of 0.60. It means several team members feel negatively about their team\u2019s health, compared to others on the same team. This could indicate a disconnect between how different team members feel about their team\u2019s health. The placement of the box is lower on the vertical axis. I would interpret it a Team 5 feels less positive about their team\u2019s health, relative to Team 9.<\/li>\n<\/ul>\n<h2>Visualization Page Five \u2013 Focus on Targeted Responses<\/h2>\n<p>The first four pages of visualizations have helped with analyzing:<\/p>\n<ul>\n<li>What are the trending topics for each team, across various periods and managers?<\/li>\n<li>Which teams have the highest sentiment scores, versus teams that might need help?<\/li>\n<li>How do the team\u2019s sentiment score trend over time?<\/li>\n<li>How do the aggregated sentiment scores stack up across all managers?<\/li>\n<li>How does the distribution of sentiment scores look like within the team and how does it compare across teams?<\/li>\n<\/ul>\n<p>After this analysis, it\u2019s appropriate to guide your users towards viewing the actual responses that match their criteria of interest. Some users might be interested in reading the most negative responses for a period, while the most positive responses from a particular team might interest other users. In this section, I will demonstrate a set of visualizations for serving up this detailed information in an easy to consume format.<\/p>\n<p>Create a new page and add the table visualization to it. Drag and drop the fields Period, Team, Manager, Sentiment Score and Response onto to table visualization. In the Format section of the Visualizations pane, expand <em>Totals<\/em> and set it to off.<\/p>\n<p>I will add four slicers to the left side of the table, for easy filtering of the table:<\/p>\n<ul>\n<li>Add the slicer visualization to the left side of the page, then drag and drop the <em>Period<\/em> field on it<\/li>\n<li>Add the slicer visualization to the left side of the page, then drag and drop the <em>Team<\/em> field on it<\/li>\n<li>Add the slicer visualization to the left side of the page, then drag and drop the <em>Manager<\/em> field on it<\/li>\n<li>Add the slicer visualization to the left side of the page, then drag and drop the <em>SentimentScore(bin)<\/em> field on it.<\/li>\n<\/ul>\n<p>Change the <em>Slicer type<\/em> for all four slicers to <em>List<\/em>. Last, add text box at the top of the page, with a helpful message to guide your users <em>Select a Period, Team, Manager, and Sentiment Score Bin, to review the Response Text for the select combination of slicers.<\/em><\/p>\n<p>Say one of your users is interested in reviewing the most positive responses for Team 9, in the latest quarter. The would simply need to select <em>2019-Q2<\/em> from the <em>Periods<\/em> slicer, Team 9 from the <em>Team<\/em> slicer and 0.90 from the <em>SentimentScore(Bin)<\/em> slicer.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1849\" height=\"777\" class=\"wp-image-86590\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2020\/03\/a-screenshot-of-a-social-media-post-description-a-2.png\" alt=\"A screenshot of a social media post\n\nDescription automatically generated\" \/><\/p>\n<p class=\"caption\">Figure 16. Table Visualization with slicers for filtering responses<\/p>\n<p>The visualizations demonstrated so far have helped to analyze the team health data.<\/p>\n<ul>\n<li>The word cloud identifies popular topics\/themes and allows drill down by <em>Period<\/em>, <em>Team<\/em> and <em>Manager<\/em><\/li>\n<li>The line chart shows how the average sentiment scores are trending over a period.<\/li>\n<li>The column chart shows how the average sentiment scores compare across all managers.<\/li>\n<li>The bar chart enables easy comparison of average sentiment scores across teams. It helps to identify which teams have the highest\/lowest average scores and if they changed over time.<\/li>\n<li>The histogram visualizes the distribution of responses across the range of sentiment scores. It helps with identifying clusters\/groupings in the positive, neutral or negative ranges.<\/li>\n<li>The box plot enables a quick and efficient visualization of how the distribution of scores for one team compares to others. It is useful to interpret if the team members are tightly aligned with each other or not.<\/li>\n<li>The table visualization with slicers, allows for review of the actual response text, based on the selection of <em>Sentiment Score Bin, Team, Period<\/em> and <em>Manager<\/em>.<\/li>\n<\/ul>\n<p>This analysis enables you to identify which teams are doing great, which ones may need some help to improve their team\u2019s health and what areas deserve further in-depth conversations with Team managers.<\/p>\n<h2>Conclusion<\/h2>\n<p>This article demonstrated how to do a visualize <em>Key Phrases &amp; Sentiment Scores<\/em> in Power BI and interpret them to gain insights. The word cloud and several statistical charts helped with analyzing data, extracting business value and narrating a meaningful story from the team health survey. The last article in this three-part series will explore R for texting mining and sentiment analysis.<\/p>\n<h2>References:<\/h2>\n<ul>\n<li>Qualitative and Quantitative Data &#8211; https:\/\/cyfar.org\/qualitative-or-quantitative-data<\/li>\n<li>Quantitative Data Analysis &#8211; https:\/\/cyfar.org\/analysis-quantitative-data<\/li>\n<li>Word cloud &#8211; <a href=\"https:\/\/en.wikipedia.org\/wiki\/Tag_cloud\">https:\/\/en.wikipedia.org\/wiki\/Tag_cloud<\/a><\/li>\n<li>Power BI Slicer &#8211; <a href=\"https:\/\/docs.microsoft.com\/en-us\/power-bi\/visuals\/power-bi-visualization-slicers\">https:\/\/docs.microsoft.com\/en-us\/power-bi\/visuals\/power-bi-visualization-slicers<\/a><\/li>\n<li>Line Charts &#8211; <a href=\"https:\/\/en.wikipedia.org\/wiki\/Line_chart\">https:\/\/en.wikipedia.org\/wiki\/Line_chart<\/a><\/li>\n<li>Bar charts &#8211; <a href=\"https:\/\/en.wikipedia.org\/wiki\/Bar_chart\">https:\/\/en.wikipedia.org\/wiki\/Bar_chart<\/a><\/li>\n<li>Histogram &#8211; <a href=\"https:\/\/en.wikipedia.org\/wiki\/Histogram\">https:\/\/en.wikipedia.org\/wiki\/Histogram<\/a><\/li>\n<li>Box and whiskers plot &#8211; <a href=\"https:\/\/en.wikipedia.org\/wiki\/Box_plot\">https:\/\/en.wikipedia.org\/wiki\/Box_plot<\/a><\/li>\n<li>Sorting within Charts in Power BI &#8211; https:\/\/docs.microsoft.com\/en-us\/power-bi\/consumer\/end-user-change-sort<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Power BI is perfect for analyzing surveys. In this article, Sanil Mhatre demonstrates how to build several visualizations for key phrases sentiment analysis. &hellip;<\/p>\n","protected":false},"author":317671,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[143528],"tags":[5134],"coauthors":[101710],"class_list":["post-86574","post","type-post","status-publish","format-standard","hentry","category-bi-sql-server","tag-sql-prompt"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/posts\/86574","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/users\/317671"}],"replies":[{"embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/comments?post=86574"}],"version-history":[{"count":4,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/posts\/86574\/revisions"}],"predecessor-version":[{"id":107329,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/posts\/86574\/revisions\/107329"}],"wp:attachment":[{"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/media?parent=86574"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/categories?post=86574"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/tags?post=86574"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/coauthors?post=86574"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}