Yazar | Fanast
Baş Editör | Guo Rui
Son zamanlarda, Fulian 4'ün piyasaya sürüldüğü sırada yazar, özellikle Marvel karakterleri ve Marvel filmleri hakkında ilginç bir web sitesi buldu.
https://graphics.straitstimes.com/STI/STIMEDIA/Interactives/2018/04/marvel-cinematic-universe-whos-who-interactive/index.html
Aslında yazar, bir karakter ilişkisi analizi dalgası gerçekleştirmek için Graph hakkındaki kitaplığı da kullanmıştır, ancak analiz sonucu nispeten kabadır ~ Aşağıda, Graph teknolojisine dayalı olarak geliştirilen web sitesine genel bir bakış sunulmuştur. , Bir göz atabilirsiniz.
Öyleyse insanlar böyle havalı bir ilişki diyagramı oluşturabilirlerse, bunu gerçekleştirebilir miyiz? Bu makale, web sitesi tarafından sağlanan verileri gerçek bir savaş için Neo4j (NOSQL grafik veritabanı) kullanmak için kullanır.
Analiz alın
Karakterler ve bunlarla ilgili bilgiler web sitesinden elde edilir, özel arayüz aşağıdaki gibidir:
Veriler, sırasıyla "karakterler" ve "ilişki" olarak json formatındadır.
Buradaki bilgiler Tony Stark'a atıfta bulunuyor ve "0" ilişkisi bir arkadaş, Steven Rogers.
Veri toplama
Spesifik kod aşağıdaki gibidir:
json içe aktar ithalat istekleri üstbilgiler = { 'kullanıcı aracısı': 'Mozilla / 5.0 (Windows NT 6.1; WOW64) AppleWebKit / 537.36 (KHTML, Gecko gibi) Chrome / 63.0.3239.132 Safari / 537.36' } url = 'https: //graphics.straitstimes.com/STI/STIMEDIA/Interactives/2018/04/marvel-cinematic-universe-whos-who-interactive/data/marvel-data.json' yanıt = istekler.get (url = url, başlıklar = başlıklar) sonuç = json.loads (response.text) num = 0 isimler = item = {0: 'arkadaş', 1: 'düşman', 2: 'yaratma', 3: 'aile', 4: 'iş', 5: 'aşk'} sonuçta i için: konu = sonuç nesne = sonuç konu isimlerde değilse: names.append (konu) nesne isimlerde değilse: names.append (nesne) ilişki = int (sonuç ) f olarak open ('related_message.csv', 'a +') ile: f.write (konu + ',' + nesne + ',' + öğe + '\ n') adlarda j için: num + = 1 f olarak open ('names_message.csv', 'a +') ile: f.write (j + ',' + str (num) + '\ n') sonuçta k için: id = sonuç isim = sonuç durum = sonuç türler = sonuç f olarak open ('message.csv', 'a +') ile: f.write (id + ',' + isim + ',' + durum + ',' + türler + '\ n')Son olarak, veriler başarıyla elde edildi.
Karakterler kısaltma olarak adlandırılır ve toplam 182 karakter vardır.
1144 kişisel ilişki verisi, 4 tür, aşağıda 182 kişilere ait bazı ayrıntılı bilgiler:
Karakterin adını ve kısaltmasını, hayatta kalma durumunu ve karakter özelliklerini içerir.
veri goruntuleme
Neo4j aracılığıyla karakterler arasındaki ilişkiyi görselleştirelim. Neo4j'nin kurulumu burada ayrıntılı olarak anlatılmayacaktır. Baidu'yu kendiniz yapabilirsiniz.
Neo4j hizmetini açtıktan sonra Neo4j web sitesinde oturum açın ve ilk arayüz aşağıdaki gibidir:
Önce ilk dosyayı yükleyin:
Spesifik kod aşağıdaki gibidir:
CSV'Yİ BAŞLIKLARLA YÜKLE'file: ///names_message.csv 'AS data CREATE (: kişi {ad: veri.adı, kimlik: veri.id});Aşağıdaki ikinci dosyayı yükleyin:
Spesifik kod aşağıdaki gibidir:
CSV'yi "file: ///relation_message.csv" AS ilişkilerinden BAŞLIKLARLA YÜKLE EŞLEŞTİRME (varlık1: kişi {ad: ilişkiler.subject}), (varlık2: kişiler {ad: ilişkiler.nesne}) CREATE (varlık1) - > (varlık2)Sınırı iptal etmek için 1144 düğmesine tıklayın ve ardından tam ekrana tıklayın.
Burada, başlangıçta çok izole edilmiş olan ilk kötü karakter olan Marvel karakterlerinin bir araya gelmesini kabaca görebilirsiniz.
Burada çok fazla karakter olduğu için gözlemlemek sakıncalıdır, bu nedenle Tony Stark'ın arkadaşlarının taranması gibi bazı sonuçların taranması aşağıdaki kodu çalıştırın.
eşleşme p = (n: insanlar {ad: "tonys"}) - > () dönüş p;Aşağıdaki sonucu alın:
Bunlar arasında "thor", "Thor", "stever", "Amerikan Takımı", "blackw", "Black Widow", "vizyon", "Vision", "peterp", "Örümcek Adam" ve "bruceb" Hulk".
ABD ekibinin kız arkadaşına bir göz atalım.
Peggy Carter ve yeğeni Sharon Carter'ın görünüş olarak çok benzer olduğu söyleniyor.
sonuç olarak
Bu sadece Neo4j'deki bazı basit işlemler, daha sonra daha fazlasını öğrenebilirim. Ayrıca Marvel'in bu karakter bilgileri de pek çok numara oynayabilir.
Ayrıca umarım herkes deneyebilir ve sert çekirdekli demir tozu yapabilir ~
Yazar: Fanasite, Python meraklıları, odaklanmış tarayıcılar, veri analizi ve görselleştirme.
Feragatname: Bu makale ilk olarak Fanast'ın kişisel genel hesabını yayınladı, yazar katkıda bulundu ve telif hakkı kendisine aittir.
SON