Đo lường mức độ phổ biến trên mạng xã hội của các trang có DEA trong JAVA PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.

Đo lường mức độ phổ biến của phương tiện truyền thông xã hội của các trang với DEA trong JAVA

Trong bài trước chúng ta đã thảo luận về Phân tích bao bì dữ liệu và chúng tôi đã thấy cách nó có thể được sử dụng như một thuật toán xếp hạng phi tham số hiệu quả. Trong bài đăng trên blog này, chúng tôi sẽ phát triển việc triển khai Phân tích phong bì dữ liệu trong JAVA và chúng tôi sẽ sử dụng nó để đánh giá mức độ phổ biến trên mạng xã hội của các trang web và bài viết trên web. Mã có nguồn mở (theo giấy phép GPL v3) và bạn có thể tải xuống miễn phí từ Github.

Cập nhật: Khung học máy của Datumbox hiện là nguồn mở và miễn phí tải về. Kiểm tra gói com.datumbox.framework.algorithm.dea để xem việc triển khai Phân tích phong bì dữ liệu trong Java.

Triển khai phân tích bao bì dữ liệu trong JAVA

Mã được viết bằng JAVA và có thể được tải xuống trực tiếp từ Github. Nó được cấp phép theo GPLv3, vì vậy hãy thoải mái sử dụng, sửa đổi và phân phối lại một cách tự do.

Mã triển khai Phân tích bao bì dữ liệu thuật toán, sử dụng thư viện lp_solve để giải quyết các vấn đề về Lập trình tuyến tính và sử dụng dữ liệu trích xuất từ Phân tích SEO web lập chỉ mục để xây dựng số liệu tổng hợp về mức độ phổ biến trên mạng xã hội cho các trang web dựa trên lượt chia sẻ của họ trên Facebook, Google Plus và Twitter. Tất cả các phần lý thuyết của thuật toán đã được trình bày trong bài viết trước và trong mã nguồn, bạn có thể tìm thấy các nhận xét javadoc chi tiết liên quan đến việc triển khai.

Dưới đây, chúng tôi cung cấp mô tả cấp cao về kiến ​​trúc của việc triển khai:

1. Thư viện lp_solve 5.5

Để giải quyết các vấn đề lập trình tuyến tính khác nhau, chúng tôi sử dụng một thư viện mã nguồn mở có tên lp_solve. Lib cụ thể được viết bằng ANSI C và sử dụng trình bao bọc JAVA để gọi các phương thức thư viện. Vì vậy, trước khi chạy mã, bạn phải cài đặt lp_solve trên hệ thống của mình. Các phòng họp của thư viện có sẵn cho cả hai Linux và Windows và bạn có thể đọc thêm thông tin về cài đặt trên tài liệu lp_solve.

Hãy đảm bảo rằng thư viện cụ thể đã được cài đặt trên hệ thống của bạn trước khi cố gắng chạy mã JAVA. Đối với bất kỳ vấn đề nào liên quan đến cài đặt và cấu hình thư viện, vui lòng tham khảo tài liệu lp_solve.

2. Lớp DataEnvelopmentAnalysis

Đây là lớp chính của việc thực hiện thuật toán DEA. Nó thực hiện một phương pháp công khai được gọi là ước tính (), phương thức này lấy Bản đồ các bản ghi và trả về điểm DEA của chúng.

3. Đối tượng DeaRecord

DeaRecord là một Đối tượng đặc biệt lưu trữ dữ liệu của bản ghi của chúng ta. Vì DEA yêu cầu tách đầu vào và đầu ra, Đối tượng DeaRecord lưu trữ dữ liệu của chúng ta một cách riêng biệt theo cách mà DEA có thể xử lý.

4. Lớp SocialMediaPopularity

SocialMediaPopularity là một ứng dụng sử dụng DEA để đánh giá mức độ phổ biến của một trang trên các mạng Truyền thông xã hội dựa trên lượt thích trên Facebook, Google +1 và Tweet. Nó thực hiện hai phương thức được bảo vệ là allowPopularity () và ước lượngPercentiles () cùng với hai phương thức public là loadFile () và getPopularity ().

Tính toán phổ biến () sử dụng triển khai DEA để ước tính điểm số của các trang dựa trên số lượng phương tiện truyền thông xã hội của chúng. Phương thức ước lượngPercentiles () nhận điểm DEA và chuyển chúng thành phân vị. Nói chung, tỷ lệ phần trăm dễ giải thích hơn điểm số DEA; do đó, khi chúng tôi nói rằng điểm phổ biến của một trang là 70%, điều đó có nghĩa là trang cụ thể đó phổ biến hơn 70% số trang.

Để có thể ước tính mức độ phổ biến của một trang cụ thể, chúng ta phải có một tập dữ liệu với số lượng phương tiện truyền thông xã hội của các trang khác. Điều này có ý nghĩa vì để dự đoán trang nào phổ biến và trang nào không, bạn phải có khả năng so sánh trang đó với các trang khác trên web. Để làm như vậy, chúng tôi sử dụng một mẫu nhỏ ẩn danh từ chỉ mục Phân tích SEO Web được cung cấp ở định dạng txt. Bạn có thể xây dựng cơ sở dữ liệu của riêng mình bằng cách trích xuất số lượng phương tiện truyền thông xã hội từ nhiều trang hơn trên web.

Phương thức loadFile () được sử dụng để tải các thống kê nói trên trên DEA và phương thức getPopularity () là một phương thức dễ sử dụng để nhận được lượt thích trên Facebook, lượt +1 của Google và số lượng Tweet của một trang và đánh giá mức độ phổ biến của nó trên phương tiện truyền thông xã hội .

Sử dụng triển khai JAVA Phân tích bao bì dữ liệu

Trong Lớp DataEnvelopmentAnalysisExample, tôi cung cấp 2 ví dụ khác nhau về cách sử dụng mã.

Ví dụ đầu tiên sử dụng trực tiếp phương pháp DEA để đánh giá hiệu quả của các đơn vị tổ chức dựa trên đầu ra của họ (VẤN ĐỀ, TUYỂN DỤNG, LƯU TRỮ) và đầu vào (KHO, LƯƠNG). Ví dụ này được lấy từ một bài báo của 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());

Ví dụ thứ hai sử dụng ứng dụng Mức độ phổ biến trên phương tiện truyền thông xã hội của chúng tôi để đánh giá mức độ phổ biến của một trang bằng cách sử dụng dữ liệu từ Phương tiện truyền thông xã hội như Lượt thích trên Facebook, lượt +1 trên Google và Tweet. Tất cả số lượng phương tiện truyền thông xã hội được đánh dấu là đầu ra và chúng tôi chuyển cho DEA một vectơ đầu vào trống.

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

Mở rộng cần thiết

Mã được cung cấp chỉ là một ví dụ về cách DEA ​​có thể được sử dụng như một thuật toán xếp hạng. Dưới đây là một số bản mở rộng phải được thực hiện để cải thiện việc triển khai:

1. Đẩy nhanh tiến độ thực hiện

Việc triển khai DEA cụ thể đánh giá điểm DEA của tất cả các bản ghi trong cơ sở dữ liệu. Điều này làm cho việc triển khai chậm vì chúng tôi yêu cầu giải quyết nhiều vấn đề lập trình tuyến tính bằng số lượng bản ghi trong cơ sở dữ liệu. Nếu chúng ta không yêu cầu tính điểm của tất cả các bản ghi thì chúng ta có thể tăng tốc độ thực thi một cách đáng kể. Do đó, một phần mở rộng nhỏ của thuật toán có thể cho phép chúng ta kiểm soát tốt hơn những bản ghi nào nên được giải quyết và bản ghi nào chỉ nên được sử dụng làm ràng buộc.

2. Mở rộng Cơ sở dữ liệu Số lượt Truyền thông Xã hội

Cơ sở dữ liệu số lượng phương tiện truyền thông xã hội được cung cấp bao gồm 1111 mẫu từ chỉ mục Phân tích SEO web. Để có thể ước tính điểm phổ biến chính xác hơn, cần có một mẫu lớn hơn. Bạn có thể tạo cơ sở dữ liệu của riêng mình bằng cách ước tính số lượng phương tiện truyền thông xã hội từ nhiều trang hơn trên web.

3. Thêm nhiều mạng xã hội hơn

Việc triển khai sử dụng Lượt thích trên Facebook, lượt +1 trên Google và số lượng Tweet để đánh giá mức độ phổ biến của một bài viết. Tuy nhiên, có thể dễ dàng tính đến các số liệu từ các mạng xã hội khác. Tất cả những gì bạn cần làm là xây dựng cơ sở dữ liệu với số lượng phương tiện truyền thông xã hội từ các mạng mà bạn quan tâm và mở rộng lớp SocialMediaPopularity để xử lý chúng cho phù hợp.

Nhận xét cuối cùng về việc thực hiện

Để có thể mở rộng triển khai, bạn phải hiểu rõ về cách Phân tích bao bì dữ liệu làm. Điều này được đề cập trong bài viết trước, vì vậy hãy đảm bảo bạn đã đọc hướng dẫn trước khi tiến hành bất kỳ thay đổi nào. Hơn nữa, để sử dụng mã JAVA, bạn phải cài đặt trong hệ thống của mình thư viện lp_solve (xem ở trên).

Nếu bạn sử dụng thực hiện trong một dự án thú vị thả chúng tôi một dòng và chúng tôi sẽ giới thiệu dự án của bạn trên blog của chúng tôi. Ngoài ra nếu bạn thích bài viết, hãy dành một chút thời gian và chia sẻ nó trên Twitter hoặc Facebook.

Dấu thời gian:

Thêm từ Hộp dữ liệu