การวัดความนิยมโซเชียลมีเดียของเพจด้วย DEA ใน JAVA PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.

การวัดความนิยมบนโซเชียลมีเดียของเพจด้วย DEA ใน JAVA

ในบทความที่แล้ว เราได้พูดถึงเรื่อง การวิเคราะห์การห่อหุ้มข้อมูล และเราได้เห็นแล้วว่าสามารถใช้เป็นอัลกอริธึมการจัดอันดับแบบไม่อิงพารามิเตอร์ที่มีประสิทธิภาพได้อย่างไร ในบล็อกโพสต์นี้ เราจะพัฒนาการนำ Data Envelopment Analysis ไปใช้ใน JAVA และเราจะใช้เพื่อประเมินความนิยมของโซเชียลมีเดียของหน้าเว็บและบทความบนเว็บ รหัสนี้เป็นโอเพ่นซอร์ส (ภายใต้ลิขสิทธิ์ GPL v3) และคุณสามารถดาวน์โหลดได้ฟรีจาก Github.

อัปเดต: ขณะนี้ Datumbox Machine Learning Framework เป็นโอเพ่นซอร์สและฟรีสำหรับ ดาวน์โหลด. ตรวจสอบแพ็คเกจ com.datumbox.framework.algorithms.dea เพื่อดูการใช้งาน Data Envelopment Analysis ใน Java

การนำ Data Envelopment Analysis ไปใช้ใน JAVA

รหัสนี้เขียนด้วย JAVA และสามารถดาวน์โหลดได้โดยตรงจาก Github. ได้รับอนุญาตภายใต้ GPLv3 ดังนั้นอย่าลังเลที่จะใช้ แก้ไข และแจกจ่ายซ้ำได้อย่างอิสระ

รหัสใช้ การวิเคราะห์การห่อหุ้มข้อมูล อัลกอริธึม ใช้ the lp_solve ห้องสมุด เพื่อแก้ปัญหา Linear Programming และใช้ข้อมูลที่ดึงมาจาก การวิเคราะห์ SEO ของเว็บ เพื่อสร้างดัชนีความนิยมของโซเชียลมีเดียสำหรับหน้าเว็บโดยอิงจากการแชร์บน Facebook, Google Plus และ Twitter ทุกส่วนทางทฤษฎีของอัลกอริธึมครอบคลุมในบทความที่แล้ว และในซอร์สโค้ด คุณจะพบความคิดเห็นเกี่ยวกับ javadoc โดยละเอียดเกี่ยวกับการนำไปปฏิบัติ

ด้านล่างนี้ เราให้คำอธิบายระดับสูงของสถาปัตยกรรมของการนำไปใช้:

1. lp_solve 5.5 ไลบรารี

เพื่อแก้ปัญหาการเขียนโปรแกรมเชิงเส้นต่างๆ เราใช้ไลบรารีโอเพนซอร์สที่เรียกว่า lp_solve lib เฉพาะนั้นเขียนด้วย ANSI C และใช้ตัวห่อหุ้ม JAVA เพื่อเรียกใช้เมธอดของไลบรารี ดังนั้น ก่อนรันโค้ด คุณต้องติดตั้ง lp_solve บนระบบของคุณ ไบนารีของห้องสมุดมีทั้งสำหรับ Linux และ Windows และคุณสามารถอ่านข้อมูลเพิ่มเติมเกี่ยวกับการติดตั้งได้ที่ lp_solve เอกสารประกอบ.

โปรดตรวจสอบให้แน่ใจว่าได้ติดตั้งไลบรารีเฉพาะบนระบบของคุณแล้วก่อนที่จะพยายามเรียกใช้โค้ด JAVA สำหรับปัญหาใดๆ เกี่ยวกับการติดตั้งและกำหนดค่าไลบรารี โปรดดูเอกสารประกอบ lp_solve

2. คลาส DataEnvelopmentAnalysis

นี่คือคลาสหลักของการนำอัลกอริธึม DEA ไปใช้ ใช้วิธีการสาธารณะที่เรียกว่าประมาณการประสิทธิภาพ () ซึ่งใช้แผนที่ของระเบียนและส่งคืนคะแนน DEA

3. วัตถุ DeaRecord

DeaRecord เป็นออบเจ็กต์พิเศษที่เก็บข้อมูลของบันทึกของเรา เนื่องจาก DEA ต้องการการแยกอินพุตและเอาต์พุต DeaRecord Object เก็บข้อมูลของเราแยกจากกันในลักษณะที่ DEA สามารถจัดการได้

4. คลาส SocialMediaPopularity

SocialMediaPopularity เป็นแอปพลิเคชั่นที่ใช้ DEA เพื่อประเมินความนิยมของเพจบนเครือข่ายโซเชียลมีเดียโดยพิจารณาจากการถูกใจบน Facebook, Google +1 และทวีต มันใช้วิธีการที่ได้รับการป้องกันสองวิธี ได้แก่ คำนวณPopularity() และประมาณการPercentiles() พร้อมกับวิธีการสาธารณะสองวิธีคือ loadFile() และ getPopularity()

CalculPopularity() ใช้การนำ DEA ไปใช้งานเพื่อประเมินคะแนนของเพจตามจำนวนโซเชียลมีเดีย วิธีการประมาณเปอร์เซ็นไทล์ () รับคะแนน DEA และแปลงเป็นเปอร์เซ็นต์ไทล์ โดยทั่วไปแล้ว เปอร์เซ็นไทล์จะอธิบายได้ง่ายกว่าคะแนน DEA ดังนั้นเมื่อเรากล่าวว่าคะแนนความนิยมของหน้าเว็บคือ 70% หมายความว่าหน้านั้นได้รับความนิยมมากกว่า 70% ของหน้า

เพื่อให้สามารถประมาณความนิยมของหน้าใดหน้าหนึ่งได้ เราต้องมีชุดข้อมูลพร้อมจำนวนโซเชียลมีเดียของหน้าอื่นๆ สิ่งนี้สมเหตุสมผลเนื่องจากในการทำนายว่าหน้าใดเป็นที่นิยมและหน้าใดไม่เป็นที่นิยม คุณต้องสามารถเปรียบเทียบกับหน้าอื่นๆ บนเว็บได้ ในการดำเนินการดังกล่าว เราใช้ตัวอย่างที่ไม่ระบุชื่อขนาดเล็กจากดัชนี Web SEO Analytics ที่มีให้ในรูปแบบ txt คุณสามารถสร้างฐานข้อมูลของคุณเองโดยแยกจำนวนโซเชียลมีเดียออกจากเพจอื่นๆ บนเว็บ

เมธอด loadFile() ใช้เพื่อโหลดสถิติดังกล่าวบน DEA และวิธีการ getPopularity() เป็นวิธีที่ใช้งานง่ายซึ่งได้รับการถูกใจของ Facebook, Google +1 และจำนวนทวีตของเพจ และประเมินความนิยมบนโซเชียลมีเดีย .

การใช้ Data Envelopment Analysis การใช้งาน JAVA

ใน DataEnvelopmentAnalysisExample Class ฉันให้ตัวอย่าง 2 ตัวอย่างที่แตกต่างกันของวิธีใช้โค้ด

ตัวอย่างแรกใช้วิธี DEA โดยตรงเพื่อประเมินประสิทธิภาพของหน่วยขององค์กรโดยพิจารณาจากผลลัพธ์ (ISSUES, RECEIPTS, REQS) และข้อมูลที่ป้อน (STOCK, WAGES) ตัวอย่างนี้นำมาจากบทความของ ดีโซนดอทคอม.

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

ตัวอย่างที่สองใช้แอปพลิเคชัน Social Media Popularity ของเราในการประเมินความนิยมของเพจโดยใช้ข้อมูลจากโซเชียลมีเดีย เช่น Facebook Likes, Google +1 และทวีต จำนวนโซเชียลมีเดียทั้งหมดจะถูกทำเครื่องหมายเป็นเอาต์พุต และเราส่งเวกเตอร์อินพุตว่างไปยัง DEA

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

การขยายที่จำเป็น

รหัสที่ให้มาเป็นเพียงตัวอย่างว่า DEA สามารถใช้เป็นอัลกอริธึมการจัดอันดับได้อย่างไร ต่อไปนี้คือส่วนขยายบางส่วนที่ต้องทำเพื่อปรับปรุงการใช้งาน:

1. เร่งดำเนินการ

การใช้งาน DEA โดยเฉพาะจะประเมินคะแนน DEA ของระเบียนทั้งหมดในฐานข้อมูล สิ่งนี้ทำให้การนำไปใช้งานช้า เนื่องจากเราต้องการการแก้ปัญหาการเขียนโปรแกรมเชิงเส้นมากเท่ากับจำนวนเรคคอร์ดในฐานข้อมูล หากเราไม่ต้องการคำนวณคะแนนของระเบียนทั้งหมด เราก็สามารถเพิ่มความเร็วในการดำเนินการได้อย่างมาก ดังนั้นการขยายอัลกอริทึมเพียงเล็กน้อยจะช่วยให้เราควบคุมได้ดีขึ้นว่าระเบียนใดควรแก้ไข และรายการใดควรใช้เป็นข้อจำกัดเท่านั้น

2. การขยายฐานโซเชียลมีเดียฐานข้อมูล

ฐานข้อมูล Social Media Counts Database ที่ให้มาประกอบด้วยตัวอย่าง 1111 ตัวอย่างจากดัชนี Web SEO Analytics เพื่อให้สามารถประมาณคะแนนความนิยมได้แม่นยำยิ่งขึ้น จำเป็นต้องมีกลุ่มตัวอย่างที่มากขึ้น คุณสามารถสร้างฐานข้อมูลของคุณเองได้โดยการประมาณจำนวนโซเชียลมีเดียจากหน้าเว็บต่างๆ ของเว็บ

3. การเพิ่มเครือข่ายโซเชียลมีเดียมากขึ้น

การใช้งานนี้ใช้ Facebook Likes, Google +1 และจำนวนทวีตเพื่อประเมินความนิยมของบทความ อย่างไรก็ตาม เมตริกจากเครือข่ายโซเชียลมีเดียอื่นๆ สามารถนำมาพิจารณาได้อย่างง่ายดาย สิ่งที่คุณต้องทำคือสร้างฐานข้อมูลโดยนับจำนวนโซเชียลมีเดียจากเครือข่ายที่คุณสนใจ และขยายคลาส SocialMediaPopularity เพื่อจัดการตามนั้น

ความคิดเห็นสุดท้ายเกี่ยวกับการนำไปใช้

เพื่อให้สามารถขยายการดำเนินงานคุณต้องมีความเข้าใจที่ดีเกี่ยวกับวิธีการ การวิเคราะห์การห่อหุ้มข้อมูล ทำงาน มีเนื้อหาครอบคลุมในบทความก่อนหน้านี้ ดังนั้นโปรดอ่านบทแนะนำก่อนที่จะดำเนินการเปลี่ยนแปลงใดๆ นอกจากนี้ เพื่อที่จะใช้โค้ด JAVA คุณต้องติดตั้งไลบรารี lp_solve ในระบบของคุณ (ดูด้านบน)

หากคุณใช้การดำเนินการในโครงการที่น่าสนใจ วางสายเราไว้ และเราจะนำเสนอโครงการของคุณในบล็อกของเรา นอกจากนี้ หากคุณชอบบทความนี้ โปรดสละเวลาสักครู่แล้วแชร์บน Twitter หรือ Facebook

ประทับเวลา:

เพิ่มเติมจาก กล่องข้อมูล