Μέτρηση της δημοτικότητας των σελίδων στα μέσα κοινωνικής δικτύωσης με DEA στο JAVA PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Μέτρηση της δημοτικότητας των κοινωνικών μέσων των σελίδων με την DEA στην JAVA

Στο προηγούμενο άρθρο έχουμε συζητήσει για το Ανάλυση φακέλων δεδομένων τεχνική και έχουμε δει πώς μπορεί να χρησιμοποιηθεί ως ένας αποτελεσματικός μη παραμετρικός αλγόριθμος κατάταξης. Σε αυτήν την ανάρτηση ιστολογίου θα αναπτύξουμε μια εφαρμογή της Ανάλυσης φακέλων δεδομένων στην JAVA και θα την χρησιμοποιήσουμε για να αξιολογήσουμε τη δημοτικότητα των κοινωνικών μέσων σε ιστοσελίδες και άρθρα στον Ιστό. Ο κωδικός είναι ανοιχτού κώδικα (με άδεια GPL v3) και μπορείτε να τον κατεβάσετε δωρεάν από Github.

Ενημέρωση: Το Datumbox Machine Learning Framework είναι τώρα ανοιχτού κώδικα και δωρεάν κατεβάσετε. Ρίξτε μια ματιά στο πακέτο com.datumbox.framework.algorithms.dea για να δείτε την εφαρμογή του Data Envelopment Analysis στην Java.

Εφαρμογή ανάλυσης φακέλων δεδομένων στην JAVA

Ο κωδικός είναι γραμμένος σε JAVA και μπορείτε να τον κατεβάσετε απευθείας από Github. Έχει άδεια χρήσης βάσει του GPLv3, οπότε μη διστάσετε να το χρησιμοποιήσετε, να το τροποποιήσετε και να το αναδιανείμετε ελεύθερα.

Ο κώδικας εφαρμόζει το Ανάλυση φακέλων δεδομένων αλγόριθμος, χρησιμοποιεί το lp_solve βιβλιοθήκη για την επίλυση προβλημάτων γραμμικού προγραμματισμού και χρησιμοποιεί εξαγόμενα δεδομένα από Ανάλυση SEO Ιστού ευρετήριο για τη δημιουργία μιας σύνθετης μέτρησης δημοτικότητας των κοινωνικών μέσων για ιστοσελίδες με βάση τις κοινοποιήσεις τους στο Facebook, το Google Plus και το Twitter. Όλα τα θεωρητικά μέρη του αλγορίθμου καλύπτονται στο προηγούμενο άρθρο και στον πηγαίο κώδικα μπορείτε να βρείτε λεπτομερή σχόλια javadoc σχετικά με την εφαρμογή.

Παρακάτω παρέχουμε μια περιγραφή υψηλού επιπέδου της αρχιτεκτονικής της υλοποίησης:

1. βιβλιοθήκη lp_solve 5.5

Για να λύσουμε τα διάφορα προβλήματα γραμμικού προγραμματισμού, χρησιμοποιούμε μια βιβλιοθήκη ανοιχτού κώδικα που ονομάζεται lp_solve. Το συγκεκριμένο lib είναι γραμμένο στο ANSI C και χρησιμοποιεί ένα περιτύλιγμα JAVA για να επικαλεστεί τις μεθόδους της βιβλιοθήκης. Επομένως, προτού εκτελέσετε τον κωδικό, πρέπει να εγκαταστήσετε το lp_solve στο σύστημά σας. Τα δυαδικά αρχεία της βιβλιοθήκης διατίθενται και για τα δύο Linux και Windows και μπορείτε να διαβάσετε περισσότερες πληροφορίες σχετικά με την εγκατάσταση στο lp_solve τεκμηρίωση.

Βεβαιωθείτε ότι η συγκεκριμένη βιβλιοθήκη είναι εγκατεστημένη στο σύστημά σας πριν προσπαθήσετε να εκτελέσετε τον κώδικα JAVA. Για οποιοδήποτε πρόβλημα σχετικά με την εγκατάσταση και τη διαμόρφωση της βιβλιοθήκης, ανατρέξτε στην τεκμηρίωση lp_solve.

2. Τάξη DataEnvelopmentAnalisis

Αυτή είναι η κύρια κατηγορία εφαρμογής του αλγορίθμου DEA. Εφαρμόζει μια δημόσια μέθοδο που ονομάζεται estimEfficiency () η οποία λαμβάνει ένα χάρτη εγγραφών και επιστρέφει τις βαθμολογίες DEA τους.

3. Αντικείμενο DeaRecord

Το DeaRecord είναι ένα ειδικό αντικείμενο που αποθηκεύει τα δεδομένα της εγγραφής μας. Δεδομένου ότι το DEA απαιτεί το διαχωρισμό της εισόδου και της εξόδου, το αντικείμενο DeaRecord αποθηκεύει τα δεδομένα μας ξεχωριστά με τρόπο που το DEA μπορεί να το χειριστεί.

4. Τάξη SocialMediaPopularity

Το SocialMediaPopularity είναι μια εφαρμογή που χρησιμοποιεί το DEA για να αξιολογήσει τη δημοτικότητα μιας σελίδας στα δίκτυα κοινωνικών μέσων με βάση τις επισημάνσεις "μου αρέσει" στο Facebook, το Google +1 και τα Tweets. Εφαρμόζει δύο προστατευμένες μεθόδους το calculPopularity () και το estimPercentiles () μαζί με δύο δημόσιες μεθόδους το loadFile () και το getPopularity ().

Το calculPopularity () χρησιμοποιεί την εφαρμογή DEA για να εκτιμήσει τις βαθμολογίες των σελίδων με βάση τις μετρήσεις των κοινωνικών μέσων. Η μέθοδος estimPercentiles () παίρνει τις βαθμολογίες DEA και τις μετατρέπει σε εκατοστημόρια. Σε γενικές γραμμές τα εκατοστημόρια είναι πιο εύκολο να εξηγηθούν από τα αποτελέσματα DEA. Έτσι, όταν λέμε ότι η βαθμολογία δημοτικότητας μιας σελίδας είναι 70% σημαίνει ότι η συγκεκριμένη σελίδα είναι πιο δημοφιλής από το 70% των σελίδων.

Για να μπορέσουμε να εκτιμήσουμε τη δημοτικότητα μιας συγκεκριμένης σελίδας, πρέπει να έχουμε ένα σύνολο δεδομένων με τις μετρήσεις των κοινωνικών μέσων άλλων σελίδων. Αυτό έχει νόημα αφού για να προβλέψετε ποια σελίδα είναι δημοφιλής και ποια όχι, πρέπει να μπορείτε να τη συγκρίνετε με άλλες σελίδες στον ιστό. Για να το κάνουμε αυτό, χρησιμοποιούμε ένα μικρό ανώνυμο δείγμα από το ευρετήριο του Web SEO Analytics που παρέχεται σε μορφή txt. Μπορείτε να δημιουργήσετε τη δική σας βάση δεδομένων εξάγοντας τους αριθμούς κοινωνικών μέσων από περισσότερες σελίδες στον ιστό.

Η μέθοδος loadFile () χρησιμοποιείται για τη φόρτωση των προαναφερθέντων στατιστικών για το DEA και η μέθοδος getPopularity () είναι μια εύχρηστη μέθοδος που λαμβάνει το Facebook, το Google +1 και τον αριθμό των Tweets μιας σελίδας και αξιολογεί τη δημοτικότητά του στα κοινωνικά μέσα .

Χρήση της εφαρμογής JAVA Analysis Envelopment Analysis

Στην κλάση DataEnvelopmentAnalysisExample I παρέχουν 2 διαφορετικά παραδείγματα για τον τρόπο χρήσης του κώδικα.

Το πρώτο παράδειγμα χρησιμοποιεί απευθείας τη μέθοδο DEA για την αξιολόγηση της αποτελεσματικότητας των οργανωτικών μονάδων με βάση την παραγωγή τους (ΘΕΜΑΤΑ, ΠΑΡΑΛΑΒΕΣ, REQS) και είσοδο (STOCK, WAGES). Αυτό το παράδειγμα προήλθε από ένα άρθρο του DEAzone.com.

        Map<String, DeaRecord> records = new LinkedHashMap<>();
        
        records.put("Depot1", new DeaRecord(new double[]{40.0,55.0,30.0}, new double[]{3.0,5.0}));
        //...adding more records here...
        
        DataEnvelopmentAnalysis dea = new DataEnvelopmentAnalysis();
        Map<String, Double> results = dea.estimateEfficiency(records);
        System.out.println((new TreeMap<>(results)).toString());

Το δεύτερο παράδειγμα χρησιμοποιεί την εφαρμογή Social Media Popularity για να αξιολογήσει τη δημοτικότητα μιας σελίδας χρησιμοποιώντας δεδομένα από τα Social Media όπως το Facebook Likes, το Google +1 και τα Tweets. Όλες οι μετρήσεις των κοινωνικών μέσων επισημαίνονται ως έξοδος και μεταβιβάζουμε στο DEA έναν κενό φορέα εισόδου.

        SocialMediaPopularity rank = new SocialMediaPopularity();
        rank.loadFile(DataEnvelopmentAnalysisExample.class.getResource("/datasets/socialcounts.txt"));
        Double popularity = rank.getPopularity(135, 337, 9079); //Facebook likes, Google +1s, Tweets
        System.out.println("Page Social Media Popularity: "+popularity.toString());

Απαραίτητες επεκτάσεις

Ο παρεχόμενος κωδικός είναι απλώς ένα παράδειγμα του τρόπου με τον οποίο το DEA μπορεί να χρησιμοποιηθεί ως αλγόριθμος κατάταξης. Ακολουθούν μερικές επεκτάσεις που πρέπει να γίνουν προκειμένου να βελτιωθεί η εφαρμογή:

1. Επιτάχυνση της εφαρμογής

Η συγκεκριμένη εφαρμογή DEA αξιολογεί τις βαθμολογίες DEA όλων των εγγραφών στη βάση δεδομένων. Αυτό καθιστά την εφαρμογή αργή, δεδομένου ότι απαιτούμε επίλυση τόσων προβλημάτων γραμμικού προγραμματισμού όσο και του αριθμού εγγραφών στη βάση δεδομένων. Εάν δεν απαιτείται υπολογισμός της βαθμολογίας όλων των εγγραφών, τότε μπορούμε να επιταχύνουμε σημαντικά την εκτέλεση. Έτσι, μια μικρή επέκταση του αλγορίθμου μπορεί να μας δώσει καλύτερο έλεγχο σχετικά με το ποιες εγγραφές πρέπει να επιλυθούν και ποιες θα πρέπει να χρησιμοποιούνται μόνο ως περιορισμοί.

2. Επέκταση της βάσης δεδομένων μέτρησης κοινωνικών μέσων

Η παρεχόμενη βάση δεδομένων μέτρησης κοινωνικών μέσων αποτελείται από 1111 δείγματα από το ευρετήριο του Web SEO Analytics. Για να μπορέσετε να εκτιμήσετε μια πιο ακριβή βαθμολογία δημοτικότητας, απαιτείται ένα μεγαλύτερο δείγμα. Μπορείτε να δημιουργήσετε τη δική σας βάση δεδομένων εκτιμώντας τον αριθμό των κοινωνικών μέσων από περισσότερες σελίδες του διαδικτύου.

3. Προσθήκη περισσότερων δικτύων κοινωνικών μέσων

Η εφαρμογή χρησιμοποιεί το Facebook Likes, το Google +1 και τον αριθμό των Tweets για να αξιολογήσει τη δημοτικότητα ενός άρθρου. Ωστόσο, οι μετρήσεις από άλλα δίκτυα κοινωνικών μέσων μπορούν εύκολα να ληφθούν υπόψη. Το μόνο που χρειάζεται να κάνετε είναι να δημιουργήσετε μια βάση δεδομένων με τις μετρήσεις των μέσων κοινωνικής δικτύωσης από τα δίκτυα που σας ενδιαφέρουν και να επεκτείνετε την τάξη SocialMediaPopularity για να τα χειριστείτε ανάλογα.

Τελικά σχόλια για την εφαρμογή

Για να μπορέσετε να επεκτείνετε την εφαρμογή πρέπει να έχετε μια καλή κατανόηση του πώς Ανάλυση φακέλων δεδομένων έργα. Αυτό καλύπτεται στο προηγούμενο άρθρο, οπότε βεβαιωθείτε ότι έχετε διαβάσει το σεμινάριο προτού προχωρήσετε σε οποιεσδήποτε αλλαγές. Επιπλέον, για να χρησιμοποιήσετε τον κωδικό JAVA πρέπει να έχετε εγκαταστήσει στο σύστημά σας τη βιβλιοθήκη lp_solve (βλ. Παραπάνω).

Εάν χρησιμοποιείτε την εφαρμογή σε ένα ενδιαφέρον έργο Αφήστε μας μια γραμμή και θα παρουσιάσουμε το έργο σας στο ιστολόγιό μας. Επίσης, αν σας αρέσει το άρθρο, αφιερώστε λίγο χρόνο και μοιραστείτε το στο Twitter ή στο Facebook.

Σφραγίδα ώρας:

Περισσότερα από Databox