الأخبار التكنولوجية والاستعراضات والنصائح!

مقدمة عملية للتعلم الآلي لمحترفي تحسين محركات البحث (SEO).

ستساعدك المقالة التالية: مقدمة عملية للتعلم الآلي لمحترفي تحسين محركات البحث (SEO).

تستمر قائمة مهام تحسين محركات البحث (SEO) المذهلة التي يمكن تشغيلها تلقائيًا في النمو وأنا متحمس لرؤية المزيد من تطبيقات الأتمتة المشتركة في المجتمع.

دعنا نشاركك!

نظرًا للاستقبال الإيجابي لمقدمتي العملية لعمود بايثون والأهمية المتزايدة لمهارات التعلم الآلي، قررت أن أكتب هذه المقالة عن التعلم الآلي، والتي حاولت أن أجعل متابعتها سهلة للغاية.

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

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

أنا أفكر في النجاح إذا حصلت صفحاتنا على المزيد من نقرات البحث العضوية.

ستأتي بيانات التدريب من Google Search Console وعلامات العنوان (والأوصاف التعريفية) من تجريف الصفحات.

فيما يلي خطتنا الفنية لإنشاء مجموعة بيانات التدريب:

  1. يستخرج: سوف يتصل الكود الخاص بنا بـ Google Search Console ويسحب بيانات التدريب الأولية لدينا.
  2. تحول: بعد ذلك، سنقوم بإحضار عناوين الصفحات والأوصاف التعريفية وحساب ما إذا كانت الاستعلامات موجودة في العناوين.
  3. حمولة: أخيرًا، سنقوم بتصدير مجموعة البيانات الخاصة بنا بكل الميزات واستيرادها إلى نظام تعلم الآلة.

في معظم مشاريع التعلم الآلي، ستقضي معظم وقتك في تجميع مجموعة بيانات التدريب.

يتطلب العمل الفعلي للتعلم الآلي جهدًا أقل بكثير ولكنه يتطلب فهمًا واضحًا للأساسيات.

من أجل إبقاء جزء التعلم الآلي بسيطًا للغاية، سنأخذ بياناتنا ونقوم بتوصيلها بها BigML، مجموعة أدوات التعلم الآلي “افعل ذلك نيابةً عنك”.

هذا ما تعلمته عندما أكملت هذا البرنامج التعليمي باستخدام البيانات من أحد عملائي (قد يكون عملائك مختلفين).

بعد موضع الكلمة الرئيسية ومرات ظهور البحث، يلعب وجود الاستعلام في العنوان دورًا تنبؤيًا عند محاولة زيادة نقرات البحث العضوي.

دعونا نرى كيف أجريت هذا التحليل باستخدام التعلم الآلي.

استخراج وتحويل وتحميل

تسمى عملية شائعة جدًا في مسار التعلم الآلي استخراج، تحويل، تحميل.

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

أصبحت العديد من المهام المتعلقة بالتعلم الآلي تتم آليًا، لكنني أتوقع أن تظل الخبرة في المجال بشأن نوع البيانات التي تساعد على التنبؤات الجيدة مهارة قيمة.

باعتبارك مُحسني محركات البحث، ربما يكون تعلم كيفية إنشاء مجموعات بيانات تدريب مخصصة هو أول شيء تحتاجه لاستثمار الوقت في التعلم والإتقان.

مصادر البيانات العامة والعامة ليست بنفس جودة تلك التي يمكنك إنشاؤها وتنظيمها بنفسك.

تشغيل دفتر كولاب

أولاً، قم بعمل نسخة من دفتر الملاحظات وقم بإنشاء جدول بيانات فارغ سنستخدمه لملء مجموعة بيانات التدريب.

تحتاج إلى توفير ثلاثة عناصر:

  • اسم جدول البيانات.
  • عنوان URL لموقع الويب في Search Console.
  • ملف ترخيص اسمه

اسمحوا لي أن أوضح الخطوات التي يتعين عليك اتخاذها لإنتاج الملف.

أولاً، هناك بعض الإعداد لتنزيل ملفclient_id.json الذي يمكن أن يستخدمه كود Python الخاص بنا للاتصال بشكل آمن بـ Google Search Console.

أولاً، تأكد من تشغيل الخلية بالنموذج الذي يحتوي على قيم الإدخال إلى دفتر الملاحظات.

سيطالبك التعليمة البرمجية التالية في دفتر الملاحظات بتحميل ملفclient_id.json من جهاز الكمبيوتر الخاص بك.

#التالي، نحتاج إلى تحميل الملف من google.colab import files files.upload()

يمكنك النقر فوق السطر بعد تحميل (لا تنس تشغيل النموذج في الأعلى أولاً، حتى يتم التقاط قيم الإدخال).

سيُطلب منك الحصول على إذن للوصول إلى Search Console.

يرجى نسخ رمز التفويض ولصقه مرة أخرى في دفتر الملاحظات.

ستكون هناك مطالبة ثانية، ستمكننا من الوصول إلى جدول البيانات الفارغ.

بعد تنفيذ جميع الخلايا، يجب أن ينتهي بك الأمر بمجموعة بيانات تدريب مخصصة في جدول البيانات الفارغ مثل هذا.

لنأخذ مجموعة بيانات التدريب الخاصة بنا إلى BigML ونرى ما سنتعلمه.

سنقوم بمراجعة بعض التعليمات البرمجية الموجودة في دفتر الملاحظات بعد الجزء الخاص بـ BigML.

تدريب النموذج التنبؤي

يجعل BigML بناء النماذج التنبؤية أمرًا بسيطًا للغاية. عليك أن تمر بثلاث مراحل:

  • قم باستيراد ملف البيانات المصدر (ورقة Google الخاصة بنا).
  • أنشئ مجموعة بيانات تعمل من أجل التعلم الآلي. يتضمن ذلك إزالة بعض الأعمدة واختيار عمود الهدف الذي سنحاول التنبؤ به.
  • حدد نموذجًا تنبؤيًا للتدريب عليه (سنستخدم شبكة عصبية عميقة).

لنجرب أولاً جلسة تدريبية بسيطة وساذجة باستخدام جميع الأعمدة الموجودة في مجموعة البيانات الخاصة بنا.

نقوم هنا باستيراد ورقة Google التي أنشأناها باستخدام دفتر الملاحظات.

بعد ذلك، نقوم بإنشاء مصدر بيانات وتحديد نسبة النقر إلى الظهور كهدف.

لاحظ علامات التعجب. وهي تسلط الضوء على الأعمدة غير المفيدة للتنبؤ.

لقد اخترنا Deepnet كنموذج للبناء ودعنا نرى الميزات الأكثر أهمية.

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

هذا لا يخبرنا بأي شيء لم نكن نعرفه بالفعل. من الأفضل إزالة هذه الأعمدة والمحاولة مرة أخرى.

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

إذا فكرت في الأمر، فإن نسبة النقر إلى الظهور هي عبارة عن عدد النقرات مقسومًا على عدد مرات الظهور، لذا فمن المنطقي أن يجد النموذج هذا الارتباط البسيط.

نحتاج أيضًا إلى استبعاد نسبة النقر إلى الظهور من مجموعة التدريب.

الميزات المستقلة مقابل الميزات التابعة

نحن بحاجة إلى تضمين الميزات المستقلة فقط المتعلقة بمقياس هدفنا في مجموعة التدريب الخاصة بنا.

هنا هو السبب.

إحدى الطرق المبسطة للتفكير في نموذج التعلم الآلي هي تصور أ وظيفة الانحدار الخطي في إكسل / جداول البيانات.

يتم تحويل القيم الموجودة في أعمدتنا إلى أرقام والهدف من عملية التدريب هو تقدير دالة يمكن أن تؤدي إلى تنبؤ دقيق عند إعطاء قيمة.

نحن نحاول التنبؤ بقيم Y، مع إعطاء قيم X، ومجموعة من قيم Y وX المعروفة سابقًا.

X متغير مستقل، وY متغير تابع. يعتمد ذلك على قيم X.

يؤدي خلط المتغيرات المستقلة والتابعة بلا مبالاة (كما فعلنا أعلاه) إلى نماذج عديمة الفائدة.

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

النقرات مستقلة عن مرات الظهور لأنك تحتاج أيضًا إلى نسبة النقر إلى الظهور، والتي قمنا بإزالتها.

لقد قمنا أيضًا بإزالة أعمدة الصفحة والاستعلام لأنها ليست مفيدة.

تعزيز مجموعة التدريب بميزات جديدة

في كثير من الأحيان، لا تكون الميزات التي يمكنك الوصول إليها مفيدة بما فيه الكفاية وتحتاج إلى إنشاء ميزات جديدة.

هذا هو المكان الذي يمكن أن تُحدث فيه خبرتك في المجال ومعرفة لغة بايثون فرقًا كبيرًا.

قد لا يتمتع عالم البيانات الذي يعمل على نموذج تنبؤي لنسبة النقر إلى الظهور بخبرة تحسين محركات البحث لمعرفة أن الكلمات الرئيسية في علامات العنوان يمكن أن تحدث فرقًا.

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

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

يمكننا اتباع عملية مماثلة والتحقق من تأثير الاستعلامات في الوصف التعريفي، أو المشاعر العاطفية في كل من العنوان والوصف التعريفي، وما إلى ذلك.

أجد أن هذا النوع من التمارين يمثل فائدة لا تحظى بالتقدير الكافي لتدريب نماذج التعلم الآلي.

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

لنراجع الكود الذي استخدمته لإنشاء هذا العمود الجديد.

إضافة ميزات إعلامية جديدة

يبدو التحقق من ظهور الاستعلام في العنوان أمرًا بسيطًا، ولكنه دقيق جدًا.

من الممكن أن يتم تضمين الاستعلام جزئيًا فقط.

يمكننا إجراء مباراة جزئية عن طريق إجراء بحث غامض. نحن نفعل هذا في بايثون باستخدام المكتبة .

هنا هو رمز لذلك.

!pip تثبيت fuzzywuzzy[speedup]

من fuzzywuzzy import fuzz #remove صفوف فارغة من إطار البيانات df = df.dropna() df[“query_in_title”] = df.apply(صف لامدا: fuzz.partial_ratio(row[“query”]، صف[“title”])، المحور=1) مدافع[[“page”, “query”, “country”, “device”, “clicks”, “impressions”, “position”, “query_in_title” ]].to_excel(“client.xlsx”، Index=False) من جوجل استيراد الملفات files.download(“client.xlsx”)

لا يتم تضمين العنوان والأوصاف التعريفية في مجموعة بيانات Google Search Console. لقد أضفناها باستخدام مقتطف الشفرة هذا.

من request_html استيراد HTMLSession def get_title_meta_description(page): session = HTMLSession() حاول: r = session.get(page) إذا r.status_code == 200: title = r.html.xpath(‘//title/text()’ ) meta_description = r.html.xpath(“//meta[@name=”description”]/@content”) # وظيفة الأداة المساعدة الداخلية def get_first(result): if len(result) == 0: return لا شيء آخر: إرجاع النتيجة[0]

إرجاع {“title”: get_first(title)، “meta_description”: get_first(meta_description)} else: print(f”فشل جلب الصفحة: {page} مع رمز الحالة {r.status_code}”) باستثناء: print(f” فشل جلب الصفحة: {page}”) إرجاع لا شيء

بعد ذلك، يمكننا تشغيله على جميع عناوين URL من Search Console.

# لنحصل على كل هذه العناوين_and_meta_descriptions=dict() وقت استيراد الصفحة في الصفحات: print(f”Fetching page: {page}”) title_and_meta_descriptions[page] = get_title_meta_description(page) #add تأخير بين طلبات time.sleep(1)

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

merged_df=pd.merge(df, new_df, how=”left”, on=”page”)

تأكد من التحقق من الرمز الذي استخدمته لملء ورقة Google. لقد وجدت مكتبة يمكنها مزامنة إطار البيانات مع جداول بيانات Google. لقد قدمت التصحيح لتبسيط عملية المصادقة داخل Google Colab.

# احفظ DataFrame في ورقة العمل ‘العميل’، وقم بإنشائه أولاً إذا لم يكن موجودًا Spread.df_to_sheet(df, Index=False,sheet=Client,start=A1,replace=True)

موارد لمعرفة المزيد

هناك المزيد من أكواد Python التي يجب مراجعتها، ولكن نظرًا لأنني قمت بتوثيق دفتر ملاحظات Colab، فمن الأفضل أن تقرأ عنها هناك وتلعب بها.

تأكد من التحقق من الكود الذي يصل إلى Google Search Console.

أحد الأجزاء المثيرة للاهتمام بشكل خاص بالنسبة لي هو أن المكتبة لم تدعم الوصول إليها من Google Colab.

لقد قمت بمراجعة الكود وحددت تغييرات الكود اللازمة لدعم ذلك.

لقد قمت بإجراء تغييرات، ورأيت أنها تعمل، وقمت بمشاركتها مرة أخرى مع مطور المكتبة.

فقبلهم و الآن هم جزء من المكتبة وأي شخص يستخدمه سيستفيد من مساهمتي الصغيرة.

لا أستطيع الانتظار لأرى كم عدد مُحسنات محركات البحث (SEO) الخاصة بـ Python في المجتمع التي تقدم مساهمات مفتوحة المصدر للمكتبات والأكواد التي نستخدمها جميعًا.

التعلم الآلي أسهل في التعلم بصريًا.

إليك بعض الروابط الرائعة لتعلمها بدون عمليات حسابية معقدة.

المزيد من الموارد: