Måling av sosiale mediers popularitet til sider med DEA i JAVA PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.

Måling av sosiale medier popularitet av sider med DEA i JAVA

I forrige artikkel har vi diskutert om Analyse av datakonvolutt teknikk og vi har sett hvordan den kan brukes som en effektiv ikke-parametrisk rangeringsalgoritme. I dette blogginnlegget vil vi utvikle en implementering av Data Envelopment Analysis i JAVA, og vi vil bruke den til å evaluere populariteten til sosiale medier på nettsider og artikler på nettet. Koden er åpen (under GPL v3-lisens), og du kan laste den ned fritt fra Github.

Oppdatering: Datumbox Machine Learning Framework er nå åpen kildekode og gratis å nedlasting. Sjekk ut pakken com.datumbox.framework.algorithms.dea for å se implementeringen av Data Envelopment Analysis i Java.

Implementering av datakonvoluttanalyse i JAVA

Koden er skrevet i JAVA og kan lastes ned direkte fra Github. Det er lisensiert under GPLv3, så bruk det gjerne, modifiser det og omfordel det fritt.

Koden implementerer Analyse av datakonvolutt algoritme, bruker lp_solve bibliotek for å løse problemene med lineær programmering og bruker hentet data fra Web SEO Analytics indeks for å lage en sammensatt popularitetsmåling for sosiale medier for websider basert på deres aksjer på Facebook, Google Plus og Twitter. Alle de teoretiske delene av algoritmen er omtalt i forrige artikkel, og i kildekoden kan du finne detaljerte javadoc-kommentarer angående implementeringen.

Nedenfor gir vi en beskrivelse på høyt nivå av implementeringsarkitekturen:

1. lp_solve 5.5 bibliotek

For å løse de forskjellige lineære programmeringsproblemene bruker vi et open source-bibliotek kalt lp_solve. Den spesielle lib er skrevet i ANSI C og bruker en JAVA wrapper for å påkalle biblioteksmetodene. Derfor må du installere lp_solve på systemet ditt før du kjører koden. Binarier i biblioteket er tilgjengelige både for Linux og Windows og du kan lese mer informasjon om installasjonen på lp_solve dokumentasjon.

Forsikre deg om at det aktuelle biblioteket er installert på systemet ditt før du prøver å kjøre JAVA-koden. For eventuelle problemer angående installering og konfigurering av biblioteket, se dokumentasjonen lp_solve.

2. DataEnvelopmentAnalysis Class

Dette er hovedklassen for implementering av DEA-algoritme. Den implementerer en offentlig metode kalt estimateffektivitet () som tar et kart over poster og returnerer DEA-score.

3. DeaRecord-objekt

DeaRecord er et spesielt objekt som lagrer dataene i posten vår. Siden DEA krever å skille inngang og utgang, lagrer DeaRecord Object våre data separat på en måte som DEA kan håndtere det.

4. SocialMediaPopularity -klasse

SocialMediaPopularity er et program som bruker DEA til å evaluere populariteten til en side på sosiale medienettverk basert på Facebook-likes, Google + 1-er og tweets. Den implementerer to beskyttede metoder, beregnePopularity () og estimatPercentiler () sammen med to offentlige metoder loadFile () og getPopularity ().

CalcPopularity () bruker DEA-implementeringen til å estimere resultatene på sidene basert på antall sosiale medier. EstimatPercentiles () -metoden får DEA-poengene og konverterer dem til persentiler. Generelt er persentiler lettere å forklare enn DEA-score; altså når vi sier at populariteten til en side er 70%, betyr det at den aktuelle siden er mer populær enn de 70% av sidene.

For å kunne estimere populariteten til en bestemt side, må vi ha et datasett med antall sosiale sider på andre sider. Dette er fornuftig, for å forutsi hvilken side som er populær og ikke, må du kunne sammenligne den med andre sider på nettet. For å gjøre dette bruker vi et lite anonymisert utvalg fra Web SEO Analytics-indeksen i txt-format. Du kan bygge din egen database ved å trekke ut sosiale medier fra flere sider på nettet.

LoadFile () -metoden brukes til å laste inn den nevnte statistikken på DEA og getPopularity () -metoden er en brukervennlig metode som får Facebook-likes, Google + 1 og antall tweets på en side og evaluerer dens popularitet på sosiale medier .

Bruke JAVA-implementeringen av Data Envelopment Analysis

I DataEnvelopmentAnalysisExample Class I gir du to forskjellige eksempler på hvordan du bruker koden.

Det første eksemplet bruker DEA-metoden direkte til å evaluere effektiviteten til organisasjonsenheter basert på deres produksjon (SPØRSMÅL, MOTTAK, REQS) og inngang (LAGER, LØNN). Dette eksemplet er hentet fra en artikkel av 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());

Det andre eksemplet bruker vår Social Media Popularity-applikasjon til å evaluere populariteten til en side ved å bruke data fra sosiale medier som Facebook Likes, Google + 1s og Tweets. Alle sosiale medier teller er merket som utdata, og vi overfører til DEA en tom inngangsvektor.

        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());

Nødvendige utvidelser

Den oppgitte koden er bare et eksempel på hvordan DEA kan brukes som en rangeringsalgoritme. Her er få utvidelser som må gjøres for å forbedre implementeringen:

1. Fremskynde implementeringen

Den spesifikke implementeringen av DEA evaluerer DEA-score for alle postene i databasen. Dette gjør implementeringen langsom siden vi trenger å løse så mange lineære programmeringsproblemer som antall poster i databasen. Hvis vi ikke trenger å beregne poengsummen for alle postene, kan vi øke kjøringen betydelig. Dermed kan en liten utvidelse av algoritmen gi oss bedre kontroll over hvilke poster som skal løses og hvilke som bare skal brukes som begrensninger.

2. Utvide Social Media Counts Database

Den medfølgende Social Media Counts Database består av 1111 eksempler fra Web SEO Analytics-indeksen. For å kunne estimere en mer nøyaktig popularitetspoeng, er et større utvalg nødvendig. Du kan lage din egen database ved å estimere antall sosiale medier fra flere sider på nettet.

3. Legge til flere sosiale medier

Implementeringen bruker Facebook Likes, Google + 1 og antall tweets for å evaluere populariteten til en artikkel. Likevel kan det enkelt tas hensyn til beregninger fra andre sosiale nettverk. Alt du trenger å gjøre er å bygge en database med antall sosiale medier fra nettverkene du er interessert i og utvide SocialMediaPopularity-klassen for å håndtere dem deretter.

Avsluttende kommentarer til gjennomføringen

For å kunne utvide implementeringen må du ha en god forståelse av hvordan Analyse av datakonvolutt virker. Dette er omtalt i forrige artikkel, så vær sikker på at du leser veiledningen før du fortsetter med endringene. Videre må du ha installert lp_solve-biblioteket for å kunne bruke JAVA-koden (se ovenfor).

Hvis du bruker implementeringen i et interessant prosjekt slipp oss en linje og vi vil presentere prosjektet ditt på bloggen vår. Også hvis du liker artikkelen, kan du ta et øyeblikk og dele den på Twitter eller Facebook.

Tidstempel:

Mer fra Datoboks