Sentiment Analysis

Cannot find any description of this feature. The page in Help is empty. Where can I get more information?

I don’t know about documentation but Michael Becker has recently produced a training video covering this topic.

My aTbRef notes on it are at Sentiment Analysis. I can’t tell much more as I’m on macOS 10.14.6 and this process needs macOS 10.15.0+. Also see, whilst drafting this that @latinhypercube has slo pointed to @satikusala training video covering this.

Given the latter macOS version requirements, rather more Googling than it ought to take (:roll_eyes: Apple) finds a page on NLTagScheme ▸ sentimentScore . So, not much more than in my notes.

My take, as a Tinderbox user this is a black-box OS-level feature surfaced by Tinderbox. If you need to know the underlying detail, then you need to read the dev docs.

So, using the methods described in the doc/video above you can get per-paragraph or per-note sentiment scores in Tinderbox v9.0.0+ if on macOS 10.15.0+ if using English (and a few other languages) as your OS

I don’t think we users are supposed to/allowed to understand how the sentiment is arrived at (the OS doesn’t care to say :wink: ).

†. Not sure what these are.

The backstage release has the corrected help, which will also appear in 9.0.1.

One caveat: it’s not clear that sentiment analysis is yet available in Russian, though this may depend on the dominant language of your machine and a variety of other questions. And sentiment analysis does require macOS 11 (Big Sur) or later.

Short documentation: $Sentiments is a list of the estimated sentiments for each paragraph, from -1 (negative) to +1 (positive). $Sentiment is an average sentiment for the entire note.

Does Apple give us (via Developer docs perhaps?) any indication how the works under the hood? Is this a neural net, some other method? Put a simpler was, do we—as the overall end user—get a number and trust it implicitly. I’ve no real problem but I think it useful for those who’ve less of an idea as the the underpinning process that there will always be an answer, indeed a single answer, … but which may or may not be right. So if I’m the bro running our hipster web app’s social media streams, “sweet”. If I’m working for a suicide prevention charity, “Hmm, I have questions.”

This isn’t anything Tinderbox is doing as here the app is simply the bridge from our note(s) to the macOS NLP tools, which improve all the time.

I’ll see if I can find some wider, less code-level, explanations to inform those new to measures like these and the degree to which you can depend on them.

I’m now channelling the manager from “Office Space”:

If you could just push that positive sentiment up to a 0.9 before you go home, that’d be great."

It’s a neural network, trained on a large set of texts that have been hand-scored as “positive” or “negative”. I think the data set is a popular collection of comments about films, but I can’t find confirmation for that.

In any case, the API is designed so a better neural net can be substituted automatically if it becomes available.

1 Like

Thanks. Lest I sound all glass-half-empty, I’m sure these systems will get better. Bit I’m reminded: something something great power something something great responsibility. :slight_smile:

Mark, thank you for your detailed post. I really don’t see any practical application of that feature not only for analyzing Russian but also English texts.

Thank you for your post. Currently I don’t see any practical application of sentiment analysis.

I too shade on the doubting side as to the meaning of such analysis, but watching the emergent process (the machine learning, etc.) is interesting. I thus temper my cynicism lest it blinds me to seeing interesting methods emerge. :slight_smile: Plus, I need to get on and actually update my OS before I’m left behind!

Every morning: Margaret receives a compilation of all the concierge messages received at the Grand Hotel that have not been marked as RESOLVED. There are typically about 30 messages.

She uses Explode to separate these into a individual notes. She has another container named TODAY; she cleans out any leftover notes in TODAY and moves all the exploded notes there.

Next, she looks at an agent “UNHAPPY” which looks for notes that are inside(/TODAY)& $Sentiments.min < -.666. These typically include (a) guests who are unhappy with the hotel (a problem for Margaret!), (b) guests who are unhappy about the city, the event they are attending, or their six-year-old (also a problem for Margaret, but of a different kind). There may also be (c) attachments or comments from staff who are irritated by the guest.

Margaret now assigns Type As to her most empathetic day staff. She often takes the Type Bs herself, as she’s got more experience and a wider range of useful contacts — and after six years of this, she’s really, really tired of Type As. If there are any Type Cs, she files them away for the midday staff standup.


This is contrived and not really convincing, but I can imagine it being useful.

1 Like