1. نظرة عامة
ستركز في هذا الدرس التطبيقي حول الترميز على استخدام Natural Language API مع C#. سوف تتعلم كيفية إجراء تحليل المشاعر والكيان وبناء الجملة.
توفّر Natral Language API في Google Cloud تقنيات فهم اللغات الطبيعية للمطوّرين، بما في ذلك تحليل الآراء وتحليل الكيانات وتحليل البنية.
المعلومات التي ستطّلع عليها
- كيفية استخدام Cloud Shell
- طريقة تفعيل Natural Language API
- طريقة مصادقة طلبات البيانات من واجهة برمجة التطبيقات
- كيفية تثبيت مكتبة برامج Google Cloud لـ C#
- كيفية إجراء تحليل الآراء
- كيفية إجراء تحليل الكيانات
- كيفية إجراء تحليل البنية
المتطلبات
استطلاع
كيف ستستخدم هذا البرنامج التعليمي؟
كيف تقيّم تجربتك مع C# ؟
ما هو تقييمك لتجربتك في استخدام خدمات Google Cloud Platform؟
2. الإعداد والمتطلبات
إعداد بيئة ذاتية
- سجِّل الدخول إلى Google Cloud Console وأنشئ مشروعًا جديدًا أو أعِد استخدام مشروع حالي. إذا لم يكن لديك حساب على Gmail أو Google Workspace، عليك إنشاء حساب.
- اسم المشروع هو الاسم المعروض للمشاركين في هذا المشروع. وهي سلسلة أحرف لا تستخدمها Google APIs. ويمكنك تعديلها في أي وقت.
- يكون رقم تعريف المشروع فريدًا في جميع مشاريع Google Cloud وغير قابل للتغيير (لا يمكن تغييره بعد تحديده). تنشئ Cloud Console سلسلة فريدة تلقائيًا. فعادةً لا تهتم بما هو. في معظم الدروس التطبيقية حول الترميز، يجب الإشارة إلى رقم تعريف المشروع (الذي يتم تحديده عادةً على أنّه
PROJECT_ID
). وإذا لم يعجبك رقم التعريف الذي تم إنشاؤه، يمكنك إنشاء رقم تعريف عشوائي آخر. ويمكنك بدلاً من ذلك تجربة طلبك الخاص ومعرفة ما إذا كان متاحًا. ولا يمكن تغييره بعد هذه الخطوة ويبقى طوال مدة المشروع. - لمعلوماتك، هناك قيمة ثالثة، وهي رقم المشروع، الذي تستخدمه بعض واجهات برمجة التطبيقات. اطّلِع على مزيد من المعلومات حول هذه القيم الثلاث في المستندات.
- بعد ذلك، عليك تفعيل الفوترة في Cloud Console لاستخدام الموارد/واجهات برمجة التطبيقات في Cloud. لن يؤدي إكمال هذا الدرس التطبيقي حول الترميز إلى فرض أي تكاليف، إن وُجدت. لإيقاف تشغيل الموارد لتجنب تحمُّل الفواتير إلى ما هو أبعد من هذا البرنامج التعليمي، يمكنك حذف الموارد التي أنشأتها أو حذف المشروع. يكون مستخدمو Google Cloud الجدد مؤهَّلون للانضمام إلى برنامج فترة تجريبية مجانية بقيمة 300 دولار أمريكي.
بدء Cloud Shell
مع أنّه يمكن إدارة Google Cloud عن بُعد من الكمبيوتر المحمول، ستستخدم في هذا الدرس التطبيقي Google Cloud Shell، وهي بيئة سطر أوامر يتم تشغيلها في السحابة الإلكترونية.
تفعيل Cloud Shell
- من Cloud Console، انقر على تفعيل Cloud Shell .
إذا كانت هذه هي المرة الأولى التي تبدأ فيها Cloud Shell، ستظهر لك شاشة وسيطة تصف ماهيتها. إذا ظهرت لك شاشة وسيطة، انقر على متابعة.
من المفترَض أن تستغرق عملية إدارة الحسابات والاتصال بخدمة Cloud Shell بضع دقائق فقط.
يتم تحميل هذا الجهاز الافتراضي مع جميع أدوات التطوير اللازمة. وتوفّر هذه الشبكة دليلاً رئيسيًا دائمًا بسعة 5 غيغابايت ويتم تشغيله في Google Cloud، ما يحسّن بشكل كبير من أداء الشبكة والمصادقة. يمكنك تنفيذ معظم عملك، إن لم يكن كلّه، في هذا الدرس التطبيقي حول الترميز باستخدام متصفّح.
بعد الربط بخدمة Cloud Shell، من المفترض أن تتأكّد من أنّه تمّت مصادقتك وأنّ المشروع مضبوط على رقم تعريف مشروعك.
- شغِّل الأمر التالي في Cloud Shell لتأكيد مصادقتك:
gcloud auth list
مخرجات الأمر
Credentialed Accounts ACTIVE ACCOUNT * <my_account>@<my_domain.com> To set the active account, run: $ gcloud config set account `ACCOUNT`
- شغّل الأمر التالي في Cloud Shell للتأكد من معرفة الأمر gcloud بمشروعك:
gcloud config list project
مخرجات الأمر
[core] project = <PROJECT_ID>
إذا لم يكن كذلك، يمكنك تعيينه من خلال هذا الأمر:
gcloud config set project <PROJECT_ID>
مخرجات الأمر
Updated property [core/project].
3- تفعيل Natural Language API
قبل البدء في استخدام Natural Language API، يجب تفعيل واجهة برمجة التطبيقات. باستخدام Cloud Shell، يمكنك تفعيل واجهة برمجة التطبيقات باستخدام الأمر التالي:
gcloud services enable language.googleapis.com
4. تثبيت مكتبة برامج واجهة برمجة التطبيقات Google Cloud Natural Language API لـ C#
أولاً، أنشئ تطبيق وحدة تحكم C# بسيطًا ستستخدمه لتشغيل نماذج Natural Language API:
dotnet new console -n NaturalLanguageApiDemo
من المفترض أن يظهر لك التطبيق الذي تم إنشاؤه وتم حل التبعيات:
The template "Console Application" was created successfully.
Processing post-creation actions...
...
Restore succeeded.
بعد ذلك، انتقِل إلى مجلد واحد (NaturalLanguageApiDemo
):
cd NaturalLanguageApiDemo/
وإضافة حزمة NuGet Google.Cloud.Language.V1
إلى المشروع:
dotnet add package Google.Cloud.Language.V1
info : Adding PackageReference for package 'Google.Cloud.Language.V1' into project '/home/atameldev/NaturalLanguageApiDemo/NaturalLanguageApiDemo.csproj'.
log : Restoring packages for /home/atameldev/NaturalLanguageApiDemo/NaturalLanguageApiDemo.csproj...
...
info : PackageReference for package 'Google.Cloud.Language.V1' version '1.1.0' added to file '/home/atameldev/NaturalLanguageApiDemo/NaturalLanguageApiDemo.csproj'.
والآن، أصبحت جاهزًا لاستخدام Natural Language API!
5- تحليل المشاعر
في هذا القسم، ستُجري "تحليل الآراء" على سلسلة وستتعرف على الدرجة والمقدار باستخدام Natural Language API.
تتراوح درجة الشعور بين -1.0 (سلبي) و1.0 (موجب) وتتوافق مع إجمالي الآراء من المعلومات المقدَّمة.
تتراوح مقدار العاطفة من 0.0 إلى +ما لانهائي، ويشير إلى القوة الإجمالية للعاطفة من المعلومات المحدّدة. وكلما زادت المعلومات التي يتم توفيرها، زاد المقدار.
افتح محرِّر الرموز من أعلى يسار Cloud Shell:
انتقِل إلى ملف Program.cs
داخل مجلد "NaturalLanguageApiDemo
" واستبدِل الرمز بما يلي:
using System;
using Google.Cloud.Language.V1;
namespace NaturalLanguageApiDemo
{
class Program
{
static void Main(string[] args)
{
var text = "Yukihiro Matsumoto is great!";
var client = LanguageServiceClient.Create();
var response = client.AnalyzeSentiment(Document.FromPlainText(text));
var sentiment = response.DocumentSentiment;
Console.WriteLine($"Score: {sentiment.Score}");
Console.WriteLine($"Magnitude: {sentiment.Magnitude}");
}
}
}
خصِّص دقيقة أو دقيقتَين لدراسة الرمز ومعرفة كيف يتم استخدام مقتطف الرمز لإجراء تحليل الآراء حول السلسلة Yukihiro Matsumoto is أذونات رائعة!".
مرة أخرى في Cloud Shell، شغِّل التطبيق:
dotnet run
من المفترض أن يظهر لك الناتج التالي:
Score: 0.9
Magnitude: 0.9
ملخّص
في هذه الخطوة، كنت قادرًا على إجراء تحليل الآراء على سلسلة من النصوص وطباعة الدرجة والمقدار. يمكنك قراءة المزيد عن تحليل الآراء.
6- تحليل الكيانات
يفحص تحليل الكيانات المعلومات المقدّمة للكيانات من خلال البحث عن الأسماء الصحيحة مثل الشخصيات العامة والمعالم وغيرها، ويقدّم معلومات عن تلك الكيانات.
لإجراء تحليل "الكيان"، انتقِل إلى ملف Program.cs
داخل المجلد NaturalLanguageApiDemo
واستبدِل الرمز بما يلي:
using System;
using Google.Cloud.Language.V1;
namespace NaturalLanguageApiDemo
{
class Program
{
static void Main(string[] args)
{
var text = "Yukihiro Matsumoto is great!";
var client = LanguageServiceClient.Create();
var response = client.AnalyzeEntitySentiment(Document.FromPlainText(text));
foreach (var entity in response.Entities)
{
Console.WriteLine($"Entity: \"{entity.Name}\" ({entity.Type})");
if (entity.Metadata.ContainsKey("wikipedia_url"))
{
Console.WriteLine($"URL: {entity.Metadata["wikipedia_url"]}");
}
}
}
}
}
خصِّص دقيقة أو دقيقتَين لدراسة الرمز البرمجي ومعرفة كيف يتم استخدام مقتطف الرمز لإجراء تحليل للكيان على السلسلة "Yukihiro Matsumoto is big!".
مرة أخرى في Cloud Shell، شغِّل التطبيق:
dotnet run
من المفترض أن يظهر لك الناتج التالي:
Entity: "Yukihiro Matsumoto" (Person)
URL: https://en.wikipedia.org/wiki/Yukihiro_Matsumoto
ملخّص
في هذه الخطوة، كنت قادرًا على إجراء "تحليل الكيان" على سلسلة من النصوص وطباعة كياناتها. اقرأ المزيد عن تحليل الكيان.
7. تحليل البنية
يستخلص التحليل النحوي المعلومات اللغوية، ويقسم النص المعين إلى سلسلة من الجمل والرموز (بشكل عام، حدود الكلمات)، مما يوفر تحليلاً إضافيًا لتلك الرموز المميزة.
سيطبع هذا المثال عدد الجمل والرموز المميزة ويقدم جزء الكلام لكل رمز مميز.
لإجراء تحليل بناء الجملة، انتقل إلى ملف Program.cs
داخل المجلد NaturalLanguageApiDemo
واستبدل الرمز بما يلي:
using System;
using Google.Cloud.Language.V1;
using static Google.Cloud.Language.V1.AnnotateTextRequest.Types;
namespace NaturalLanguageApiDemo
{
class Program
{
static void Main(string[] args)
{
var text = "Yukihiro Matsumoto is great!";
var client = LanguageServiceClient.Create();
var response = client.AnnotateText(Document.FromPlainText(text),
new Features { ExtractSyntax = true });
var sentences = response.Sentences;
var tokens = response.Tokens;
Console.WriteLine($"Sentences: {sentences.Count}");
Console.WriteLine($"Tokens: {tokens.Count}");
foreach (var token in tokens)
{
Console.WriteLine($"{token.PartOfSpeech.Tag} {token.Text.Content}");
}
}
}
}
خصص دقيقة أو دقيقتين لدراسة التعليمة البرمجية ومعرفة كيفية استخدام مقتطف التعليمة البرمجية لإجراء تحليل بناء الجملة على السلسلة "Yukihiro Matsumoto is good!".
مرة أخرى في Cloud Shell، شغِّل التطبيق:
dotnet run
من المفترض أن يظهر لك الناتج التالي:
Sentences: 1
Tokens: 5
Noun Yukihiro
Noun Matsumoto
Verb is
Adj great
Punct !
يتم عرض التفسير المرئي أدناه.
ملخّص
في هذه الخطوة، كنت قادرًا على إجراء تحليل بناء الجملة على سلسلة نصية بسيطة وطباعة عدد الجمل وعدد الرموز المميزة والمعلومات اللغوية لكل رمز مميز. اطّلِع على المزيد من المعلومات حول تحليل البنية.
8. تهانينا!
لقد تعلمت كيفية استخدام Natural Language API باستخدام C# لإجراء أنواع مختلفة من التحليلات على المعلومات!
تَنظيم
لتجنُّب تحمُّل الرسوم المفروضة على حسابك على Google Cloud Platform مقابل الموارد المستخدَمة في عملية البدء السريع هذه:
- انتقِل إلى وحدة تحكُّم Cloud Platform.
- اختَر المشروع الذي تريد إيقافه، ثم انقر على "حذف". في الجزء العلوي: يؤدي هذا إلى تحديد موعد المشروع للحذف.
مزيد من المعلومات
- واجهة برمجة تطبيقات Google Cloud Natural Language API: https://cloud.google.com/natural-language/docs/
- C#/.NET على Google Cloud Platform: https://cloud.google.com/dotnet/
- برنامج Google Cloud .NET: https://googlecloudplatform.github.io/google-cloud-dotnet/
الترخيص
هذا العمل مرخّص بموجب رخصة المشاع الإبداعي 2.0 مع نسب العمل إلى مؤلف عام.