
Show HN: See if a movie is happy or sad with sentiment analysis - eljs
https://www.crealdo.com/story/movie-sentiment
======
etjossem
One of the major problems with sentiment analysis is that it doesn't pick up
on irony or subtext very well. Relying on word choice alone, one such analysis
pinned "Fitter Happier" as one of the happiest Radiohead songs.

[http://rcharlie.com/2017-02-16-fitteR-
happieR/](http://rcharlie.com/2017-02-16-fitteR-happieR/)

Edit: sorry, I misremembered - it actually handled "True Love Waits" pretty
well. It did pick up "Fitter Happier" as one of the happiest, that's what
struck me as strange.

~~~
johnnydoe9
That says True Love Waits is the most depressing song though.. am I missing
something?

>We have a winner! “True Love Waits” is officially the single most depressing
Radiohead song to date. Rightly so, given that it tied for lowest valence
(0.0378) and ranked fourth for highest percentage of sad words (24%). If the
numbers still don’t convince you, just listen to it.

------
btbuildem
Interesting project, horrible presentation.

The colour gradient on the graph is confusing - does green mean happy, blue
unhappy, and the movie changes tone over time? Axes of the graph are not
labeled, what are we looking at? But, those concerns are secondary.

Bar graph seems a poor choice here, given the nature of the data. Given that
there doesn't seem to be any correlation with time, the order of phrases
doesn't seem important -- you could forgo the linear presentation, and display
the distribution of the data instead.

For example, you could bucket the sentiment values (-3 to -2, -2 to -1, etc)
and use a histogram to show the counts in each bucket. This would enable you
to compare different movies (one histogram per movie).

~~~
eljs
You're right about the graphs. The horizontal axis is the minutes of the movie
though (on the second graph). Will get rid of the gradient and add labels!

~~~
fratlas
I love the visualization! Is the website a template? What lib for the graphs?

~~~
vogt
Just looks some Bootstrap and ChartJS.org.

------
aisofteng
I'm always a little wary of the robustness of sentiment analysis; in my
experience, if you take the time to check sentiment analysis results sentence
by sentence, you will find a high error rate.

I haven't confirmed by looking at the source, but my suspicion is that either
most sentiment analysis implementations are rule based or are not well tuned.

My go-to example is IBM Watson's sentiment analysis service rating "I hope you
die" as very positive because the sentence is categorized as "hopeful". Which
I suppose it is, technically, and perhaps this is a case where I'm expecting
too much because recognizing this particular example as having a negative
sentiment requires much human abstract reasoning and inference, but the
example remains nonetheless because real-world language usage that isn't dry
and technical is rife with these sorts of linguistic usages.

------
eljs
OP here! I was watching the Stanford NLP classes a while back
([https://www.youtube.com/playlist?list=PLiNErZ5Bus8qNxNsFZFkh...](https://www.youtube.com/playlist?list=PLiNErZ5Bus8qNxNsFZFkh-9_CzZRW9iH9))
and ended up trying the part about sentiment analysis on srt files. The way it
works right is quite primitive but you can still see some "trends" on most
movies. If there are any suggestions on how I could make this smarter I would
love to hear them!

~~~
sharemywin
has anyone tried opensubtitles.org

just found it on google

~~~
sharemywin
never mind looks kinda scammy

~~~
icebraining
Nah, it's fine, it tries to push you their downloader, but if you avoid the
pitfalls the content is good. I've used it many times over the years.

------
gh1
I like it. What do you think of a recommendation engine which tries to
recommend movies based on patterns of happiness and sadness?

------
snissn
Why does the graph go from green to blue?

~~~
eljs
Good question, I just thought it looked nice but maybe I shouldn't have

~~~
snissn
Cool! I thought it was an indication of sentiment at first, I was like oh yeah
la la land gets sad towards the end. Cool endeavor!

Curious if you investigated other libraries or algorithms. have you seen this
- i have been playing with it, seems reliable:
[https://github.com/cjhutto/vaderSentiment](https://github.com/cjhutto/vaderSentiment)

------
zoidb
You should let people see what other people submitted although it's pretty
easy by fiddling with the URL. I like seeing the word patterns but I really
wonder how well it can detect true sentiment, not an easy thing to do.
[https://www.crealdo.com/story/movie-
sentiment/movies/13](https://www.crealdo.com/story/movie-sentiment/movies/13)

------
rodrigocoelho
Also interesting: Character-to-Character Sentiment Analysis in Shakespeare’s
Plays (PDF)

[http://www.aclweb.org/anthology/P13-2085](http://www.aclweb.org/anthology/P13-2085)

------
AznHisoka
What about a movie lile "Brazil"? would that be considered happy or sad?

~~~
eljs
I don't know this movie but you can try it out by uploading the movies srt
file.

~~~
cholantesh
Brazil is a dystopian satire. I would wager that GP is asking about scenarios
where there is significant ambiguity and/or situational/verbal irony.

~~~
eljs
I just gave it a try: [https://www.crealdo.com/story/movie-
sentiment/movies/30](https://www.crealdo.com/story/movie-sentiment/movies/30)
Never seen the movie so I can't judge myself.

~~~
blacksmith_tb
That seems like a plausible analysis, the movie becomes darker as it proceeds,
though there's a false happy ending (which in some cases of ham-fisted editing
is the only ending - I saw it aired on network TV in the US this way) followed
by a much more somber closing.

------
blackflame7000
It's broken. My sentiment of La La Land was nowhere near that cheerful lol. In
all serious though, its pretty cool idea for data analytics.

------
huangc10
At the top, can you put a score or average of the analysis so we know if the
overall movie is happy or sad? That number will be interesting :D

------
kingkawn
Horrifying.

------
opticals
Make it available in French!

