Hi there,
I'm struggling to determine how I would convert the result from sentiment analysis of a piece of text, and display it as an emoji.
What I've tried:
On a selected Power Apps screen, in the advanced settings, OnVisible - Set(EmojiSad, false); Set(EmojiNeutral, false) etc.
In a separate label, which has the sentiment analysis text return "negative" for example.
Then, within the icon properties, specifically Visible, using: If(Label9.Text, "negative", true, EmojiSad = true).
The result:
The icon vanishes and a warning triangle appears above the icon.
The message: "Incompatible types for comparison. these types can't be compared: Text, Boolean."
Can anybody shed any light on how I can resolve this.
Thanks in advance
W
Solved! Go to Solution.
👋 Hi @wilfordm81,
We're big fans of emojis in AI Builder, so you've come to the right place!
Here is one way to do it:
1. Add a TextInput and Button to your app
2. On the Button OnSelect property, add the following formula:
Set(SentimentValue, AIBuilder.AnalyzeSentiment(TextInput1.Text).sentiment)
3. Add a Label, and set the following formula on the Text property:
Switch(SentimentValue, "positive", "🙂", "negative", "🙁", "😐")
This will display:
4. Test the app by writing a sentence and selecting the button.
If you're looking to show/hide icons, then use the following formula for each of the corresponding icons. For example, for the positive emoji icon, the formula to use is:
If(SentimentValue = "positive", true, false)
I hope this helps! 🚀
👋 Hi @wilfordm81,
We're big fans of emojis in AI Builder, so you've come to the right place!
Here is one way to do it:
1. Add a TextInput and Button to your app
2. On the Button OnSelect property, add the following formula:
Set(SentimentValue, AIBuilder.AnalyzeSentiment(TextInput1.Text).sentiment)
3. Add a Label, and set the following formula on the Text property:
Switch(SentimentValue, "positive", "🙂", "negative", "🙁", "😐")
This will display:
4. Test the app by writing a sentence and selecting the button.
If you're looking to show/hide icons, then use the following formula for each of the corresponding icons. For example, for the positive emoji icon, the formula to use is:
If(SentimentValue = "positive", true, false)
I hope this helps! 🚀
@JoeF-MSFTas you provided such great advice yesterday, I wanted to know if it's possible to assign gallery items with an emoji by using a "ThisItem." ?
So far in my attempts, I've assigned the code above:
If(SentimentValue = "positive", true, false)
to an icon.visible within a gallery template, but, being as the gallery data source contains positive, neutral and negative articles, whenever I click on a gallery item, the emoji's for ALL articles synchronise.
Is there any way to resolve this?
This might not make complete sense, so am happy to elaborate if needed.
Thanks!
Hi @wilfordm81 - great to see that you are taking your app further! 👍
Here is a possible way to achieve this.
1. By executing a formula that will go over all articles, runs AI Builder sentiment analysis for each article and stores in a new collection 1) the article text and 2) the extracted sentiment for that article. In this example, I've set to run this formula on a button click, but you could decide to run it somewhere else like at app launch for example.
In this formula, Sentences is where I have all the articles loaded.
ForAll(
Sentences,
Collect(
CollectionForGallery,
{
text: ThisRecord.Value,
sentiment: AIBuilder.AnalyzeSentiment(ThisRecord.Value).sentiment
}
)
)
2. Add a Gallery that had as Items data source the new collection we defined in the previous formula. In the case of my example above, CollectionForGallery
3. Then you can add the corresponding values, logic for the text and icons to display like this:
Hope this helps! 🙂 If I may ask - for what use case are you building this app that uses sentiment analysis?
Hi @JoeF-MSFT,
Thanks for responding & happy holidays.
Apologies for the delay, however I have not been able to get this solution working I'm afraid.
I'm curious to know if I need to create a collection? I ask, because when I enter this solution, the entire formula errors out, as it seems to have a problem with the "location" of the formula. The article "newsfeed" for lack of a better term, is on a different screen to the gallery, which analyses the the articles in question.
The purpose of this particular app and the inclusion of sentiment value, begins with collected news articles using an SQL Server database, which analyses the aforementioned text to be beneficial or not, for the end-user.
W
Hi @wilfordm81 - happy holidays to you as well! ☃️
Yes, on my example above Sentences is a sample collection. I create it with the click of a button, using the following formula:
ClearCollect(Sentences, "I love the new emojis in Windows 11!","I broke my leg skiing", "Horchata is a drink")
In your case, if you already have as datasource in your Power App the SQL Server table, you can replace Sentences by the SQL table. In the screenshot below I've connected to to a table called 'newsfeed' in a SQL Server database. The column that contains the text to analyze is called 'article', so I've updates the formula accordingly:
I hope this helps!
Happy new year @JoeF-MSFT !
So, I've implemented the steps you've suggested, but the emoji icons aren't displaying. 🤯
See attached images for formulas:
This is the button on the landing screen, which navigates to the dedicated news screen, and analyses the articleTitle, displayed in the corresponding gallery.
This is for the corresponding gallery on the news screen, using the collection from the previous formula.
This is an example of the formula associated with an emoji icon.
Is there something I'm missing?
W
Hi @wilfordm81 - thanks! Happy new year as well! 🎉
The formulas look good. Is anything displayed on the gallery? Or it remains empty with zero rows?
So there are three labels within a template:
thisitem.companyName
thisitem.articleTitle
thisitem.articleDate
and they all show their respective content.