كتاب "استخراج البيانات. استرجاع المعلومات من Facebook و Twitter و LinkedIn و Instagram و GitHub »

صورة مرحبا ، habrozhiteli! في أحشاء الشبكات الاجتماعية الشهيرة - Twitter و Facebook و LinkedIn و Instagram - يتم إخفاء أغنى ودائع المعلومات. من هذا الكتاب ، سيتعرف الباحثون والمحللون والمطورون على كيفية استخراج هذه البيانات الفريدة باستخدام رمز Python أو حاوية Jupyter Notebook أو حاويات Docker. أولاً ، ستتعرف على وظائف الشبكات الاجتماعية الأكثر شعبية (Twitter و Facebook و LinkedIn و Instagram) وصفحات الويب والمدونات والأعلاف والبريد الإلكتروني و GitHub. ثم ابدأ في تحليل البيانات باستخدام مثال Twitter. اقرأ هذا الكتاب إلى:

  • تعرف على المشهد الحديث للشبكات الاجتماعية ؛
  • تعلم كيفية استخدام Docker للعمل بسهولة مع الرموز الواردة في الكتاب ؛
  • تعرف على كيفية تكييف التعليمات البرمجية وتسليمها إلى مستودع GitHub المفتوح ؛
  • تعلم كيفية تحليل البيانات التي تم جمعها باستخدام قدرات Python 3 ؛
  • إتقان تقنيات التحليل المتقدمة مثل TFIDF ، تشابه جيب التمام ، تحليل التجميع ، اكتشاف النقرات والتعرف على الأنماط ؛
  • تعرف على كيفية إنشاء تصورات بيانات جميلة باستخدام Python و JavaScript.

مقتطفات. 4.3. مقدمة موجزة لتقنيات تجميع البيانات


الآن بعد أن أصبح لدينا فكرة عن كيفية الوصول إلى LinkedIn API ، سننتقل إلى تحليل معين ومناقشة التكتل بالتفصيل [يُسمى هذا النوع من التحليل أيضًا في الغالب المصادفة التقريبية و / أو المطابقة الغامضة و / أو إلغاء البيانات المكررة - طريقة التعلم الآلية بدون مدرس ، تعتبر ضرورية في أي مجموعة من أدوات تحليل البيانات. تأخذ خوارزمية التجميع مجموعة من العناصر وتقسيمها إلى مجموعات أصغر (مجموعات) وفقًا لبعض المعايير المصممة لمقارنة العناصر في المجموعة.

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

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

عند تنفيذ حلول لمشاكل تجميع البيانات من LinkedIn أو من مصادر أخرى ، ستواجه مرارًا وتكرارًا موضوعين رئيسيين على الأقل (ترد مناقشة للموضوع الثالث في الشريط الجانبي "دور تقليل الأبعاد في التجميع" أدناه).

تطبيع البيانات
حتى عند استخدام واجهة برمجة تطبيقات جيدة جدًا ، نادرًا ما يتم توفير البيانات بالتنسيق الذي تحتاجه - غالبًا ما يستغرق الأمر أكثر من تحويل بسيط لإحضار البيانات في نموذج مناسب للتحليل. على سبيل المثال ، يسمح مستخدمو LinkedIn بالحريات المعينة عند وصف مشاركاتهم ، لذلك ليس من الممكن دائمًا الحصول على أوصاف طبيعية تمامًا. يمكن لأحد المديرين اختيار اسم "المدير الفني الرئيسي" ، والآخر - الاسم الأكثر غموضًا "TRP" ، ويمكن للثالث وصف الموقف نفسه بطريقة مختلفة بطريقة أو بأخرى. أدناه سنعود إلى مشكلة تطبيع البيانات وتنفيذ قالب لمعالجة جوانب معينة منه في بيانات LinkedIn.

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

على سبيل المثال ، تتم مقارنة طول إجمالي مدة خدمة شخصين من خلال عمليات إضافة بسيطة ، ولكن مقارنة الخصائص المهنية الأوسع ، مثل "قدرات القيادة" ، بطريقة آلية بالكامل ، يمكن أن تشكل تحديًا كبيرًا.

دور الحد من الأبعاد في التجميع


تطبيع البيانات وتحديد التشابه هما موضوعان رئيسيان سوف تصادفهما في التجميع على مستوى تجريدي. ولكن هناك موضوع ثالث - تقليل الأبعاد ، والذي يصبح ذا صلة بمجرد أن يصبح حجم البيانات تافهاً. لتجميع العناصر في مجموعة باستخدام مقياس التشابه ، من الأفضل أن تقارن كل عنصر بكل عنصر آخر. في هذه الحالة ، في أسوأ سيناريو ، بالنسبة لمجموعة من العناصر n ، سيكون عليك حساب درجة التشابه تقريبًا n مرتين لمقارنة كل عنصر من العناصر n بعناصر أخرى n- 1.

في علوم الكمبيوتر ، يُطلق على هذا الموقف مشكلة التعقيد التربيعي وعادةً ما يُشار إليها باسم O (n 2 ) ؛ في المحادثات ، وعادة ما يطلق عليه "مشكلة النمو التربيعي لل O. كبير" تصبح المشكلات O (n 2 ) غير قابلة للحل لقيم n كبيرة جدًا ، وفي معظم الحالات يعني المصطلح " غير القابل للحل" أنه عليك الانتظار "طويلًا جدًا" حتى يتم حساب الحل. "طويل جدًا" - يمكن أن يكون دقائق أو سنوات أو عصور ، اعتمادًا على طبيعة المهمة وقيودها.

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

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

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

كما ذكر أعلاه ، هذا موقف كلاسيكي عند تحليل البيانات من LinkedIn: يمكن للمستخدمين إدخال معلوماتهم في نص حر ، مما يؤدي حتماً إلى زيادة في الاختلافات. على سبيل المثال ، إذا قررت البحث في شبكتك المهنية وتحديد مكان عمل معظم جهات الاتصال الخاصة بك ، فسيتعين عليك التفكير في الخيارات الشائعة الاستخدام لكتابة أسماء الشركات. حتى أبسط أسماء الشركات يمكن أن يكون لها العديد من الخيارات التي من شبه المؤكد أن تجدها (مثل "Google" - شكل مختصر من "Google، Inc.") ، وعليك أن تفكر في جميع هذه الخيارات من أجل نقلها إلى نموذج قياسي. عند توحيد أسماء الشركات ، قد تكون نقطة الانطلاق الجيدة هي تطبيع الاختصارات في أسماء مثل LLC و Inc.

4.3.1. تطبيع البيانات للتحليل


كمقدمة ضرورية ومفيدة لدراسة خوارزميات التجميع ، فإننا نعتبر بعض المواقف النموذجية التي قد تواجهها عند حل مشكلة تطبيع البيانات من LinkedIn. في هذا القسم ، ننفذ نموذجًا قياسيًا لتطبيع ألقاب الشركات والمهن. كتمرين أكثر تقدمًا ، سنناقش أيضًا بإيجاز مسألة الغموض والتكويد الجغرافي لأسماء الأماكن من ملف تعريف LinkedIn. (وهذا هو ، سنحاول تحويل أسماء الأماكن من ملفات تعريف LinkedIn ، مثل "منطقة ناشفيل الكبرى" ، إلى الإحداثيات التي يمكن تعيينها.)

والنتيجة الرئيسية للجهود المبذولة لتطبيع البيانات هي القدرة على مراعاة وتحليل الميزات الهامة واستخدام طرق التحليل المتقدمة ، مثل التجميع. في حالة البيانات من LinkedIn ، سنقوم بدراسة ميزات مثل النشرات والمواقع الجغرافية.

التطبيع والعد الشركة


دعنا نحاول توحيد أسماء الشركات من شبكتك المهنية. كما هو موضح أعلاه ، يمكنك استخراج البيانات من LinkedIn بطريقتين رئيسيتين: برمجيًا ، أو باستخدام واجهة برمجة تطبيقات LinkedIn ، أو استخدام آلية تصدير الشبكة الاحترافية في شكل دفتر عناوين ، والذي يتضمن معلومات أساسية مثل الاسم والموقع والشركة ومعلومات الاتصال.

تخيل أن لدينا بالفعل ملف CSV به جهات اتصال تم تصديرها من LinkedIn ، والآن يمكننا تطبيع وعرض الكيانات المحددة ، كما هو موضح في المثال 4.4.

كما هو موضح في التعليقات داخل الأمثلة ، تحتاج إلى إعادة تسمية ملف CSV مع جهات الاتصال التي قمت بتصديرها من LinkedIn ، باتباع الإرشادات الموجودة في القسم "تنزيل ملف معلومات جهة الاتصال على LinkedIn" ونسخه إلى دليل محدد حيث يمكن العثور على رمز البرنامج.

مثال 4.4 تطبيع بسيط من الاختصارات في أسماء الشركات


import os import csv from collections import Counter from operator import itemgetter from prettytable import PrettyTable #    LinkedIn: https://www.linkedin.com/psettings/member-data. #  , LinkedIn       , #    .      # resources/ch03-linkedin/. CSV_FILE = os.path.join("resources", "ch03-linkedin", 'Connections.csv') #   ,    #  .     #     . transforms = [(', Inc.', ''), (', Inc', ''), (', LLC', ''), (', LLP', ''), (' LLC', ''), (' Inc.', ''), (' Inc', '')] companies = [c['Company'].strip() for c in contacts if c['Company'].strip() != ''] for i, _ in enumerate(companies): for transform in transforms: companies[i] = companies[i].replace(*transform) pt = PrettyTable(field_names=['Company', 'Freq']) pt.align = 'l' c = Counter(companies) [pt.add_row([company, freq]) for (company, freq) in sorted(c.items(), key=itemgetter(1), reverse=True) if freq > 1] print(pt) 

فيما يلي نتائج تحليل التردد البسيط:

صورة

يدعم Python القدرة على تمرير الوسائط إلى الوظائف من خلال إلغاء تحديد قائمة و / أو قاموس ، وهو في بعض الأحيان مناسب للغاية ، كما هو موضح في المثال 4.4. على سبيل المثال ، المكالمة f (* args ، ** kw) تعادل المكالمة f (1 ، 7 ، x = 23) ، حيث يتم تعريف args كقائمة من الوسائط [1،7] و kw باعتبارها قاموس {'x': 23}. يمكن الاطلاع على نصائح برمجة Python الأخرى في الملحق B.

ضع في اعتبارك أنه للتعامل مع المواقف الأكثر تعقيدًا ، على سبيل المثال ، لتطبيع أسماء مختلفة لنفس الشركة التي تغيرت مع مرور الوقت ، مثل O'Reilly Media ، ستحتاج إلى كتابة رمز أكثر تعقيدًا. في هذه الحالة ، قد يتم تمثيل اسم هذه الشركة على أنها O'Reilly & Associates ، O'Reilly Media ، O'Reilly، Inc. أو مجرد O'Reilly [إذا بدا لك أن هناك صعوبات كبيرة تنتظرك ، فما عليك سوى أن تتخيل نوع العمل الذي يتعين على اختصاصيي Dun & Bradstreet القيام به (http://bit.ly/1a1m4Om) ، والذي يتخصص في فهرسة المعلومات ويواجه مهمة التجميع و يرافقه سجل مع أسماء الشركات بلغات مختلفة من العالم . ].

عن المؤلفين


ماثيو راسل (ptwobrussell) هو أحد كبار المتخصصين في Middle Tennessee. في العمل ، يحاول أن يكون قائدًا ، ويساعد الآخرين على أن يصبحوا قادة ويخلق فرقًا فعالة للغاية لحل المشكلات المعقدة. خارج العمل ، إنه يعكس الواقع ، والممارسات الفردية واضحة ويستعد لنهاية العالم غيبوبة وتمرد الآلات.

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

»يمكن الاطلاع على مزيد من المعلومات حول الكتاب على موقع الناشر
» المحتويات
» مقتطفات

خصم 25٪ على كوبون الباعة المتجولين - Data Mining

عند دفع النسخة الورقية من الكتاب ، يتم إرسال كتاب إلكتروني عبر البريد الإلكتروني.

Source: https://habr.com/ru/post/ar466729/


All Articles