Messung der Popularität von Seiten in sozialen Medien mit DEA in JAVA PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Messung der Social-Media-Popularität von Seiten mit DEA in JAVA

Im vorherigen Artikel haben wir über die diskutiert Datenumhüllungsanalyse Technik und wir haben gesehen, wie es als effektiver nichtparametrischer Ranking-Algorithmus verwendet werden kann. In diesem Blogbeitrag werden wir eine Implementierung der Datenumhüllungsanalyse in JAVA entwickeln und diese verwenden, um die Beliebtheit von Webseiten und Artikeln im Internet in sozialen Medien zu bewerten. Der Code ist Open-Source (unter der GPL v3-Lizenz) und kann kostenlos von heruntergeladen werden Github.

Update: Das Datumbox Machine Learning Framework ist jetzt Open Source und kostenlos für herunterladen. Schauen Sie sich das Paket com.datumbox.framework.algorithms.dea an, um die Implementierung der Datenumhüllungsanalyse in Java zu sehen.

Implementierung der Datenumhüllungsanalyse in JAVA

Der Code ist in JAVA geschrieben und kann direkt von heruntergeladen werden Github. Es ist unter GPLv3 lizenziert. Sie können es also verwenden, ändern und frei weitergeben.

Der Code implementiert die Datenumhüllungsanalyse Algorithmus, verwendet die lp_solve Bibliothek zur Lösung der linearen Programmierprobleme und verwendet extrahierte Daten aus Web-SEO-Analyse Index, um eine zusammengesetzte Social-Media-Beliebtheitsmetrik für Webseiten zu erstellen, die auf ihren Anteilen auf Facebook, Google Plus und Twitter basiert. Alle theoretischen Teile des Algorithmus werden im vorherigen Artikel behandelt. Im Quellcode finden Sie detaillierte Javadoc-Kommentare zur Implementierung.

Im Folgenden finden Sie eine allgemeine Beschreibung der Architektur der Implementierung:

1. Bibliothek lp_solve 5.5

Um die verschiedenen linearen Programmierprobleme zu lösen, verwenden wir eine Open-Source-Bibliothek namens lp_solve. Die bestimmte Bibliothek ist in ANSI C geschrieben und verwendet einen JAVA-Wrapper, um die Bibliotheksmethoden aufzurufen. Daher müssen Sie vor dem Ausführen des Codes lp_solve auf Ihrem System installieren. Binärdateien der Bibliothek stehen für beide zur Verfügung Linux und Windows Weitere Informationen zur Installation finden Sie unter lp_solve Dokumentation.

Stellen Sie sicher, dass die jeweilige Bibliothek auf Ihrem System installiert ist, bevor Sie versuchen, den JAVA-Code auszuführen. Informationen zu Problemen bei der Installation und Konfiguration der Bibliothek finden Sie in der Dokumentation zu lp_solve.

2. DataEnvelopmentAnalysis-Klasse

Dies ist die Hauptklasse der Implementierung des DEA-Algorithmus. Es implementiert eine öffentliche Methode namens EstimateEfficiency (), die eine Karte mit Datensätzen erstellt und deren DEA-Werte zurückgibt.

3. DeaRecord-Objekt

Der DeaRecord ist ein spezielles Objekt, das die Daten unseres Datensatzes speichert. Da DEA die Trennung von Eingabe und Ausgabe erfordert, speichert das DeaRecord-Objekt unsere Daten separat, so dass DEA damit umgehen kann.

4. SocialMediaPopularity-Klasse

Die SocialMediaPopularity ist eine Anwendung, die DEA verwendet, um die Beliebtheit einer Seite in Social Media-Netzwerken anhand ihrer Facebook-Likes, Google + 1s und Tweets zu bewerten. Es implementiert zwei geschützte Methoden, berechnePopularität () und SchätzungPerzentile (), zusammen mit zwei öffentlichen Methoden, loadFile () und getPopularity ().

Die berechnePopularität () verwendet die DEA-Implementierung, um die Punktzahlen der Seiten basierend auf ihren Social-Media-Zählungen zu schätzen. Die EstimatePercentiles () -Methode ruft die DEA-Scores ab und konvertiert sie in Perzentile. Im Allgemeinen sind Perzentile leichter zu erklären als DEA-Scores. Wenn wir also sagen, dass der Beliebtheitswert einer Seite 70% beträgt, bedeutet dies, dass die jeweilige Seite beliebter ist als die 70% der Seiten.

Um die Popularität einer bestimmten Seite abschätzen zu können, benötigen wir einen Datensatz mit den Social-Media-Zählungen anderer Seiten. Dies ist sinnvoll, da Sie, um vorherzusagen, welche Seite beliebt ist und welche nicht, in der Lage sein müssen, sie mit anderen Seiten im Web zu vergleichen. Dazu verwenden wir eine kleine anonymisierte Stichprobe aus dem Web-SEO-Analytics-Index, die im TXT-Format bereitgestellt wird. Sie können Ihre eigene Datenbank erstellen, indem Sie die Anzahl der sozialen Medien aus mehr Seiten im Web extrahieren.

Die loadFile () -Methode wird verwendet, um die oben genannten Statistiken auf DEA zu laden, und die getPopularity () -Methode ist eine einfach zu verwendende Methode, mit der Facebook-Likes, Google + 1s und die Anzahl der Tweets einer Seite abgerufen und ihre Beliebtheit in sozialen Medien bewertet werden .

Verwenden der JAVA-Implementierung der Datenumhüllungsanalyse

In der DataEnvelopmentAnalysisExample-Klasse stelle ich zwei verschiedene Beispiele für die Verwendung des Codes bereit.

Im ersten Beispiel wird die DEA-Methode direkt verwendet, um die Effizienz von Organisationseinheiten anhand ihrer Ausgabe (PROBLEME, EMPFÄNGE, ANFRAGEN) und Eingabe (LAGER, LÖHNE) zu bewerten. Dieses Beispiel stammt aus einem Artikel von 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());

Im zweiten Beispiel wird unsere Social Media Popularity-Anwendung verwendet, um die Popularität einer Seite mithilfe von Daten aus Social Media wie Facebook Likes, Google + 1s und Tweets zu bewerten. Alle Social-Media-Zählungen werden als Ausgabe markiert und wir übergeben einen leeren Eingabevektor an 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());

Notwendige Erweiterungen

Der bereitgestellte Code ist nur ein Beispiel dafür, wie DEA als Ranking-Algorithmus verwendet werden kann. Hier sind einige Erweiterungen, die vorgenommen werden müssen, um die Implementierung zu verbessern:

1. Beschleunigung der Implementierung

Die jeweilige DEA-Implementierung wertet die DEA-Bewertungen aller Datensätze in der Datenbank aus. Dies macht die Implementierung langsam, da wir so viele lineare Programmierprobleme lösen müssen wie die Anzahl der Datensätze in der Datenbank. Wenn wir nicht die Punktzahl aller Datensätze berechnen müssen, können wir die Ausführung erheblich beschleunigen. Eine kleine Erweiterung des Algorithmus kann uns daher eine bessere Kontrolle darüber geben, welche Datensätze gelöst und welche nur als Einschränkungen verwendet werden sollen.

2. Erweitern der Social Media Counts-Datenbank

Die bereitgestellte Social Media Counts-Datenbank besteht aus 1111 Beispielen aus dem Web SEO Analytics-Index. Um einen genaueren Beliebtheitswert abschätzen zu können, ist eine größere Stichprobe erforderlich. Sie können Ihre eigene Datenbank erstellen, indem Sie die Anzahl der sozialen Medien auf mehreren Seiten des Webs schätzen.

3. Hinzufügen weiterer Social Media-Netzwerke

Die Implementierung verwendet die Facebook-Likes, Google + 1s und die Anzahl der Tweets, um die Beliebtheit eines Artikels zu bewerten. Trotzdem können Metriken aus anderen Social-Media-Netzwerken leicht berücksichtigt werden. Sie müssen lediglich eine Datenbank mit den Anzahlen der sozialen Medien aus den Netzwerken erstellen, an denen Sie interessiert sind, und die SocialMediaPopularity-Klasse erweitern, um sie entsprechend zu behandeln.

Schlussbemerkungen zur Umsetzung

Um die Implementierung erweitern zu können, müssen Sie ein gutes Verständnis dafür haben, wie Datenumhüllungsanalyse funktioniert. Dies wird im vorherigen Artikel behandelt. Lesen Sie daher unbedingt das Lernprogramm, bevor Sie mit den Änderungen fortfahren. Um den JAVA-Code verwenden zu können, müssen Sie außerdem die Bibliothek lp_solve auf Ihrem System installiert haben (siehe oben).

Wenn Sie die Implementierung in einem interessanten Projekt verwenden Schreiben Sie uns und wir werden Ihr Projekt in unserem Blog vorstellen. Auch wenn Ihnen der Artikel gefällt, nehmen Sie sich bitte einen Moment Zeit und teilen Sie ihn auf Twitter oder Facebook.

Zeitstempel:

Mehr von Bezugsbox