מדידת הפופולריות של מדיה חברתית של דפים עם DEA ב-JAVA PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.

מדידת הפופולריות של המדיה החברתית של דפים עם DEA ב- JAVA

במאמר הקודם דנו בנושא ניתוח התפתחות מידע וראינו כיצד ניתן להשתמש בו כאלגוריתם דירוג לא פרמטרי. בפוסט בבלוג זה נפתח יישום של ניתוח מעטפות נתונים ב- JAVA ונשתמש בו כדי להעריך את הפופולריות של המדיה החברתית של דפי אינטרנט ומאמרים באינטרנט. הקוד פתוח ממקור (תחת רישיון GPL v3) ותוכל להוריד אותו בחינם GitHub.

עדכון: מסגרת הלמידה על מכונה של Datumbox היא כעת קוד פתוח וחינמית ל- להורדה. עיין בחבילה com.datumbox.framework.algorithms.dea כדי לראות את היישום של ניתוח מעטפות נתונים ב- Java.

יישום ניתוח מעטפות נתונים ב- JAVA

הקוד כתוב ב- JAVA וניתן להוריד אותו ישירות מ- GitHub. הוא מורשה תחת GPLv3 אז אל תהסס להשתמש בו, לשנות אותו ולהפיץ אותו בחופשיות.

הקוד מיישם את ה- ניתוח התפתחות מידע האלגוריתם, משתמש ב- lp_ לפתור את הספרייה כדי לפתור את הבעיות בתכנות לינארית ומשתמש בנתונים שחולצו מ ניתוח אתרים באינטרנט אינדקס כדי לבנות מדד פופולריות של מדיה חברתית מורכבת עבור דפי אינטרנט על בסיס השיתופים שלהם בפייסבוק, גוגל פלוס וטוויטר. כל החלקים התיאורטיים של האלגוריתם מכוסים במאמר הקודם ובקוד המקור תוכלו למצוא הערות מפורטות של javadoc הנוגעות ליישום.

להלן אנו מספקים תיאור ברמה גבוהה של הארכיטקטורה של היישום:

1. ספריית lp_ solve 5.5

על מנת לפתור את בעיות התכנות הליניאריות השונות אנו משתמשים בספריית קוד פתוח בשם lp_solve. הספרייה הספציפית כתובה ב- ANSI C ומשתמשת בעטיפת JAVA כדי להפעיל את שיטות הספריה. לפיכך לפני הפעלת הקוד עליך להתקין את lp_solve במערכת שלך. בינארי של הספרייה זמינים לשניהם לינוקס וחלונות ותוכלו לקרוא מידע נוסף על ההתקנה ב- lp_ לפתור תיעוד.

אנא וודא שהספריה הספציפית מותקנת במערכת שלך לפני שאתה מנסה להריץ את קוד JAVA. לכל בעיה הנוגעת להתקנה ולהגדרת התצורה של הספרייה, עיין בתיעוד lp_solve.

2. מחלקת ניתוח נתונים

זוהי המחלקה העיקרית ליישום אלגוריתם DEA. היא מיישמת שיטה ציבורית הנקראת estimEfficiency () שמקבלת מפת רשומות ומחזירה את ציוני ה- DEA שלהם.

3. אובייקט DeaRecord

ה- DeaRecord הוא אובייקט מיוחד המאחסן את נתוני הרשומה שלנו. מכיוון ש- DEA דורש הפרדת קלט ופלט, אובייקט DeaRecord מאחסן את הנתונים שלנו בנפרד באופן ש- DEA יכול לטפל בהם.

4. כיתה SocialMediaPopularity

SocialMediaPopularity היא אפליקציה המשתמשת ב- DEA כדי להעריך את הפופולריות של דף ברשתות המדיה החברתית בהתבסס על הפייסבוק של לייקים, + 1 ו- Google וציוצים. זה מיישם שתי שיטות מוגנות, calculPopularity () ו- estimPercentiles () יחד עם שתי שיטות ציבוריות loadFile () ו- getPopularity ().

ה- calculPopularity () משתמש ביישום DEA כדי להעריך את ציוני הדפים על סמך ספירת המדיה החברתית שלהם. השיטה estimPercentiles () מקבלת את ציוני ה- DEA וממירה אותם לאחוזונים. באופן כללי, אחוזונים קל יותר להסביר מאשר ציוני DEA; לכן כשאנו אומרים שציון הפופולריות של עמוד הוא 70%, פירושו שהדף הספציפי פופולרי יותר מ- 70% מהדפים.

על מנת שנוכל להעריך את הפופולריות של דף מסוים, עלינו להיות מערך נתונים עם ספירת המדיה החברתית של דפים אחרים. זה הגיוני מכיוון שכדי לחזות איזה דף פופולרי ואיזה לא, עליכם להיות מסוגלים להשוות אותו עם דפים אחרים באינטרנט. לשם כך אנו משתמשים במדגם אנונימי קטן מאינדקס אתרים של SEO SEO המסופק בפורמט txt. אתה יכול לבנות בסיס נתונים משלך על ידי חילוץ ספירת המדיה החברתית מדפים נוספים באינטרנט.

שיטת loadFile () משמשת לטעינת הסטטיסטיקות שהוזכרו לעיל ב- DEA ושיטת getPopularity () היא שיטה נוחה לשימוש שמקבלת לייקים של פייסבוק, גוגל 1+ ומספר הציוצים של עמוד ומעריכה את הפופולריות שלה במדיה החברתית. .

שימוש ביישום מעטפת נתונים של JAVA

בכיתה DataEnvelopmentAnalysisExample אני מספק 2 דוגמאות שונות לשימוש בקוד.

הדוגמה הראשונה משתמשת ישירות בשיטת DEA בכדי להעריך את היעילות של יחידות ארגוניות על סמך התפוקה שלהן (סוגיות, קבלות, תשובות) והתייחסות (STOCK, WAGE). דוגמה זו נלקחה מתוך מאמר מתוך 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());

הדוגמה השנייה משתמשת ביישום הפופולריות של המדיה החברתית שלנו כדי להעריך את הפופולריות של דף באמצעות נתונים ממדיה חברתית כמו לייקים של פייסבוק, גוגל 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. הרחבת מאגר המידע של ספירת המדיה החברתית

מאגר המידע לספירת מדיה חברתית המסופק מורכב מ- 1111 דוגמאות מאינדקס ה- SEO SEO באינטרנט. כדי לאמוד ציון פופולריות מדויק יותר, יש צורך במדגם גדול יותר. אתה יכול ליצור בסיס נתונים משלך על ידי הערכת ספירת המדיה החברתית מדפים נוספים באינטרנט.

3. הוספת רשתות מדיה חברתיות נוספות

היישום משתמש ב- Facebook Likes, ב- Google + 1 ובמספר הטוויטים כדי להעריך את הפופולריות של מאמר. עם זאת ניתן לקחת בקלות בחשבון מדדים מרשתות מדיות חברתיות אחרות. כל שעליך לעשות הוא לבנות בסיס נתונים עם ספירת המדיה החברתית מהרשתות שאתה מעוניין בהן ולהרחיב את הכיתה SocialMediaPopularity כדי לטפל בהן בהתאם.

הערות אחרונות ליישום

כדי להיות מסוגל להרחיב את היישום עליכם להבין טוב כיצד ניתוח התפתחות מידע עובד. זה מכוסה במאמר הקודם, אז אנא וודא שאתה קורא את ההדרכה לפני שתמשיך בשינויים. יתר על כן כדי להשתמש בקוד JAVA עליך להתקין במערכת שלך את ספריית lp_solve (ראה לעיל).

אם אתה משתמש ביישום בפרויקט מעניין תפיל לנו קו ואנחנו נציג את הפרויקט שלך בבלוג שלנו. גם אם אתם אוהבים את המאמר, אנא קחו רגע ושתפו אותו בטוויטר או בפייסבוק.

בול זמן:

עוד מ דטומבוקס