۱. مرور کلی
در این آزمایشگاه کد، شما بر استفاده از API زبان طبیعی با سیشارپ تمرکز خواهید کرد. شما یاد خواهید گرفت که چگونه تحلیل احساسات، موجودیت و سینتکس را انجام دهید.
رابط برنامهنویسی کاربردی زبان طبیعی گوگل کلود (Google Cloud Natural Language API) فناوریهای درک زبان طبیعی را در اختیار توسعهدهندگان قرار میدهد، از جمله تحلیل احساسات، تحلیل موجودیت و تحلیل نحو.
آنچه یاد خواهید گرفت
- نحوه استفاده از پوسته ابری
- نحوه فعال کردن API زبان طبیعی
- نحوه احراز هویت درخواستهای API
- نحوه نصب کتابخانه کلاینت گوگل کلود برای سی شارپ
- نحوه انجام تحلیل احساسات
- نحوه انجام تحلیل موجودیت
- نحوه انجام تحلیل نحوی
آنچه نیاز دارید
نظرسنجی
چگونه از این آموزش استفاده خواهید کرد؟
تجربه خود را با C# چگونه ارزیابی میکنید؟
تجربه خود را در استفاده از خدمات پلتفرم ابری گوگل چگونه ارزیابی میکنید؟
۲. تنظیمات و الزامات
تنظیم محیط خودتنظیم
- وارد کنسول گوگل کلود شوید و یک پروژه جدید ایجاد کنید یا از یک پروژه موجود دوباره استفاده کنید. اگر از قبل حساب جیمیل یا گوگل ورک اسپیس ندارید، باید یکی ایجاد کنید .



- نام پروژه، نام نمایشی برای شرکتکنندگان این پروژه است. این یک رشته کاراکتری است که توسط APIهای گوگل استفاده نمیشود. شما همیشه میتوانید آن را بهروزرسانی کنید.
- شناسه پروژه در تمام پروژههای گوگل کلود منحصر به فرد است و تغییرناپذیر است (پس از تنظیم، قابل تغییر نیست). کنسول کلود به طور خودکار یک رشته منحصر به فرد تولید میکند؛ معمولاً برای شما مهم نیست که چه باشد. در اکثر آزمایشگاههای کد، باید شناسه پروژه خود را (که معمولاً با عنوان
PROJECT_IDشناخته میشود) ارجاع دهید. اگر شناسه تولید شده را دوست ندارید، میتوانید یک شناسه تصادفی دیگر ایجاد کنید. به عنوان یک جایگزین، میتوانید شناسه خودتان را امتحان کنید و ببینید که آیا در دسترس است یا خیر. پس از این مرحله قابل تغییر نیست و در طول پروژه باقی میماند. - برای اطلاع شما، یک مقدار سوم، شماره پروژه ، وجود دارد که برخی از APIها از آن استفاده میکنند. برای کسب اطلاعات بیشتر در مورد هر سه این مقادیر، به مستندات مراجعه کنید.
- در مرحله بعد، برای استفاده از منابع/API های ابری، باید پرداخت صورتحساب را در کنسول ابری فعال کنید . اجرای این آزمایشگاه کد هزینه زیادی نخواهد داشت، اگر اصلاً هزینهای داشته باشد. برای خاموش کردن منابع به منظور جلوگیری از پرداخت صورتحساب پس از این آموزش، میتوانید منابعی را که ایجاد کردهاید یا پروژه را حذف کنید. کاربران جدید Google Cloud واجد شرایط برنامه آزمایشی رایگان ۳۰۰ دلاری هستند.
شروع پوسته ابری
اگرچه میتوان از راه دور و از طریق لپتاپ، گوگل کلود را مدیریت کرد، اما در این آزمایشگاه کد، از گوگل کلود شل ، یک محیط خط فرمان که در فضای ابری اجرا میشود، استفاده خواهید کرد.
فعال کردن پوسته ابری
- از کنسول ابری، روی فعال کردن پوسته ابری کلیک کنید
.

اگر این اولین باری است که Cloud Shell را اجرا میکنید، یک صفحه میانی برای توضیح آن به شما نمایش داده میشود. اگر با یک صفحه میانی مواجه شدید، روی ادامه کلیک کنید.

آمادهسازی و اتصال به Cloud Shell فقط چند لحظه طول میکشد.

این ماشین مجازی مجهز به تمام ابزارهای توسعه مورد نیاز است. این ماشین یک دایرکتوری خانگی پایدار ۵ گیگابایتی ارائه میدهد و در فضای ابری گوگل اجرا میشود که عملکرد شبکه و احراز هویت را تا حد زیادی افزایش میدهد. بخش عمدهای از کار شما در این آزمایشگاه کد، اگر نگوییم همه، را میتوان با یک مرورگر انجام داد.
پس از اتصال به 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].
۳. فعال کردن API زبان طبیعی
قبل از اینکه بتوانید از API زبان طبیعی استفاده کنید، باید API را فعال کنید. با استفاده از Cloud Shell میتوانید API را با استفاده از دستور زیر فعال کنید:
gcloud services enable language.googleapis.com
۴. کتابخانه کلاینت Google Cloud Natural Language API را برای C# نصب کنید.
ابتدا، یک برنامه کنسول ساده C# ایجاد کنید که برای اجرای نمونههای 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'.
حالا، شما آماده استفاده از API زبان طبیعی هستید!
۵. تحلیل احساسات
در این بخش، شما تحلیل احساسات را روی یک رشته انجام میدهید و امتیاز و بزرگی آن را با استفاده از API زبان طبیعی پیدا میکنید.
امتیاز احساسات بین -1.0 (منفی) و 1.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}");
}
}
}
یک یا دو دقیقه وقت بگذارید و کد را مطالعه کنید و ببینید که چگونه از این قطعه کد برای انجام تحلیل احساسات روی رشته «یوکیهیرو ماتسوموتو عالی است!» استفاده میشود.
دوباره به Cloud Shell برگردید و برنامه را اجرا کنید:
dotnet run
شما باید خروجی زیر را ببینید:
Score: 0.9
Magnitude: 0.9
خلاصه
در این مرحله، شما توانستید تحلیل احساسات را روی یک رشته متن انجام دهید و امتیاز و بزرگی آن را چاپ کنید. درباره تحلیل احساسات بیشتر بخوانید.
۶. تحلیل موجودیت
تحلیل موجودیت، اطلاعات داده شده برای موجودیتها را با جستجوی اسامی خاص مانند چهرههای عمومی، مکانهای دیدنی و غیره بررسی میکند و اطلاعات مربوط به آن موجودیتها را برمیگرداند.
برای انجام تحلیل موجودیت، به فایل 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"]}");
}
}
}
}
}
یک یا دو دقیقه وقت بگذارید و کد را مطالعه کنید و ببینید که چگونه از این قطعه کد برای انجام تحلیل موجودیت روی رشتهی «یوکیهیرو ماتسوموتو عالی است!» استفاده میشود.
دوباره به Cloud Shell برگردید و برنامه را اجرا کنید:
dotnet run
شما باید خروجی زیر را ببینید:
Entity: "Yukihiro Matsumoto" (Person)
URL: https://en.wikipedia.org/wiki/Yukihiro_Matsumoto
خلاصه
در این مرحله، شما توانستید تحلیل موجودیت را روی یک رشته متن انجام دهید و موجودیتهای آن را چاپ کنید. درباره تحلیل موجودیت بیشتر بخوانید.
۷. تحلیل نحوی
تحلیل نحوی، اطلاعات زبانی را استخراج میکند، متن داده شده را به مجموعهای از جملات و نشانهها (بهطورکلی، مرزهای کلمات) تجزیه میکند و تحلیل بیشتری روی آن نشانهها ارائه میدهد.
این مثال تعداد جملات و توکنها را چاپ میکند و نقش دستوری هر توکن را ارائه میدهد.
برای انجام تحلیل نحوی (Syntax Analysis)، به فایل 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}");
}
}
}
}
یک یا دو دقیقه وقت بگذارید و کد را مطالعه کنید و ببینید که چگونه از این قطعه کد برای انجام تحلیل نحوی روی رشتهی «یوکیهیرو ماتسوموتو عالی است!» استفاده میشود.
دوباره به Cloud Shell برگردید و برنامه را اجرا کنید:
dotnet run
شما باید خروجی زیر را ببینید:
Sentences: 1
Tokens: 5
Noun Yukihiro
Noun Matsumoto
Verb is
Adj great
Punct !
تفسیر بصری در زیر نشان داده شده است.

خلاصه
در این مرحله، شما توانستید تحلیل نحوی را روی یک رشته متن ساده انجام دهید و تعداد جملات، تعداد توکنها و اطلاعات زبانی برای هر توکن را چاپ کنید. درباره تحلیل نحوی بیشتر بخوانید.
۸. تبریک میگویم!
شما یاد گرفتید که چگونه از API زبان طبیعی با استفاده از سی شارپ برای انجام انواع مختلف تحلیلها روی اطلاعات استفاده کنید!
تمیز کردن
برای جلوگیری از تحمیل هزینه به حساب پلتفرم گوگل کلود خود برای منابع استفاده شده در این راهنمای سریع:
- به کنسول پلتفرم ابری بروید.
- پروژهای را که میخواهید خاموش کنید انتخاب کنید، سپس روی «حذف» در بالا کلیک کنید: این کار پروژه را برای حذف زمانبندی میکند.
اطلاعات بیشتر
- رابط برنامهنویسی کاربردی زبان طبیعی گوگل کلود: https://cloud.google.com/natural-language/docs/
- سی شارپ/.NET روی پلتفرم ابری گوگل: https://cloud.google.com/dotnet/
- کلاینت گوگل کلود داتنت: https://googlecloudplatform.github.io/google-cloud-dotnet/
مجوز
این اثر تحت مجوز عمومی Creative Commons Attribution 2.0 منتشر شده است.