Sarcasm Detection with TensorFlow

Sentiment analysis is the process of letting a computer guess the senti- ment of someone towards something based on a text. This can among other things be useful in marketing, for example in the case of the computer figuring out that a certain person likes a certain product it can present ads for si...

Full description

Bibliographic Details
Main Authors: Persson, Ludvig, Larsson, Jesper
Format: Others
Language:English
Published: KTH, Skolan för elektroteknik och datavetenskap (EECS) 2018
Subjects:
Online Access:http://urn.kb.se/resolve?urn=urn:nbn:se:kth:diva-229768
Description
Summary:Sentiment analysis is the process of letting a computer guess the senti- ment of someone towards something based on a text. This can among other things be useful in marketing, for example in the case of the computer figuring out that a certain person likes a certain product it can present ads for similar products to the person. Sentiment analy- sis in social media is when the texts analyzed are from a social media context like comments or posts on Twitter, Facebook, etc. One prob- lematic aspect of these texts is sarcasm. People tend to be sarcastic very often in social media, with sarcasm being something that can be hard to detect even for a human this does cause problems for the com- puter. This study was conducted with the intention of investigating how sarcasm detection can be performed in social media texts with the help of machine learning. For this purpose Google’s machine learning framework for Python, TensorFlow, was utilized. The machine learn- ing model created was a deep neural network with two hidden layers containing ten nodes each. As for the input a dataset of 4692 texts were used with a 80/20 training/testing split. For preprocessing the texts into a more suitable form for TensorFlow the methods Bag of Words, Bigrams and a naive method here refered to as Char for Char were con- sidered. However due to time constraints proper results from the more advanced approaches (Bigrams and Bag of Words) were not achieved. It was at least found that the rather simple approach was better than expected, with results notably better than 50% that would be highly unlikely to achieve through sheer luck. === Sentimentanalys är när en dator får till uppgift att gissa vad någon tycker on någonting baserat på en text. Detta kan bland annat vara användbart för marknadsföring, till exempel i fallet då en dator listat ut att en person tycker om en produkt kan den visa personen annonser för liknande produkter. Sentiment analys i sociala medier är när texterna som analyseras är från sociala medier, som inlägg och kommentarer från facebook, twitter, etc. En problematisk aspekt av dessa texter är sarkasm. Folk tenderar att vara sarkastiska ofta i sociala medier, samtidigt som sarkasm kan vara svårt att upptäcka även för en människa som läser texten. Denna studie genomfördes med avsikten att undersöka hur sarkasmdetektion kan genomföras på texter från sociala medier med hjälp av maskininlärning. För det syftet användes Googles maksininlärnings ramverk för Python: TensorFlow. Maskininlärningsmodellen som skapades med hjälp av ramverket var ett deep neural network med två hidden layers som består av tio noder var. För input användes ett dataset på 4692 texter med en 80/20 tränings/testnings split. För att omvandla texterna till en form som är kompatibel med TensorFlow togs metoderna Bag of Words, Bigrams, och en naiv metod här kallad Char for Char i beaktande. Tyvärr ledde brist på tid till att ordentliga resultat från de mer avancerade metoderna Bag of Words och Bigrams inte uppnådes. Däremot så ledde den naiva metoden till resultat som skiljer sig markant från 50% och som skulle vara extremt osannolika att uppnå genom ren tur.