A Neo4j grafikonmegjelenítése a Neovis.js használatával

Grafikonalgoritmusok kihasználása az adatok megjelenítéséhez

(William Lyon) (2018. április 16.)

Frissítés: Az OReilly könyv „Grafikon algoritmusok az Apache Sparkon és a Neo4j könyvön mostantól elérhető ingyenes e-könyv letöltése a neo4j.com webhelyről

Ebben a bejegyzésben egy Neo4j Sandbox példányt fogunk használni egy Twitter-adatkészlettel, a PageRank futtatásával és a közösségi észleléssel az adatokon. Ezután mutassa meg, hogyan lehet beágyazni a grafikon megjelenítését egy webalkalmazásba a Neovis.js használatával.

Ebben a bejegyzésben azt vizsgáljuk, hogyan hozhatunk létre grafikonadat-vizualizációkat, amelyek a PageRank és a közösség észlelése . Miután néhány gráfalgoritmust futtattunk a neo4j-graph-algoritmusok könyvtár használatával, a JavaScript gráf vizualizációs könyvtárát fogjuk használni Neovis.js webalkalmazásba ágyazható vizualizációk létrehozásához, közvetlenül a Neo4j alkalmazásból nyerve az adatokat.

A grafikon megjelenítésének céljai

Különböző motivációk és eszközök vannak a gráf vizualizációk létrehozására. Ez magában foglalja az grafikon feltárásának eszközeit – – az interaktív vizualizációk típusát, amelyet a Neo4j böngésző . Vagy a megjelenítései, amelyek valamilyen elemzés eredményeit mutatják . Ezek lehetnek interaktívak (beilleszthetők egy webalkalmazásba vagy akár önálló alkalmazásba), vagy statikusak, , amelyek konkrét jelentést jelentenek , amelyet nyomtatásban vagy blogbejegyzésben lehet használni.

Ez a bejegyzés egy olyan eszközre összpontosít, amely a grafikon megjelenítésének néhány konkrét céljával foglalkozik. Ez az eszköz Neovis.js , és egy webalkalmazásba ágyazott JavaScript-alapú grafikon-vizualizációk létrehozására szolgál. A JavaScript Neo4j illesztőprogrammal csatlakozik a Neo4j-hez és csatlakozik az adatokhoz, valamint egy JavaScript-könyvtárat a vizualizáláshoz, az úgynevezett vis .js a grafikon vizualizációinak megjelenítéséhez. A Neovis.js emellett a grafikai algoritmusok, például a PageRank és a közösségi észlelés eredményeit is felhasználhatja a megjelenítés stílusához azáltal, hogy tulajdonságértékeket köt a vizuális összetevőkhöz. a Neovis.js könyvtár használatával létrehozhat grafikonadat-vizualizációkat a Neo4j-ből származó adatokkal rendelkező grafikonalgoritmusok eredményei szerint.

Grafikonmegjelenítés + Grafikonalgoritmusok

Három közös a gráf vizualizációjának javítása grafikon algoritmusokkal. Pontosabban ez magában foglalja a vizuális komponensek ezen algoritmusok eredményéhez viszonyított stílusát:

  1. A csomópont méretének kötése egy központi algoritmushoz , például a fokozat, a PageRank vagy a kettősség központossága. Ez lehetővé teszi számunkra, hogy egy pillanat alatt megnézzük a hálózat legfontosabb csomópontjait.
  2. közösségek vagy klaszterek vizuális csoportosítása színének felhasználásával történik, így gyorsan azonosíthatjuk ezeket a különálló csoportosításokat.
  3. A stílusviszony vastagsága egy él súlyával arányosan , a közösségi hálózatok adataiban ez lehet a két karakter közötti interakciók száma, a logisztikai és útválasztási adatoknál ez lehet a távolság két terjesztési központ között, és hasznos az útvonalkereső algoritmusoknál (például mint A * vagy Dijkstra).

Kezdő lépések az adatkészlettel

Adatkészletként az orosz Twitter Trollok homokozót fogjuk használni. Ez az adatkészlet az ismert orosz Troll-fiókok tweetjeit tartalmazza, amelyeket a NBC News nyilvánosan közzétett. Saját Neo4j Sandbox példányt hozhat létre itt.

A Twitter Trollok adatkészletének adatmodellje tweeteket tartalmaz , Felhasználók, Hashtagek, a Tweetekben megosztott URL-ek, valamint megemlítések és retweetek.

A diagramadatokban gyakran a legérdekesebb kapcsolatokra következtetnek , és nem közvetlenül az adatok modellezik. A Felhasználó-Felhasználó retweet grafikon erre példa. Mely felhasználók melyik más felhasználókat retweetelik?Ki a legfontosabb felhasználó ebben a retweet grafikonban? Vannak olyan felhasználói csoportok, amelyek gyakran retweetelik egymást?

Itt van egy tweet, amelyet elküldtünk egy felhasználó által, amelyet egy másik felhasználó retweetelt. Ez magában foglalja a felhasználó-felhasználó retweets kapcsolatot. Az első lépés az lesz, hogy megtaláljuk ezeket a kikövetkeztetett retweet összefüggéseket, és futtassuk a grafikon algoritmusainkat. először keresse meg az összes Troll felhasználót, és hozzon létre egy RETWEETS kapcsolatot, amely közvetlenül összekapcsolja a felhasználókat a grafikonon. Egy count tulajdonságot tárolunk a reláción, amely azt mutatja, hogy hányszor írta vissza a felhasználó a másikat:

Miután létrehoztuk ezeket a RETWEETS kapcsolatokat, futtathatjuk a PageRank-ot a grafikon ezen részén (használhatunk Cypher-lekérdezést is a PageRank futtatása a vetített grafikonon a kapcsolatok kifejezett létrehozása nélkül):

Mivel megadjuk a write: true nemcsak a PageRank futtatására szolgál, hanem egy pagerank tulajdonságot is hozzáad a csomópontokhoz, amelyek tartalmazzák a PageRank pontszámot. Ezután a tulajdonságérték segítségével lekérdezhetjük a tíz legjobb Troll-fiókot a PageRank pontszám alapján:

És végre futtathatunk egy közösségi észlelési algoritmust a retweet hálózaton, ebben az esetben a címke terjesztését:

Ez egy community tulajdonságot ad a csomópontokhoz, jelezve, hogy melyik közösség a közösség algoritmus meghatározta, hogy a csomópont melyikhez tartozik.

Tehát most két gráfalgoritmust futtattunk (PageRank és címke terjesztése), de hogyan értelmezzük az eredményeket? A megjelenítés segíthet abban, hogy betekintést nyerjünk az adatokba.

Grafikus megjelenítés készítése a Neovis.js használatával

Ahhoz, hogy a Neovis.js segítségével megjelenítést hozzunk létre, először csatlakoznunk kell a Neo4j-hez. Sandbox példányunk részletei lapján megtalálhatjuk a Neo4j példányunk kapcsolatának részleteit:

A szerver kapcsolati karakterláncát, felhasználónevét és jelszavát egy konfigurációs objektum tartalmazza, amelyet továbbítunk a Neovis konstruktorának. Meg kell adnunk azt is, hogy milyen csomópontcímkéket szeretnénk megjeleníteni, és hogyan kell őket stilizálni (mely tulajdonságok határozzák meg a csomópont méretét és színét).

A Neovis.js egy elemet a megjelenítéssel, ezért meg kell adnunk az elem azonosítóját a config objektumban, valamint azt, hogy miként lehet csatlakozni a Neo4j példányhoz, és mely tulajdonságokat kell használni a csomópont méretének, színének meghatározásához. , és a kapcsolat vastagsága. Itt van a kód, amellyel generálhatjuk retweet hálózatunk grafikonos megjelenítését a Neo4j Sandbox példányunkból, a pagerank tulajdonság segítségével meghatározhatjuk a csomópont méretét, a színhez, és a count kapcsolat tulajdonság a kapcsolat vastagságához:

És a megjelenítésünk így néz ki:

Van még néhány beállítási lehetőség, amelyekről a projektdokumentációban olvashat.

Erőforrások

Ingyenes letöltés: OReilly „Grafikonalgoritmusok az Apache Sparkon és a Neo4j-n”

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük