Az oldalak közösségi média népszerűségének mérése DEA-val JAVA PlatoBlockchain Data Intelligence segítségével. Függőleges keresés. Ai.

Az oldalak közösségi média népszerűségének mérése DEA-val JAVA nyelven

Az előző cikkben arról beszéltünk Adatburok-elemzés technikát, és láttuk, hogyan használható hatékony, nem paraméteres rangsoroló algoritmusként. Ebben a blogbejegyzésben a Data Envelopment Analysis megvalósítását dolgozzuk ki JAVA nyelven, és ennek segítségével értékeljük a weboldalak és cikkek közösségi média népszerűségét. A kód nyílt forráskódú (GPL v3 licenc alatt), és ingyenesen letölthető innen GitHub.

Frissítés: A Datumbox Machine Learning Framework nyílt forráskódú és ingyenes letöltés. Tekintse meg a com.datumbox.framework.algorithms.dea csomagot, hogy megtudja, hogyan valósult meg a Data Envelopment Analysis Java nyelven.

Data Envelopment Analysis implementáció JAVA-ban

A kód JAVA nyelven íródott, és közvetlenül letölthető innen GitHub. A GPLv3 licenc alatt van, így nyugodtan használhatja, módosíthatja és szabadon terjesztheti.

A kód megvalósítja a Adatburok-elemzés algoritmust használja a lp_solve könyvtár a Lineáris Programozási problémák megoldására, és abból kinyert adatokat használ Web SEO Analytics indexet annak érdekében, hogy a weboldalak Facebookon, Google Plus-on és Twitteren való megosztása alapján összetett közösségimédia-népszerűségi mérőszámot hozzon létre. Az algoritmus minden elméleti részével az előző cikkben foglalkoztunk, a forráskódban pedig részletes javadoc megjegyzések találhatók az implementációval kapcsolatban.

Az alábbiakban egy magas szintű leírást adunk az implementáció architektúrájáról:

1. lp_solve 5.5 könyvtár

A különféle lineáris programozási problémák megoldására egy lp_solve nevű nyílt forráskódú könyvtárat használunk. Az adott lib ANSI C-ben van írva, és egy JAVA burkoló segítségével hívja elő a könyvtári metódusokat. Így a kód futtatása előtt telepítenie kell az lp_solve-t a rendszerére. A könyvtár bináris fájljai mindkettő számára elérhetők Linux és Windows és további információkat olvashat a telepítésről a lp_solve dokumentáció.

Kérjük, győződjön meg arról, hogy az adott könyvtár telepítve van a rendszerére, mielőtt megpróbálná futtatni a JAVA kódot. A könyvtár telepítésével és konfigurálásával kapcsolatos bármilyen probléma esetén tekintse meg az lp_solve dokumentációját.

2. DataEnvelopmentAnalysis osztály

Ez a DEA-algoritmus megvalósításának fő osztálya. Megvalósítja azbecslésEfficiency() nevű nyilvános metódust, amely felveszi a rekordok térképét, és visszaadja a DEA-pontszámaikat.

3. DeaRecord Object

A DeaRecord egy speciális objektum, amely rekordunk adatait tárolja. Mivel a DEA megköveteli a bemenet és a kimenet elválasztását, a DeaRecord Object külön tárolja adatainkat úgy, hogy a DEA kezelni tudja azokat.

4. SocialMediaNépszerűségi osztály

A SocialMediaPopularity egy olyan alkalmazás, amely a DEA segítségével értékeli egy oldal népszerűségét a közösségi média hálózatokon a Facebook kedvelések, a Google +1-ek és a tweetek alapján. Két védett metódust valósít meg, a számításPopularity() és a assessmentPercentiles(), valamint két nyilvános metódust, a loadFile() és a getPopularity().

A CalculatePopularity() a DEA implementációt használja az oldalak pontszámainak becslésére a közösségi média számaik alapján. AzbecslésPercentiles() metódus lekéri a DEA pontszámokat, és százalékossá alakítja. Általában a percentiliseket könnyebb megmagyarázni, mint a DEA pontszámokat; így ha azt mondjuk, hogy egy oldal népszerűségi pontszáma 70%, az azt jelenti, hogy az adott oldal népszerűbb, mint az oldalak 70%-a.

Ahhoz, hogy meg tudjuk becsülni egy adott oldal népszerűségét, rendelkeznünk kell egy adathalmazzal, amely más oldalak közösségi oldalainak számát tartalmazza. Ez logikus, mivel annak megjóslásához, hogy melyik oldal népszerű és melyik nem, össze kell tudnia hasonlítani az internet más oldalaival. Ehhez egy kis anonimizált mintát használunk a Web SEO Analytics indexből, amelyet txt formátumban biztosítunk. Saját adatbázist készíthet úgy, hogy a közösségi oldalak számait a weben több oldalról kinyeri.

A loadFile() metódus a fent említett DEA-statisztikák betöltésére szolgál, a getPopularity() metódus pedig egy könnyen használható módszer, amely lekéri egy oldal Facebook like-ait, Google +1-eit és Tweetjei számát, és értékeli a népszerűségét a közösségi médiában. .

A Data Envelopment Analysis JAVA implementáció használata

A DataEnvelopmentAnalysisExample I. osztályban 2 különböző példát mutat be a kód használatára.

Az első példa közvetlenül a DEA módszert használja a szervezeti egységek hatékonyságának értékelésére outputjuk (KIADÁSOK, BEVEZETÉSEK, IGÉNYEK) és inputuk (KÉSZLET, BÉREK) alapján. Ez a példa egy cikkből származik 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());

A második példa a közösségi média népszerűsége alkalmazásunkat használja egy oldal népszerűségének értékelésére a közösségi médiából származó adatok, például a Facebook kedvelések, a Google +1-ek és a Tweetek segítségével. Az összes közösségi média számlálás kimenetként van megjelölve, és a DEA-nak egy üres bemeneti vektort adunk át.

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

Szükséges bővítések

A mellékelt kód csak egy példa arra, hogyan használható a DEA rangsoroló algoritmusként. Íme néhány bővítés, amelyeket végre kell hajtani a megvalósítás javítása érdekében:

1. A megvalósítás felgyorsítása

Az adott DEA implementáció kiértékeli az adatbázisban lévő összes rekord DEA pontszámát. Ez lelassítja a megvalósítást, mivel annyi lineáris programozási probléma megoldására van szükség, ahány rekord van az adatbázisban. Ha nem szükséges az összes rekord pontszámának kiszámítása, akkor jelentősen felgyorsíthatjuk a végrehajtást. Így az algoritmus kis kibővítésével jobban ellenőrizhetjük, hogy mely rekordokat kell megoldani, és melyeket csak kényszerként kell használni.

2. A közösségi média számlálók adatbázisának bővítése

A közösségi média számlálásának adatbázisa a Web SEO Analytics index 1111 mintájából áll. A pontosabb népszerűségi pontszám becsléséhez nagyobb mintára van szükség. Létrehozhatja saját adatbázisát, ha megbecsüli a közösségi oldalak számát a weben több oldalról.

3. További közösségi média hálózatok hozzáadása

A megvalósítás a Facebook kedveléseket, a Google +1-eket és a Tweetek számát használja fel egy cikk népszerűségének értékelésére. Mindazonáltal más közösségi média hálózatok mérőszámai könnyen figyelembe vehetőek. Mindössze annyit kell tennie, hogy adatbázist kell készítenie az Önt érdeklő hálózatok közösségimédia-számaiból, és bővítenie kell a SocialMediaPopularity osztályt, hogy megfelelően kezelje azokat.

Utolsó megjegyzések a megvalósításhoz

Ahhoz, hogy kibővíthesse a megvalósítást, jól ismernie kell a módját Adatburok-elemzés művek. Ezt az előző cikk tárgyalja, ezért kérjük, feltétlenül olvassa el az oktatóanyagot, mielőtt bármilyen változtatást végrehajtana. Ezenkívül a JAVA kód használatához telepítenie kell a rendszerébe az lp_solve könyvtárat (lásd fent).

Ha egy érdekes projektben használja a megvalósítást nekünk egy csepp sor és a projektedet bemutatjuk a blogunkban. Ha tetszett a cikk, kérjük, szánjon egy percet és ossza meg a Twitteren vagy a Facebookon.

Időbélyeg:

Még több Datumbox