This is a 2017 version of the prediction of Eurovision results from Twitter data. I have explained systematics in quite detailed fashion in the post describing the results from 2015 which you can find here (and 2016 results are here ). Very shortly, I measured how many tweets have been sent about each song from each country. From this, I estimated amount of votes that each country would give to another. For example, if Germans tweets the most about Polish song, I assume that Germany will give Poland 12 points. Notice that this is very different then simply collecting all the tweets and measuring which song was most tweeted about – this would be heavily biased toward to countries that use Twitter the most; these measurements are normalized per each country. Even though this is very crude estimate and possible caveats are numerous 2015 winner was correctly predicted and overall the prediction was quite good (see here for comparing prediction to actual results). For 2016 the prediction was that Russia was going to win, but they finished second (they won popular vote though, which is closer to what this method is actually measuring). Note that this year Italy is a strong favorite, which is not included in this analysis as it did not take part in semi-finals.
Below you can find some other interesting plots. First, I am showing the time dependence of tweets during the semi-finals. Notice how you can precisely see when which country is performing. You can even when the breaks in the program are, and also the beginning of the voting (around 1.6 hours after the start of the programme) and announcement of results (bump at 2 hours). Notice the very strong performance of Portugal in first semi-final, with tweets continuing during the whole show. Also, Montenegro attracted many tweets, due to their extravagant singer and performance.
Even though the semi-finals have finished, it is only known which countries advance to the finals, but not their score in semi-finals. Below I show what is the prediction for the number of points in the semi-finals (you can compare it after the Eurovision is finished and these results are made public). In the first semi-final the algorithm correctly predicts 9 out of 10 countries that passed to finals (although it fails spectacularly for Montenegro! This is good to remind us that number of tweets is not actually the same as number of points!). For second semi-final we seem to be also doing ok, with 8 out of 10 countries correctly predicted and without catastrophic failures.