مقدمه ای عملی برای یادگیری ماشین برای افراد حرفه ای سئو

لیست کارهای SEO که دارای خودکار هستند می توانند رو به رشد باشند همچنان در حال رشد هستند و من مشتاق دیدن برنامه های اتوماسیون بیشتر به اشتراک گذاشته شده در جامعه هستم.

بیایید شما را درگیر کنیم

با توجه به استقبال مثبت از معرفی عملی من در ستون پایتون و اهمیت روز افزون مهارتهای یادگیری ماشین ، تصمیم گرفتم این قطعه یادگیری ماشین را بنویسم ، که من سعی کردم دنباله آن را بسیار آسان کنم.

من یک نوت بوک Google Colab ساده را دنبال کردم که می توانید برای تولید یک مجموعه داده آموزشی سفارشی از آن استفاده کنید. این مجموعه داده به ما کمک می کند تا یک مدل پیش بینی کننده CTR بسازیم.

با این وجود ، به جای استفاده از مدل خود برای پیش بینی CTR ، از آن استفاده خواهیم کرد تا بدانیم که آیا اضافه کردن کلمات کلیدی به برچسبهای عنوان موفقیت را پیش بینی می کند.

من اگر صفحات ما کلیک های جستجوی ارگانیک بیشتری کسب کنند ، موفقیت را در نظر می گیرم.

داده های آموزش از Google Search Console و برچسب های عنوان (و توضیحات متا) از خراش دادن صفحات حاصل می شوند.

در اینجا برنامه فنی ما برای تولید مجموعه داده های آموزشی است:

  1. استخراج کردن: کد ما به کنسول جستجوی Google متصل می شود و داده های آموزش اولیه ما را جمع می کند.
  2. تبدیل: در مرحله بعد ، ما عناوین صفحات و توضیحات متا را می گیریم و محاسبه می کنیم که آیا نمایش داده شد در عنوان ها.
  3. بار: سرانجام ، ما با تمام ویژگی ها مجموعه داده خود را صادر می کنیم و آن را وارد سیستم ML می کنیم.

در بیشتر پروژه های یادگیری ماشینی ، بیشتر وقت خود را صرف جمع آوری مجموعه داده های آموزش خواهید کرد.

کار یادگیری ماشین واقعی تلاش کمتری می کند اما به درک روشنی از اصول نیاز دارد.

به منظور حفظ یادگیری دستگاه فوق العاده ساده ، ما داده های خود را گرفته و آن را به BigML ، ابزار ابزار یادگیری دستگاه “این کار را برای شما انجام خواهیم داد” وصل می کنیم.

این همان چیزی است که من وقتی این آموزش را با استفاده از داده های یکی از مشتری هایم انجام دادم یاد گرفتم (ممکن است مال شما متفاوت باشد).

مقدمه ای عملی برای یادگیری ماشین برای حرفه ای های SEO

پس از موقعیت کلمه کلیدی و برداشتهای جستجو ، حضور در پرس و جو در عنوان نقش پیش بینی کننده ای را هنگام تلاش برای افزایش کلیک های جستجوی ارگانیک بازی می کند.

بیایید ببینیم که چگونه من این تجزیه و تحلیل را با استفاده از یادگیری ماشین انجام دادم.

عصاره ، تبدیل و بارگذاری

یک فرآیند بسیار رایج در خط لوله یادگیری ماشینی ، عصاره ، تبدیل ، بار نامیده می شود.

به طور سنتی این ایده انتقال داده از یک پایگاه داده به پایگاه داده دیگر بود ، اما در یادگیری ماشین ، شما به ندرت داده های آموزش منبع را با فرمت مورد انتظار مدل ها در اختیار دارید.

بسیاری از وظایف مربوط به یادگیری ماشین به صورت خودکار می شوند ، اما من انتظار دارم که تخصص دامنه در مورد داده هایی که برای پیش بینی های خوب ایجاد می کنند ، یک مهارت ارزشمند باقی بماند.

مقاله پیشنهادی  بهبود UX برای سئو ، رسانه های اجتماعی شایسته Cringe و سایر موارد با مری دیویس [PODCAST]

به عنوان SEO ، یادگیری ساختن مجموعه های داده های آموزشی سفارشی احتمالاً اولین کاری است که شما برای یادگیری و مستر کردن وقت باید سرمایه گذاری کنید.

منابع داده عمومی و عمومی به همان خوبی نیستند که شما بتوانید خود را بسازید و بسازید.

نوت بوک Colab را اجرا کنید

ابتدا یک نسخه از نوت بوک تهیه کرده و یک صفحه گسترده خالی ایجاد کنید که از آن برای جمع آوری مجموعه داده های آموزش استفاده خواهیم کرد.

شما باید سه مورد را ارائه دهید:

  • نام صفحه گسترده
  • URL وب سایت در کنسول جستجو.
  • یک پرونده مجوز به نام client_id.json.

بگذارید مراحلی را که باید برای تولید آن بردارید تشریح کنم client_id.json فایل.

در ابتدا ، برای بارگیری پرونده client_id.json برای نصب ایمن به کنسول جستجوی Google ، نصب برخی از برنامه های نصب شده وجود دارد.

ابتدا مطمئن شوید که سلول را با شکلی که مقادیر ورودی را در نوت بوک داشته باشد اجرا کنید.

مقدمه ای عملی برای یادگیری ماشین برای متخصصان SEO

کد زیر در نوت بوک باعث می شود تا پرونده client_id.json را از رایانه خود بارگذاری کنید.

#Next, we need to upload the file

from google.colab import files

files.upload()

می توانید کلیک کنید زمان اجرا> بعد از اجرا در خط بعد از بارگذاری پرونده client_id.json (فراموش نکنید که ابتدا فرم را در بالا اجرا کنید ، بنابراین مقادیر ورودی ضبط می شوند).

مقدمه ای عملی برای یادگیری ماشین برای حرفه ای های SEO

از شما خواسته می شود تا به کنسول جستجو دسترسی پیدا کنید.

لطفاً کد مجوز را دوباره به نوت بوک کپی کرده و جایگذاری کنید.

اعلان دوم وجود دارد ، ما را به صفحه گسترده خالی دسترسی می دهد.

پس از اجرای کلیه سلول ها ، باید به یک مجموعه داده آموزشی اختصاصی در صفحه گسترده خالی مانند این گروه خاتمه دهید.

مقدمه ای عملی برای یادگیری ماشین برای متخصصان SEO

بیایید مجموعه داده های آموزشی خود را به BigML ببریم و ببینیم چه چیزی یاد خواهیم گرفت.

ما بعد از قسمت BigML به مرور برخی از کد های موجود در نوت بوک می پردازیم.

آموزش مدل پیش بینی

BigML ساخت مدلهای پیش بینی کننده را بسیار ساده می کند. شما باید سه مرحله را طی کنید:

  • فایل داده منبع را وارد کنید (برگه Google ما.)
  • دیتابیس ایجاد کنید که برای یادگیری ماشین کار کند. این شامل حذف برخی از ستون ها و انتخاب ستون هدف است که ما سعی خواهیم کرد پیش بینی کنیم.
  • برای آموزش به عنوان یک مدل پیش بینی کننده انتخاب کنید (از یک شبکه عصبی عمیق استفاده خواهیم کرد).

بیایید ابتدا با استفاده از تمام ستونهای موجود در مجموعه داده هایمان ، یک جلسه آموزشی ساده و ساده و ساده را امتحان کنیم.

مقدمه ای عملی برای یادگیری ماشین برای حرفه ای های SEO

در اینجا ما ورق Google را که با نوت بوک تولید کرده ایم وارد می کنیم.

مقدمه ای عملی برای یادگیری ماشین برای متخصصان SEO

در مرحله بعد ، ما یک منبع داده ایجاد می کنیم و CTR را به عنوان هدف انتخاب می کنیم.

مقدمه ای عملی برای یادگیری ماشین برای حرفه ای های SEO

به علامت تعجب توجه کنید. آنها ستون هایی را برجسته می کنند که برای پیش بینی مفید نیستند.

ما Deepnet را به عنوان الگویی برای ساختن انتخاب می کنیم و می بینیم مهمترین ویژگی ها کدام ویژگی ها است.

مقدمه ای عملی برای یادگیری ماشین برای متخصصان SEO

نکته ای که بسیار جالب است این است که CTR پرس و جو ، صفحه و موقعیت را به عنوان مهمترین ویژگی ها نشان می دهد.

مقاله پیشنهادی  ممکن است Google مجبور شود الگوریتم جستجوی خود را به سئو نشان دهد

این به ما چیزی نمی گوید که قبلاً نمی دانستیم. بهتر است این ستون ها را جدا کرده و دوباره امتحان کنید.

با این حال ، یک مشکل دیگر ، بسیار ظریف تر نیز وجود دارد. ما شامل CTR ، کلیک و برداشت ها هستیم.

اگر در مورد آن فکر کنید ، CTR با کلیک بر اساس برداشتها تقسیم می شود ، بنابراین منطقی است که مدل این ارتباط ساده را پیدا کند.

ما همچنین باید CTR را از مجموعه تمرین حذف کنیم.

مستقل در مقابل ویژگی های وابسته

ما فقط باید در مجموعه های آموزشی ما فقط ویژگی های مستقل مربوط به متریک هدف خود را لحاظ کنیم.

در اینجا چرا

یکی از راه های ساده برای فکر کردن در مورد یک مدل یادگیری ماشین ، تصویر کردن یک عملکرد رگرسیون خطی در Excel / Sheets است.

مقدمه ای عملی برای یادگیری ماشین برای متخصصان SEO

مقادیر موجود در ستون های ما به اعداد تبدیل می شود و هدف از فرایند آموزش تخمین تابعی است که با توجه به یک مقدار می توان یک پیش بینی دقیق ایجاد کرد.

ما در تلاشیم مقادیر Y را با توجه به مقادیر X و مجموعه ای از مقادیر Y ، X که قبلاً شناخته شده بود پیش بینی کنیم.

X یک متغیر مستقل است و Y یک متغیر وابسته است. بستگی به مقادیر X دارد.

مخلوط کردن متغیرهای مستقل و وابسته بی دقتی (مانند آنچه در بالا انجام دادیم) منجر به مدل های بی فایده می شود.

ما می توانیم با تغییر متریک هدف کلیک کرده و ستون CTR را از مجموعه داده خود حذف کنیم.

کلیک مستقل از برداشت است زیرا شما به CTR نیز نیاز دارید ، که ما آن را حذف کردیم.

ما همچنین صفحه و ستون های پرس و جو را حذف کردیم زیرا آنها آموزنده نیستند.

افزایش مجموعه آموزش با ویژگی های جدید

اغلب اوقات ویژگی هایی که به آنها دسترسی پیدا می کنید به اندازه کافی آموزنده نیستند و باید موارد جدیدی را تنظیم کنید.

اینجاست که تخصص دامنه شما و دانش پایتون می تواند تفاوت بزرگی ایجاد کند.

یک دانشمند داده که روی یک مدل پیش بینی CTR کار می کند ممکن است از تخصص سئو برخوردار نباشد که بداند کلمات کلیدی در برچسب های عنوان می توانند تغییری ایجاد کنند.

در نوت بوک ، برای ایجاد یک ستون جدید ، کد اضافه کردیم ، query_in_title، اگر عنوان شامل جستجوی جستجو باشد ، از 0 تا 100 نمره می دهد.

وقتی آن را در مجموعه تمرین قرار دادیم و اهمیت آن را در مدل پیش بینی مرور کردیم (همانطور که در تصویر بالا مشاهده می شود) ، چیز جدید و ارزشمندی آموختیم.

ما می توانیم یک فرآیند مشابه را دنبال کنیم و تأثیر سؤالات موجود در توضیحات متا یا احساسات عاطفی را در عنوان و توضیحات متا و غیره بررسی کنیم.

به نظر من این نوع تمرینات یک مزیت کم ارزش مدلهای یادگیری ماشین آموزش است.

تا زمانی که شما از تخصص دامنه برای پرسیدن سؤالات مناسب برخوردار باشید ، ماشین ها در پیدا کردن الگوهای نامرئی در داده ها واقعاً خوب هستند.

بیایید کدی را که من برای تولید این ستون جدید استفاده کردم بررسی کنیم.

مقاله پیشنهادی  Google در مورد اینکه آیا ارزش پیوند با سن تغییر می کند

افزودن ویژگیهای آموزنده جدید

بررسی اینکه آیا یک پرس و جو در یک عنوان به نظر می رسد ساده است ، اما واقعاً تفاوت دارد.

این امکان وجود دارد که پرس و جو فقط جزئی باشد.

ما می توانیم با انجام یک جستجوی فازی یک مسابقه جزئی را انجام دهیم. ما این کار را در پایتون با استفاده از کتابخانه انجام می دهیم فازی.

در اینجا کد برای آن آمده است.

!pip install fuzzywuzzy[speedup]

from fuzzywuzzy import fuzz

#remove empty rows from the data frame

df = df.dropna()
df["query_in_title"] = df.apply(lambda row: fuzz.partial_ratio(row["query"], row["title"]), axis=1)

df[["page", "query", "country", "device", "clicks", "impressions", "position", "query_in_title" ]].to_excel("client.xlsx", index=False)

from google import files

files.download("client.xlsx")

عنوان و توضیحات متا در مجموعه داده های کنسول جستجوی Google گنجانده نشده است. ما آنها را با استفاده از این قطعه کد اضافه کردیم.

from requests_html import HTMLSession

def get_title_meta_description(page):

  session = HTMLSession()

  try:

    r = session.get(page)

    if r.status_code == 200:

      title = r.html.xpath('//title/text()')

      meta_description = r.html.xpath("//meta[@name='description']/@content")

      #Inner utility function

      def get_first(result):

        if len(result) == 0:

          return None

        else:

          return result[0]

      return {"title": get_first(title), "meta_description": get_first(meta_description)}

    else:

      print(f"Failed to fetch page: {page} with status code {r.status_code}")

  except:

    print(f"Failed to fetch page: {page}")

    return None

بعد ، ما می توانیم آن را بر روی همه آدرس های اینترنتی از کنسول جستجو اجرا کنیم.

# let's get all of them

titles_and_meta_descriptions=dict()
import time

for page in pages: 

  print(f"Fetching page: {page}")

  titles_and_meta_descriptions[page] = get_title_meta_description(page)

  #add delay between requests

  time.sleep(1)

ما در نوت بوک کدی داریم که این کار را به یک قاب داده تبدیل می کند. در مرحله بعد ، می توانیم دو فریم داده را برای ساخت مجموعه آموزش اولیه خود ادغام کنیم.

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

حتماً كدی را كه برای جمع كردن صفحه Google استفاده كرده ام ، بررسی كنید. کتابخانه ای پیدا کردم که بتواند یک قاب داده با Google Sheets را همزمان کند. برای ساده کردن مراحل تأیید اعتبار در Google Colab وصله ای ارسال کردم.

# Save DataFrame to worksheet 'Client', create it first if it doesn't exist

spread.df_to_sheet(df, index=False, sheet='Client', start='A1', replace=True)

منابعی برای کسب اطلاعات بیشتر

برای بررسی بیشتر کد پایتون وجود دارد ، اما همانطور که من نوت بوک Colab را مستند کردم ، بهتر است درباره آن بخوانید و با آن بازی کنید.

حتماً کد دسترسی به کنسول جستجوی Google را بررسی کنید.

یک نکته جالب توجه برای من این بود که این کتابخانه از دسترسی به Google Colab به آن پشتیبانی نمی کند.

من کد را مرور کردم و تغییرات کد مورد نیاز برای پشتیبانی از این کار را شناسایی کردم.

من تغییراتی ایجاد کردم ، دیدم که آنها کار می کنند و آنها را با توسعه دهنده کتابخانه به اشتراک گذاشتم.

او آنها را پذیرفت و اکنون آنها بخشی از كتابخانه هستند و هر كس از آن استفاده می كند از كمك من كمك می كند.

من نمی توانم صبر کنم ببینم چند جستجوگر دیگر Python در جامعه سهم منبع باز به کتابخانه ها و کدهایی را که همه ما استفاده می کنیم.

یادگیری ماشین آسانتر است که به صورت بصری آموخته شود.

در اینجا چند لینک جالب برای یادگیری آن بدون ریاضیات پیچیده وجود دارد.

منابع بیشتر:


اعتبار تصویر

تمام تصاویر گرفته شده توسط نویسنده ، مه 2020