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

كيفية إنتاج عناوين عالية الجودة وأوصاف تعريفية تلقائيًا

ستساعدك المقالة التالية: كيفية إنتاج عناوين عالية الجودة وأوصاف تعريفية تلقائيًا

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

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

وعلى وجه الخصوص، عندما يحتوي الموقع على آلاف أو ملايين الصفحات.

من الصعب بذل الجهد عندما لا تعرف ما إذا كانت المكافأة تستحق العناء أم لا.

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

سنصل إلى إمكانية الإنشاء المثيرة هذه بسهولة من خلال جداول بيانات Google. سوف نتعلم كيفية تنفيذ الوظيفة باستخدام الحد الأدنى من كود Python وJavaScript.

هذه هي خطتنا الفنية:

  • سنقوم بتنفيذ وتقييم اثنين من أحدث نماذج تلخيص النصوص في جوجل كولاب
  • سنقدم أحد النماذج من وظيفة Google Cloud التي يمكننا الاتصال بها بسهولة من Apps Script وGoogle Sheets
  • سنقوم باستخلاص محتوى الصفحة مباشرةً من جداول بيانات Google وتلخيصه باستخدام وظيفتنا المخصصة
  • سننشر العناوين والأوصاف التعريفية التي تم إنشاؤها كتجارب في Cloudflare باستخدام RankSense
  • سنقوم بإنشاء وظيفة Google Cloud أخرى لتشغيل الفهرسة التلقائية في Bing

تقديم معانقة محولات الوجه

معانقة محولات الوجه هي مكتبة شعبية بين الباحثين والممارسين في مجال الذكاء الاصطناعي.

فهو يوفر واجهة موحدة وسهلة الاستخدام لأحدث أبحاث اللغة الطبيعية.

لا يهم إذا تم ترميز البحث باستخدام Tensorflow (إطار التعلم العميق من Google) أو بيتورتش (Facebookإطار العمل). وكلاهما الأكثر اعتماداً على نطاق واسع.

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

لقد تغير ذلك مؤخرًا مع تقديم خطوط أنابيب المحولات.

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

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

سنقوم بتقييم العديد من خيارات تلخيص النص الحديثة باستخدام خطوط أنابيب المحولات.

سوف نستعير بعض التعليمات البرمجية من الأمثلة الموجودة في هذا الدفتر.

Facebookبارت

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

لقد وجدت أداء التلخيص جيدًا بشكل مدهش – يبدو أن BART قادر على دمج المعلومات من مستند كامل مع المعرفة الأساسية لإنتاج ملخصات مجردة للغاية. بعض الأمثلة النموذجية أدناه: pic.twitter.com/EENDPgTqrl

– مايك لويس (@ml_perception) 31 أكتوبر 2019

الآن دعونا نرى مدى سهولة إعادة إنتاج نتائج عملهم باستخدام خط أنابيب المحولات.

أولاً، لنقم بتثبيت المكتبة في دفتر ملاحظات Google Colab الجديد.

تأكد من تحديد وقت تشغيل GPU.

!pip تثبيت المحولات

بعد ذلك، دعونا نضيف هذا رمز خط الأنابيب.

من خط أنابيب استيراد المحولات # استخدم بارت في pytorch bart_summarizer = Pipeline(“summarization”)

هذا هو النص المثال الذي سنلخصه.

TEXT_TO_SUMMARIZE = “”” نيويورك (CNN)عندما كانت ليانا بارينتوس تبلغ من العمر 23 عامًا، تزوجت في مقاطعة ويستتشستر، نيويورك، وبعد مرور عام، تزوجت مرة أخرى في مقاطعة ويستتشستر، ولكن من رجل مختلف ودون طلاقها الأول. وبعد 18 يومًا فقط من هذا الزواج، تزوجت مرة أخرى، ثم أعلنت بارينتوس “أوافق” خمس مرات أخرى، وأحيانًا خلال أسبوعين فقط من بعضها البعض، وفي عام 2010، تزوجت مرة أخرى، وهذه المرة في برونكس. وفي طلب للحصول على ترخيص الزواج، ذكرت أن هذا كان زواجها “الأول والوحيد”. وتواجه بارينتوس، البالغة من العمر 39 عامًا الآن، تهمتين جنائيتين تتمثلان في “تقديم وثيقة كاذبة لتقديم دعوى من الدرجة الأولى”، في إشارة إلى تصريحاتها الكاذبة على موقعها الإلكتروني. طلب ترخيص الزواج عام 2010، وفقًا لوثائق المحكمة، وقال ممثلو الادعاء إن الزيجات كانت جزءًا من عملية احتيال تتعلق بالهجرة، وفي يوم الجمعة، دفعت ببراءتها أمام المحكمة العليا للولاية في برونكس، وفقًا لمحاميها كريستوفر رايت، الذي رفض التعليق أكثر. وقالت المحققة أنيت ماركوفسكي، المتحدثة باسم الشرطة، إنه بعد مغادرة المحكمة، تم القبض على بارينتوس ووجهت إليه تهمة سرقة الخدمة والتعدي الجنائي على ممتلكات الغير بزعم التسلل إلى مترو أنفاق نيويورك عبر مخرج للطوارئ. في المجمل، تزوجت بارينتوس 10 مرات، تسع منها حدثت بين عامي 1999 و2002. وقد حدثت جميعها إما في مقاطعة ويستتشستر، أو لونغ آيلاند، أو نيوجيرسي، أو برونكس. ويعتقد أنها لا تزال متزوجة من أربعة رجال، وفي وقت واحد، كانت متزوجة من ثمانية رجال في وقت واحد، حسبما يقول ممثلو الادعاء. وقال ممثلو الادعاء إن عملية احتيال الهجرة تورط فيها بعض أزواجها، الذين تقدموا بطلب للحصول على الإقامة الدائمة بعد وقت قصير من الزواج. ولم تحدث أي حالات طلاق إلا بعد الموافقة على هذه الإيداعات. ولم يتضح ما إذا كان سيتم محاكمة أي من الرجال. وأحيلت القضية إلى مكتب المدعي العام لمنطقة برونكس من قبل إدارة الهجرة والجمارك وقسم التحقيقات التابع لوزارة الأمن الداخلي. وينتمي سبعة منهم إلى ما يسمى بالدول ذات العلم الأحمر، بما في ذلك مصر وتركيا وجورجيا وباكستان ومالي. تم ترحيل زوجها الثامن، رشيد راجبوت، في عام 2006 إلى موطنه باكستان بعد تحقيق أجرته فرقة العمل المشتركة لمكافحة الإرهاب. وفي حالة إدانته، يواجه بارينتوس عقوبة السجن لمدة تصل إلى أربع سنوات. ومن المقرر مثولها المقبل أمام المحكمة في 18 مايو/أيار.

فيما يلي رمز الملخص والملخص الناتج:

ملخص = bart_summarizer(TEXT_TO_SUMMARIZE, min_length=50, max_length=250) print(summary) #Output: [{‘summary_text’: ‘Liana Barrientos has been married 10 times, sometimes within two weeks of each other. Prosecutors say the marriages were part of an immigration scam. She is believed to still be married to four men, and at one time, she was married to eight at once.’}]

لقد حددت أن الملخص الذي تم إنشاؤه يجب ألا يقل عن 50 حرفًا وعلى الأكثر 250 حرفًا.

يعد هذا مفيدًا جدًا للتحكم في نوع التوليد: العناوين أو الأوصاف التعريفية.

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

أكثر من رائع!

“لقد تزوجت ليانا بارينتوس 10 مرات، وأحيانًا خلال أسبوعين من بعضها البعض. ويقول ممثلو الادعاء إن الزيجات كانت جزءًا من عملية احتيال تتعلق بالهجرة. ويعتقد أنها لا تزال متزوجة من أربعة رجال، وفي وقت واحد، تزوجت من ثمانية رجال في وقت واحد. طباعة (لين (ملخص[0][“summary_text”])) #الخرجة : 249

جوجل T5

نموذج آخر متطور هو محول نقل النص إلى نص، أو T5.

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

حقق نموذج اللغة T5 (محول نقل النص إلى نص) من Google رقمًا قياسيًا جديدًا وأصبح قريبًا جدًا من الإنسان في معيار SuperGLUE.https://t.co/kBOqWxFmEK

ورق: https://t.co/mI6BqAgj0e
شفرة: https://t.co/01qZWrxbqS pic.twitter.com/8SRJmoiaw6

– تونغ (@ yoquankara) 25 أكتوبر 2019

يعد هذا ملحوظًا لأنه تم تصميم مهام البرمجة اللغوية العصبية (NLP) في SuperGLUE لتكون سهلة بالنسبة للبشر ولكنها صعبة بالنسبة للآلات.

نشرت جوجل مؤخرا كتابة ملخصة مع كل تفاصيل النموذج للأشخاص الأقل ميلاً للتعرف عليه من ورقة ابحاث.

كانت فكرتهم الأساسية هي تجربة كل أفكار البرمجة اللغوية العصبية الشائعة على مجموعة بيانات تدريب ضخمة جديدة يطلقون عليها اسم C4 (جسم زاحف نظيف هائل).

أعلم أن باحثي الذكاء الاصطناعي يحبون الاستمتاع بتسمية اختراعاتهم.

دعونا نستخدم خط أنابيب محول آخر لتلخيص نفس النص، ولكن هذه المرة باستخدام T5 كنموذج أساسي.

t5_summarizer = Pipeline(“summarization”، model = “t5-base”، tokenizer = “t5-base”) ملخص = t5_summarizer (TEXT_TO_SUMMARIZE، min_length = 50، max_length = 250)

هنا هو النص الملخص.

[{‘summary_text’: ‘in total, barrientos has been married 10 times, with nine of her marriages occurring between 1999 and 2002 . she is believed to still be married to four men, and at one time, she was married to eight men at once .’}]

هذا الملخص هو أيضا ذات جودة عالية جدا.

لكنني قررت تجربة الطراز الأكبر T5 والذي يتوفر أيضًا كخط أنابيب لمعرفة ما إذا كان من الممكن تحسين الجودة.

t5_summarizer_larger = خط أنابيب(“التلخيص”، نموذج = “t5-كبير”، الرمز المميز = “t5-كبير”)

لم أكن بخيبة أمل على الإطلاق.

ملخص مؤثر حقا!

[{‘summary_text’: ‘Liana barrientos has been married 10 times . nine of her marriages occurred between 1999 and 2002 . she is believed to still be married to four men, and at one time, she was married to eight men at once .’}]

تقديم وظائف السحابة

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

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

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

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

إنها تعمل على تبسيط تجربة النشر بشكل كبير كما سنرى.

نشر وظيفة Hello World Cloud

لا نحتاج إلى مغادرة Google Colab لنشر أول وظيفة سحابية تجريبية لدينا.

أولاً، قم بتسجيل الدخول إلى حساب Google Compute الخاص بك.

!gcloud auth تسجيل الدخول –no-launch-browser

ثم قم بإعداد مشروع افتراضي.

!gcloud config قم بتعيين اسم المشروع للمشروع

بعد ذلك، سوف نكتب دالة الاختبار الخاصة بنا في ملف اسمه

%%writefile main.py def hello_get(request): “””وظيفة سحابة HTTP. Args: request (flask.Request): كائن الطلب. الإرجاعات: نص الاستجابة، أو أي مجموعة من القيم التي يمكن تحويلها إلى استجابة كائن باستخدام `make_response`. “”” يُرجع “Hello World!”

يمكننا نشر هذه الوظيفة باستخدام هذا الأمر.

!تنشر وظائف gcloud hello_get –runtime python37 –trigger-http –allow-unauthenticated

بعد بضع دقائق، نحصل على تفاصيل خدمة API الجديدة.

متاحMemoryMb: 256 نقطة دخول: hello_get httpsTrigger: url: https://xxx.cloudfunctions.net/hello_get ingressSettings: ALLOW_ALL التسميات: أداة النشر: cli-gcloud الاسم: projects/xxx/locations/us-central1/functions/hello_get وقت التشغيل: python37 ServiceAccountEmail: xxxx sourceUploadUrl: xxxx الحالة: مهلة نشطة: تحديث 60 ثانية الوقت: ‘2020-04-06T16:33:03.951Z’ معرف الإصدار: ‘8’

هذا كل شيء!

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

يمكننا اختباره عن طريق فتح عنوان URL المقدم والحصول على النص “Hello World!” كرد في المتصفح.

نشر وظيفة سحابة تلخيص النص لدينا

من الناحية النظرية، يجب أن نكون قادرين على تغليف مسار تلخيص النص الخاص بنا في وظيفة واتباع نفس الخطوات لنشر خدمة واجهة برمجة التطبيقات (API).

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

كانت مشكلتنا الأولى والأكثر تحديًا هي تثبيت مكتبة المحولات للبدء بها.

لحسن الحظ، من السهل تثبيت حزم الطرف الثالث لاستخدامها الوظائف السحابية المبنية على بايثون.

تحتاج ببساطة إلى إنشاء المتطلبات القياسية.txt ملف مثل هذا:

%%writefile requires.txt محولات==2.0.7

لسوء الحظ، يفشل هذا لأن المحولات تتطلب إما Pytorch أو Tensorflow. يتم تثبيتهما بشكل افتراضي في Google Colab، ولكن يجب تحديدهما لبيئة Cloud Functions.

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

لقد تمكنت من العمل مع ملف require.txt المحدث هذا.

%%writefile require.txt https://download.pytorch.org/whl/cpu/torch-1.0.1.post2-cp37-cp37m-linux_x86_64.whl المحولات==2.0.7

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

لقد قمت أولاً باختبار الوظائف باستخدام خطوط أنابيب أبسط مثل NER one، الذي يرمز إليه NER التعرف على اسم الكيان.

قمت باختباره أولاً في دفتر Colab.

من المحولات استيراد خط الأنابيب nlp_token_class = لا شيء def ner_get(request): global nlp_token_class #run مرة واحدة إذا كانت nlp_token_class لا شيء: nlp_token_class = Pipeline(‘ner’) result = nlp_token_class(‘Hugging Face هي شركة فرنسية مقرها في نيويورك.’) نتيجة العودة

حصلت على هذا الرد انهيار.

[{‘entity’: ‘I-ORG’, ‘score’: 0.9970937967300415, ‘word’: ‘Hu’},
{‘entity’: ‘I-ORG’, ‘score’: 0.9345749020576477, ‘word’: ‘##gging’},
{‘entity’: ‘I-ORG’, ‘score’: 0.9787060022354126, ‘word’: ‘Face’},
{‘entity’: ‘I-MISC’, ‘score’: 0.9981995820999146, ‘word’: ‘French’},
{‘entity’: ‘I-LOC’, ‘score’: 0.9983047246932983, ‘word’: ‘New’},
{‘entity’: ‘I-LOC’, ‘score’: 0.8913459181785583, ‘word’: ‘-‘},
{‘entity’: ‘I-LOC’, ‘score’: 0.9979523420333862, ‘word’: ‘York’}]

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

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

ولكن، لحسن الحظ، يمكنك بسهولة تجاوز الحد الافتراضي البالغ 250 مليونًا ومهلة التنفيذ باستخدام هذا الأمر.

!تنشر وظائف gcloud ner_get – الذاكرة 2 جيجا بايت – المهلة 540 –runtime python37 –trigger-http –allow-unauthenticated

أقوم بشكل أساسي بتحديد الحد الأقصى للذاكرة وهو 2 جيجابايت و9 دقائق مهلة للتنفيذ للسماح بالتنزيل الأولي للنموذج الذي يمكن أن يصل إلى جيجابايت من النقل.

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

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

هنا هو رمز لهذه الوظيفة.

%%writefile main.py من خط أنابيب استيراد المحولات nlp_t5 = لا يوجد def t5_get(request): global nlp_t5 #run مرة واحدة إذا كان nlp_t5 لا شيء: nlp_t5 = Pipeline(‘summarization’, model=”t5-small”, tokenizer=”t5- صغير”) TEXT_TO_SUMMARIZE = “”” نيويورك (CNN)عندما كانت ليانا بارينتوس تبلغ من العمر 23 عامًا، تزوجت في مقاطعة ويستتشستر، نيويورك… “”” result = nlp_t5(TEXT_TO_SUMMARIZE) نتيجة الإرجاع[0][“summary_text”]

وهنا هو الكود لنشره.

!تنشر وظائف gcloud t5_get –memory 2GiB –timeout 540 –runtime python37 –trigger-http –allow-unauthenticated

إحدى مشكلات هذه الوظيفة هي أن النص المطلوب تلخيصه مشفر بشكل ثابت.

ولكن يمكننا إصلاح ذلك بسهولة من خلال التغييرات التالية.

%%writefile main.py من خط أنابيب استيراد المحولات nlp_t5 = لا يوجد def t5_post(request): global nlp_t5 #run مرة واحدة إذا كان nlp_t5 لا شيء: #نموذج صغير لتجنب مشكلة الذاكرة nlp_t5 = Pipeline(‘summarization’, model=”t5-small “, tokenizer=”t5-small”) # احصل على نص لتلخيصه من طلب POST content_type = request.headers[‘content-type’]

إذا content_type == ‘application/x-www-form-urlencoded’: text = request.form.get(‘text’) result = nlp_t5(text) نتيجة الإرجاع[0][“summary_text”]

آخر: رفع ValueError(“نوع محتوى غير معروف: {}”.format(content_type)) يُرجع “فشل”

أنا ببساطة أتأكد من نوع المحتوى نموذج URL مشفر، وقراءة المعلمة من بيانات النموذج.

يمكنني بسهولة اختبار هذه الوظيفة في Colab باستخدام الكود التالي.

طلبات الاستيراد URL = “https://xxx.cloudfunctions.net/hello_post” data = {“text”: text[:100]} request.post(url, data).text

نظرًا لأن كل شيء يعمل كما هو متوقع، يمكنني العمل على تفعيل ذلك في جداول بيانات Google.

الاتصال بخدمة تلخيص النص من جداول بيانات Google

لقد قدمت Apps Script في العمود السابق وهو يمنح جداول بيانات Google بالفعل قوى خارقة.

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

وظيفة getSummary(text){ payload = `text=${text}`; payload = encodeURI(payload); console.log(payload); فار url = “https://xxx.cloudfunctions.net/t5_post”; var options = { “method” : “POST”، “contentType” : “application/x-www-form-urlencoded”، “payload” : payload، ‘muteHttpExceptions’: true }; استجابة فار = UrlFetchApp.fetch(url, options); نتيجة فار = Response.getContentText(); console.log(result); نتيجة الإرجاع؛ }

هذا كل شئ.

لقد قمت بتغيير اسم متغير الإدخال وعنوان URL لواجهة برمجة التطبيقات.

الباقي هو نفسه الذي أحتاجه لتقديم طلب POST مع بيانات النموذج.

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

نعم هو كذلك.

أحد القيود الكبيرة في Apps Script هو ذلك لا يمكن تشغيل الوظائف المخصصة لأكثر من 30 ثانية.

من الناحية العملية، هذا يعني أنه يمكنني تلخيص النص إذا كان أقل من 1200 حرف، بينما في Colab/Python قمت باختبار المقالات الكاملة التي تحتوي على أكثر من 10000 حرف.

هناك طريقة بديلة من المفترض أن تعمل بشكل أفضل مع النص الأطول وهي تحديث ورقة Google من كود Python كما فعلت في هذه المقالة.

تجريف محتوى الصفحة من جداول بيانات Google

فيما يلي بعض الأمثلة على كود العمل الكامل في جداول البيانات.

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

تتضمن جداول بيانات Google وظيفة قوية لهذا الغرض تسمى استيرادXML.

نحتاج فقط إلى توفير عنوان URL و محدد XPath الذي يحدد المحتوى الذي نريد استخراجه.

إليك رمز لاستخراج المحتوى من صفحة ويكيبيديا.

=IMPORTXML(“https://en.wikipedia.org/wiki/Moon_landing”, “//div/text()”)

لقد استخدمت محددًا عامًا لالتقاط كل النص داخل DIVs.

لا تتردد في اللعب باستخدام محددات مختلفة تناسب محتوى الصفحة المستهدفة.

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

=TEXTJOIN(” “, TRUE, IMPORTXML(“https://en.wikipedia.org/wiki/Moon_landing”, “//div/text()”))

فهرسة سريعة لأوصافنا وعناويننا التعريفية الجديدة في Bing

إذًا، كيف نعرف ما إذا كانت مقتطفات البحث الجديدة هذه تؤدي أداءً أفضل من تلك المكتوبة يدويًا أو مقارنةً بعدم وجود بيانات وصفية على الإطلاق؟

الطريقة المؤكدة للتعلم هي إجراء اختبار مباشر.

في مثل هذه الحالة، من المهم جدًا فهرسة تغييراتنا بسرعة.

لقد قمت بتغطية كيفية القيام بذلك في Google عن طريق أتمتة أداة فحص عنوان URL.

هذا النهج يحدنا من بضع مئات من الصفحات.

البديل الأفضل هو استخدام الرائع واجهة برمجة تطبيقات الفهرسة السريعة لـ Bing لأننا نطلب فهرسة ما يصل إلى 10000 عنوان URL!

كم ذلك رائع؟

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

إن الخدمة التي تسمح للناشرين بفهرسة عناوين URL على الفور في Bing والبدء فعليًا في التصنيف خلال دقائق تستحق النظر فيها. إنها مثل الأموال المجانية، لماذا لا يأخذها أي شخص؟@sejournal @bing @بينجWMC https://t.co/a5HkIpbxHI

– روجر مونتي (@ martinibuster) 20 مارس 2020

يجب أن أتفق مع روجر. هنا هو الكود للقيام بذلك.

api_key = “xxx” # احصل على مفتاح API الخاص بك من عنوان URL هذا https://www.bing.com/webmaster/home/api طلبات الاستيراد def Submit_to_bing(request): global api_key api_url=f”https://ssl.bing .com/webmaster/api.svc/json/SubmitUrlbatch?apikey={api_key}” print(api_url) # استبدال لموقعك url_list = [
“https://www.domain.com/page1.html”, “https://www.domain.com/page2.html”]

البيانات = { “siteUrl”: “http://www.domain.com”، “urlList”: url_list } r = request.post(api_url, json=data) إذا r.status_code == 200: إرجاع r.json( ) آخر: إرجاع r.status_code

إذا تم الإرسال بنجاح، يجب أن تتوقع هذا الرد.

{‘د’: لا شيء}

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

اختبار المقتطفات التي تم إنشاؤها في Cloudflare

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

ما عليك سوى نسخ عنوان URL وأعمدة ملخص النص إلى ورقة Google جديدة واستيرادها إلى الأداة.

عند نشر التجربة، يمكنك اختيار جدولة التغيير وتحديد فترة زمنية webhook عنوان URL.

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

انسخ والصق عنوان URL الخاص بوظيفة السحابة الخاصة بفهرسة Bing. سوف يقوم RankSense بالاتصال به تلقائيًا بعد 15 دقيقة من نشر التغييرات في Cloudflare.

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

فيما يلي روابط لبعض الموارد التي كانت مفيدة حقًا أثناء البحث عن هذه القطعة.