Στην εργασία μας, διερευνούμε την ανίχνευση ψευδών tweets στο Twitter χρησιμοποιώντας την επεξεργασία φυσικής γλώσσας (NLP) με τη γλώσσα προγραμματισμού Python μέσω της εποπτευόμενης μηχανικής μάθησης. Μελετήσαμε μια ποικιλία προσεγγίσεων στο θέμα από διάφορες πηγές και συγγραφείς. Αυτό μας ενέπνευσε να συνδυάσουμε αυτές τις προσεγγίσεις με στόχο να μάθουμε ποιοι συνδυασμοί λειτουργούν καλύτερα.
Για αυτό τον σκοπό, έχουμε αναπτύξει ένα εργαλείο λογισμικού, το οποίο ελέγχει το ποσοστό επιτυχίας τεσσάρων (4) διαφορετικών συστημάτων για την ανίχνευση ψευδών ειδήσεων χρησιμοποιώντας τέσσερα (4) διαφορετικά σύνολα δεδομένων, με αποτέλεσμα συνολικά δεκαέξι (16) ποσοστά επιτυχίας, ένα για κάθε συνδυασμό.
Για τη δημιουργία του παραπάνω εργαλείου, χρησιμοποιήσαμε το σύνολο δεδομένων PHEME [15], το οποίο περιλαμβάνει χιλιάδες πραγματικά προ-επεξεργασμένα tweets με ετικέτα που εξάγονται μέσω του TweeterAPI [16]. Δημιουργήσαμε ένα πρόγραμμα python, το οποίο αναλύει το προαναφερθέν σύνολο δεδομένων και αποθηκεύει όλα τα tweets από αυτό σε αρχεία της μορφής .tsv. Έχουμε τέσσερα (4) διαφορετικά σύνολα δεδομένων που διαφοροποιούνται βάσει των ακόλουθων χαρακτηριστικών:
1. Πρέπει να αποδεχτούμε την ύπαρξη διπλών tweet: Μερικά από τα ίδια tweets μπορεί να έχουν κοινοποιηθεί από διάφορους χρήστες / προφίλ.
2. Πρέπει να αποδεχτούμε μια τρίτη ετικέτα για την εγκυρότητα των tweets εκτός από το "true" (αληθής είδηση) ή "false" (ψευδής είδηση) , το οποίο είναι το "undefined" (είδηση απροσδιόριστης εγκυρότητας).
Αφού επιλεγεί ένα αρχείο .tsv, πραγματοποιείται η ανάλυση συναισθήματος σε κάθε tweet με τη χρήση του αλγορίθμου Sentiment Intensity Analyzer [17]. Στη συνέχεια, επεξεργάζονται τα αποτελέσματα αυτής της ανάλυσης και αποφασίζεται εάν ένα tweet θα πρέπει να επισημαίνεται ως θετικό ή αρνητικό.
Στη συνέχεια, χρησιμοποιούμε ένα pipeline στο οποίο εκτελούνται κατά σειρά τα ακόλουθα βήματα:
1. Αναγνώριση λεξικών μονάδων (Tokenization) και λημματοποίηση (Lemmatization) σε αναπαράσταση σάρωσης λέξεων (bag of words) χρησιμοποιώντας NLTK
2. Διανυσματοποίηση (Vectorization) χρησιμοποιώντας τον απαριθμητή διανυσμάτων (Count Vectorizer) ή διανυσματοποιητή συχνότητας όρου – άνισης κατανομής του όρου (TF-IDF Vectorizer) μέσω της βιβλιοθήκης Scikit-Learn.
3. Ταξινόμηση (Classification) χρησιμοποιώντας Μηχανές Διανυσμάτων Υποστήριξης (Support Vector Machine) ή τον Πολυωνυμικό Απλοϊκό Ταξινομητή Bayes (Multinomial Naive Bayes) μέσω της βιβλιοθήκης Scikit-Learn.
Ο συνδυασμός της γλωσσικής και της συναισθηματικής επεξεργασίας εξάγει διαφορετικά αποτελέσματα με βάση την επιλογή του αρχείου, του διανυσματοποιητή και του ταξινομητή. Το ποσοστό επιτυχίας των σωστά επισημασμένων με ετικέτα δεδομένων κυμαίνεται μεταξύ 54,6% και 99,8%.
(EL)
The advancement of social networks has facilitated the sharing and spread of news among people all over the world. With the growth of these networks and of the volume of news shared daily, the phenomena of fake news have become stronger and widely spread. Over the past few years, big social networks like Twitter admit that fake and duplicate accounts, fake news and fake likes exist in their networks. This stems from the fact that the social network account owners have the ability to distribute false information, to support or attack an idea or a product, to promote or demote an election candidate, as well as to influence real network users in their decision making. Therefore, misinformation detection in enhancing public trust and society stability becomes of critical importance. Along these lines, detection of misinformation is still a challenging problem for the Natural Language Processing community.
In our work, we have utilized natural language processing and supervised machine learning in order to detect fake tweets using Python. We have studied a variety of approaches on the subject from various sources and authors. This inspired us to combine these approaches with the goal to find out which combinations work better. Therefore, we have developed a software tool, which checks the success ratio of four (4) different systems for fake news detection using four (4) different datasets, resulting in a total of sixteen (16) ratios, one for each combination.
(EN)