JAVA PlatoBlockchain Veri Zekasında DEA ile Sayfaların Sosyal Medya Popülerliğini Ölçme. Dikey Arama. Ai.

JAVA'da DEA ile Sayfaların Sosyal Medya Popülerliğini Ölçme

Önceki makalede tartıştık. Veri Zarflama Analizi tekniği ve nasıl etkili bir parametrik olmayan sıralama algoritması olarak kullanılabileceğini gördük. Bu blog gönderisinde JAVA'da Veri Zarflama Analizinin bir uygulamasını geliştireceğiz ve bunu web sayfalarının ve web'deki makalelerin Sosyal Medya Popülerliğini değerlendirmek için kullanacağız. Kod açık kaynaklıdır (GPL v3 lisansı altında) ve şu adresten ücretsiz olarak indirebilirsiniz: Github.

Güncelleme: Datumbox Machine Learning Framework artık açık kaynak kodlu ve ücretsiz indir. Java'da Veri Zarflama Analizinin uygulamasını görmek için com.datumbox.framework.algorithms.dea paketine göz atın.

JAVA'da Veri Zarflama Analizi uygulaması

Kod JAVA'da yazılmıştır ve doğrudan şuradan indirilebilir: Github. GPLv3 altında lisanslanmıştır, bu yüzden onu kullanmaktan, değiştirmekten ve özgürce yeniden dağıtmaktan çekinmeyin.

Kod, Veri Zarflama Analizi algoritması, kullanır lp_solve kitaplığı Doğrusal Programlama problemlerini çözmek ve alınan verileri kullanmak için Web SEO Analizi Facebook, Google Plus ve Twitter'daki paylaşımlarına göre web sayfaları için bileşik bir sosyal medya popülerlik ölçütü oluşturmak amacıyla dizin. Algoritmanın tüm teorik kısımları bir önceki makalede ele alınmıştır ve kaynak kodda, uygulama ile ilgili ayrıntılı javadoc açıklamaları bulabilirsiniz.

Aşağıda, uygulama mimarisinin üst düzey bir açıklamasını sunuyoruz:

1. lp_solve 5.5 kitaplığı

Çeşitli doğrusal programlama problemlerini çözmek için, lp_solve adlı açık kaynaklı bir kitaplık kullanıyoruz. Belirli kitaplık ANSI C'de yazılır ve kitaplık yöntemlerini çağırmak için bir JAVA sarmalayıcısı kullanır. Bu nedenle, kodu çalıştırmadan önce sisteminize lp_solve kurmalısınız. Kitaplığın ikili dosyaları hem Linux ve Windows ve kurulum hakkında daha fazla bilgiyi şurada okuyabilirsiniz: lp_solve belgeleri.

JAVA kodunu çalıştırmayı denemeden önce lütfen belirli kitaplığın sisteminizde kurulu olduğundan emin olun. Kitaplığı kurma ve yapılandırmayla ilgili herhangi bir sorun için lütfen lp_solve belgelerine bakın.

2. DataEnvelopmentAnalysis Sınıfı

Bu, DEA algoritmasının uygulanmasının ana sınıfıdır. Bir kayıt Haritası alan ve bunların DEA puanlarını döndüren estimateEfficiency () adlı genel bir yöntem uygular.

3. DeaRecord Nesnesi

DeaRecord, kayıtlarımızdaki verileri depolayan özel bir Nesnedir. DEA, girdi ve çıktının ayrılmasını gerektirdiğinden, DeaRecord Nesnesi verilerimizi DEA'nın halledebileceği şekilde ayrı ayrı depolar.

4. SocialMediaPopularity Sınıfı

SocialMediaPopularity, Facebook beğenilerine, Google + 1'lerine ve Tweetlerine göre Sosyal Medya ağlarında bir sayfanın popülerliğini değerlendirmek için DEA'yı kullanan bir uygulamadır. HesaplamaPopularity () ve estimatePercentiles () olmak üzere iki korumalı yöntemi, iki genel yöntemle birlikte loadFile () ve getPopularity () uygular.

CalculatePopularity (), sayfaların puanlarını sosyal medya sayılarına göre tahmin etmek için DEA uygulamasını kullanır. EstimatePercentiles () yöntemi, DEA puanlarını alır ve bunları yüzdelik dilimlere dönüştürür. Genel olarak, yüzdelik dilimlerin açıklanması DEA puanlarından daha kolaydır; dolayısıyla bir sayfanın popülerlik puanının% 70 olduğunu söylediğimizde o sayfanın% 70'inden daha popüler olduğu anlamına gelir.

Belirli bir sayfanın popülerliğini tahmin edebilmek için, diğer sayfaların sosyal medya sayılarını içeren bir veri kümesine sahip olmamız gerekir. Bu mantıklıdır çünkü hangi sayfanın popüler olup hangisinin olmadığını tahmin etmek için, onu web'deki diğer sayfalarla karşılaştırabilmeniz gerekir. Bunu yapmak için, txt biçiminde sağlanan Web SEO Analytics dizininden küçük bir anonim örnek kullanıyoruz. Web'deki daha fazla sayfadan sosyal medya sayılarını çıkararak kendi veritabanınızı oluşturabilirsiniz.

LoadFile () yöntemi, yukarıda belirtilen istatistikleri DEA'ya yüklemek için kullanılır ve getPopularity () yöntemi, Facebook beğenilerini, Google + 1'lerini ve bir sayfanın Tweet sayısını alarak sosyal medyadaki popülerliğini değerlendiren kullanımı kolay bir yöntemdir. .

Veri Zarflama Analizi JAVA uygulamasını kullanma

DataEnvelopmentAnalysisExample Sınıfında, kodun nasıl kullanılacağına dair 2 farklı örnek sağlar.

İlk örnek, kuruluş birimlerinin verimliliğini çıktılarına (ISSUES, RECEIPTS, REQS) ve girdilere (STOK, ÜCRETLER) göre değerlendirmek için doğrudan DEA yöntemini kullanır. Bu örnek şu makaleden alınmıştır: 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());

İkinci örnek, Facebook Beğenileri, Google + 1'ler ve Tweetler gibi Sosyal Medyadan alınan verileri kullanarak bir sayfanın popülerliğini değerlendirmek için Sosyal Medya Popülerliği uygulamamızı kullanır. Tüm sosyal medya sayıları çıktı olarak işaretlenir ve DEA'ya boş bir giriş vektörü aktarırız.

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

Gerekli Genişletmeler

Sağlanan kod, DEA'nın bir sıralama algoritması olarak nasıl kullanılabileceğine dair yalnızca bir örnektir. Uygulamayı iyileştirmek için yapılması gereken birkaç genişletme:

1. Uygulamayı hızlandırmak

Belirli VZA uygulaması, veritabanındaki tüm kayıtların VZA puanlarını değerlendirir. Veritabanındaki kayıt sayısı kadar doğrusal programlama problemlerini çözmemiz gerektiğinden bu, uygulamayı yavaşlatır. Tüm kayıtların puanını hesaplamamız gerekmiyorsa, yürütmeyi önemli ölçüde hızlandırabiliriz. Bu nedenle, algoritmanın küçük bir genişlemesi bize hangi kayıtların çözülmesi ve hangilerinin yalnızca kısıtlama olarak kullanılması gerektiği konusunda daha iyi bir kontrol sağlayabilir.

2. Sosyal Medya Sayım Veritabanını Genişletme

Sağlanan Sosyal Medya Sayıları Veritabanı, Web SEO Analitiği endeksinden alınan 1111 örnekten oluşur. Daha doğru bir popülerlik puanı tahmin edebilmek için daha büyük bir örneklem gereklidir. Web'in daha fazla sayfasından sosyal medya sayılarını tahmin ederek kendi veritabanınızı oluşturabilirsiniz.

3. Daha Fazla Sosyal Medya Ağı Ekleme

Uygulama, bir makalenin popülerliğini değerlendirmek için Facebook Beğenilerini, Google + 1'lerini ve Tweet sayısını kullanır. Bununla birlikte, diğer sosyal medya ağlarından gelen ölçümler kolaylıkla hesaba katılabilir. Yapmanız gereken tek şey, ilgilendiğiniz ağlardan gelen sosyal medya sayılarıyla bir veritabanı oluşturmak ve bunları uygun şekilde ele almak için SocialMediaPopularity sınıfını genişletmektir.

Uygulamaya ilişkin son yorumlar

Uygulamayı genişletebilmek için bunun nasıl yapıldığını iyi anlamanız gerekir. Veri Zarflama Analizi İşler. Bu, önceki makalede ele alınmıştır, bu nedenle herhangi bir değişikliğe geçmeden önce lütfen öğreticiyi okuduğunuzdan emin olun. Ayrıca, JAVA kodunu kullanmak için sisteminize lp_solve kitaplığını yüklemiş olmanız gerekir (yukarıya bakın).

Uygulamayı ilginç bir projede kullanırsanız bize yazmaktan ve projenizi blogumuzda öne çıkaracağız. Ayrıca makaleyi beğendiyseniz, lütfen bir dakikanızı ayırın ve Twitter veya Facebook'ta paylaşın.

Zaman Damgası:

Den fazla Veri kutusu