من هو الأفضل؟ Memgraph مقابل NetworkX PageRank

تعد NetworkX أداة رائعة للعديد من مطوري Python الذين يرغبون في البحث عن شبكات البيانات. يتعلق جزء مهم من هذا البحث بخوارزميات الرسم البياني. هناك خوارزميات مختلفة للرسم البياني ، وكلها تعمل بشكل مختلف ، اعتمادًا على تطبيقاتها وحجم مجموعة البيانات التي يتم تحليلها. يعد تطبيق Python الخالص من NetworkX سهل الاستخدام لأي مطور Python. ومع ذلك ، عندما يتعلق الأمر بقضايا التوسع والحاجة إلى المثابرة عند العمل على التطبيقات في الإنتاج ، فإن Memgraph يوفر اليوم.

Memgraph هو نظام أساسي مفتوح المصدر لحوسبة الرسم البياني في الذاكرة لتحليل الرسم البياني الثابت أو في الوقت الفعلي. يحتوي على مجموعة من خوارزميات الرسم البياني المحسّنة للغاية التي تم تنفيذها في C ++ ، كما يوفر إمكانية إنشاء إجراءات مخصصة في Python أو C / C ++ أو Rust. اقرأ كيفية استكشاف الرسوم البيانية الخاصة بك NetworkX باستخدام Memgraph لفهم مزايا استخدام Memgraph عبر NetworkX.

تعد خوارزمية PageRank من أشهر خوارزميات الرسومات ، والتي استخدمها بحث Google في الأصل لترتيب صفحات الويب في نتائج محرك البحث. هناك العديد من تطبيقات PageRank ، و NetworkX و Memgraph لهما تطبيقات خاصة بهما. دعنا نكتشف أيهما أسرع في مثال لمجموعة البيانات! مجموعة البيانات

يمكن تشغيل NetworkX و Memgraph PageRank وسيتم تشغيلهما من Memgraph لأنه في Memgraph ، يمكن توسيع لغة الاستعلام Cypher باستخدام إجراءات Python. في إحدى الإجراءات سوف نستخدم مكتبة NetworkX.

تحتوي واجهة Memgraph المرئية ، Memgraph Lab ، على مجموعة من مجموعات البيانات التي يمكن استخدامها لتجارب واستكشافات الرسم البياني المختلفة. مجموعة البيانات المختارة لهذه المقارنة هي مجموعة بيانات مقالات ويكيبيديا التي تتكون من 78181 عقدة و 310227 علاقة. يمكن استيراد مجموعة بيانات مقالات ويكيبيديا إلى قاعدة البيانات من قسم مجموعات البيانات.

Memgraph-vs-NetworkX-PageRank-img-1

يمكن إنشاء نموذج بيانات الرسم البياني لمجموعة بيانات مقالات ويكيبيديا في قسم الرسم التخطيطي لفهم كيفية تفاعل العقد والعلاقات مع بعضها البعض في مجموعة البيانات بشكل أفضل.

Memgraph-vs-NetworkX-PageRank-img-2

مجموعة البيانات الخاصة بمقالات Wikipedia كبيرة بما يكفي لتقديم نتائج مفيدة لمقارنة خوارزميات PageRank في Memgraph و NetworkX. يمكن إجراء المقارنة على مجموعات بيانات أكبر بكثير ، لكن NetworkX تستهلك الذاكرة بسرعة إلى حد ما ، وهذه الأنواع من حالات الاستخدام هي حيث سيكون Memgraph ، دون سؤال أو حاجة للاختبار ، خيارًا أفضل. p> وحدة الاستعلام المخصصة

تم دمج Memgraph مع NetworkX ، مما يعني أنه يمكنها تحويل الرسوم البيانية لـ NetworkX إلى رسوم بيانية Memgraph ، بالإضافة إلى مجموعة خوارزميات NetworkX والخوارزميات التي تستخدم مكتبة NetworkX. تم تحسين خوارزميات NetworkX داخل Memgraph للحصول على أفضل أداء وتشغيلها على كائنات Memgraph DiGraph.

تتيح لنا وحدة الاستعلام المخصصة تشغيل خوارزمية NetworkX PageRank على كائن NetworkX DiGraph بدلاً من تشغيلها على كائن Memgraph DiGraph لمقارنة أكثر إنصافًا. يمكن تطوير وحدة استعلام مخصصة في قسم وحدات الاستعلام عن طريق إنشاء وحدة نمطية جديدة. يتم إعطاء الأسماء حسب التفضيل ، وقد أطلقنا على هذا اسم مقياس معامل الاستعلام.

image alt

فيما يلي رمز وحدة الاستعلام المخصصة المستخدمة في المقارنة: استيراد mgp استيراد networkx كـ nx @ mgp.read_proc def pagerank (ctx: mgp.ProcCtx) -> سجل mgp (العقدة = mgp.Vertex ، الرتبة = تعويم): ز = nx.DiGraph () g.add_nodes_from (ctx.graph.vertices) لـ v في ctx.graph.vertices: g.add_edges_from ([(edge.from_vertex، edge.to_vertex) للحافة في v.in_edges]) pg = nx.pagerank (g ، tol = 1e-05) إرجاع [mgp.Record (العقدة = k ، الرتبة = v) لـ k ، v في pg.items ()]

في وحدة الاستعلام ، يقوم إجراء pagerank باسترداد رسم بياني من السياق وإنشاء مثيل NetworkX DiGraph. ثم يتم تشغيل خوارزمية NetworkX PageRank على هذا الرسم البياني.

يتم تشغيل إجراءات وحدة الاستعلام المخصصة من قسم تنفيذ الاستعلام. يتم استدعاء إجراء pagerank () الخاص بوحدة استعلام القياس بطلب Cypher التالي:

CALL Meas.pagerank () YIELD العقدة ، الترتيب

إذا كنت مهتمًا بتطوير وحدات استعلام مخصصة باستخدام Memgraph ، فانتقل إلى المستند ...

من هو الأفضل؟ Memgraph مقابل NetworkX PageRank

تعد NetworkX أداة رائعة للعديد من مطوري Python الذين يرغبون في البحث عن شبكات البيانات. يتعلق جزء مهم من هذا البحث بخوارزميات الرسم البياني. هناك خوارزميات مختلفة للرسم البياني ، وكلها تعمل بشكل مختلف ، اعتمادًا على تطبيقاتها وحجم مجموعة البيانات التي يتم تحليلها. يعد تطبيق Python الخالص من NetworkX سهل الاستخدام لأي مطور Python. ومع ذلك ، عندما يتعلق الأمر بقضايا التوسع والحاجة إلى المثابرة عند العمل على التطبيقات في الإنتاج ، فإن Memgraph يوفر اليوم.

Memgraph هو نظام أساسي مفتوح المصدر لحوسبة الرسم البياني في الذاكرة لتحليل الرسم البياني الثابت أو في الوقت الفعلي. يحتوي على مجموعة من خوارزميات الرسم البياني المحسّنة للغاية التي تم تنفيذها في C ++ ، كما يوفر إمكانية إنشاء إجراءات مخصصة في Python أو C / C ++ أو Rust. اقرأ كيفية استكشاف الرسوم البيانية الخاصة بك NetworkX باستخدام Memgraph لفهم مزايا استخدام Memgraph عبر NetworkX.

تعد خوارزمية PageRank من أشهر خوارزميات الرسومات ، والتي استخدمها بحث Google في الأصل لترتيب صفحات الويب في نتائج محرك البحث. هناك العديد من تطبيقات PageRank ، و NetworkX و Memgraph لهما تطبيقات خاصة بهما. دعنا نكتشف أيهما أسرع في مثال لمجموعة البيانات! مجموعة البيانات

يمكن تشغيل NetworkX و Memgraph PageRank وسيتم تشغيلهما من Memgraph لأنه في Memgraph ، يمكن توسيع لغة الاستعلام Cypher باستخدام إجراءات Python. في إحدى الإجراءات سوف نستخدم مكتبة NetworkX.

تحتوي واجهة Memgraph المرئية ، Memgraph Lab ، على مجموعة من مجموعات البيانات التي يمكن استخدامها لتجارب واستكشافات الرسم البياني المختلفة. مجموعة البيانات المختارة لهذه المقارنة هي مجموعة بيانات مقالات ويكيبيديا التي تتكون من 78181 عقدة و 310227 علاقة. يمكن استيراد مجموعة بيانات مقالات ويكيبيديا إلى قاعدة البيانات من قسم مجموعات البيانات.

Memgraph-vs-NetworkX-PageRank-img-1

يمكن إنشاء نموذج بيانات الرسم البياني لمجموعة بيانات مقالات ويكيبيديا في قسم الرسم التخطيطي لفهم كيفية تفاعل العقد والعلاقات مع بعضها البعض في مجموعة البيانات بشكل أفضل.

Memgraph-vs-NetworkX-PageRank-img-2

مجموعة البيانات الخاصة بمقالات Wikipedia كبيرة بما يكفي لتقديم نتائج مفيدة لمقارنة خوارزميات PageRank في Memgraph و NetworkX. يمكن إجراء المقارنة على مجموعات بيانات أكبر بكثير ، لكن NetworkX تستهلك الذاكرة بسرعة إلى حد ما ، وهذه الأنواع من حالات الاستخدام هي حيث سيكون Memgraph ، دون سؤال أو حاجة للاختبار ، خيارًا أفضل. p> وحدة الاستعلام المخصصة

تم دمج Memgraph مع NetworkX ، مما يعني أنه يمكنها تحويل الرسوم البيانية لـ NetworkX إلى رسوم بيانية Memgraph ، بالإضافة إلى مجموعة خوارزميات NetworkX والخوارزميات التي تستخدم مكتبة NetworkX. تم تحسين خوارزميات NetworkX داخل Memgraph للحصول على أفضل أداء وتشغيلها على كائنات Memgraph DiGraph.

تتيح لنا وحدة الاستعلام المخصصة تشغيل خوارزمية NetworkX PageRank على كائن NetworkX DiGraph بدلاً من تشغيلها على كائن Memgraph DiGraph لمقارنة أكثر إنصافًا. يمكن تطوير وحدة استعلام مخصصة في قسم وحدات الاستعلام عن طريق إنشاء وحدة نمطية جديدة. يتم إعطاء الأسماء حسب التفضيل ، وقد أطلقنا على هذا اسم مقياس معامل الاستعلام.

image alt

فيما يلي رمز وحدة الاستعلام المخصصة المستخدمة في المقارنة: استيراد mgp استيراد networkx كـ nx @ mgp.read_proc def pagerank (ctx: mgp.ProcCtx) -> سجل mgp (العقدة = mgp.Vertex ، الرتبة = تعويم): ز = nx.DiGraph () g.add_nodes_from (ctx.graph.vertices) لـ v في ctx.graph.vertices: g.add_edges_from ([(edge.from_vertex، edge.to_vertex) للحافة في v.in_edges]) pg = nx.pagerank (g ، tol = 1e-05) إرجاع [mgp.Record (العقدة = k ، الرتبة = v) لـ k ، v في pg.items ()]

في وحدة الاستعلام ، يقوم إجراء pagerank باسترداد رسم بياني من السياق وإنشاء مثيل NetworkX DiGraph. ثم يتم تشغيل خوارزمية NetworkX PageRank على هذا الرسم البياني.

يتم تشغيل إجراءات وحدة الاستعلام المخصصة من قسم تنفيذ الاستعلام. يتم استدعاء إجراء pagerank () الخاص بوحدة استعلام القياس بطلب Cypher التالي:

CALL Meas.pagerank () YIELD العقدة ، الترتيب

إذا كنت مهتمًا بتطوير وحدات استعلام مخصصة باستخدام Memgraph ، فانتقل إلى المستند ...

What's Your Reaction?

like

dislike

love

funny

angry

sad

wow