C# के साथ Natural Language API का इस्तेमाल करना

1. खास जानकारी

इस कोडलैब में, C# के साथ Natural Language API का इस्तेमाल करने पर फ़ोकस किया जाएगा. आपको भावना, इकाई, और सिंटैक्स का विश्लेषण करने का तरीका सिखाया जाएगा.

Google Cloud Natural Language API, डेवलपर को नैचुरल लैंग्वेज अंडरस्टैंडिंग टेक्नोलॉजी उपलब्ध कराता है. इनमें भावना का विश्लेषण, इकाई का विश्लेषण, और सिंटैक्स का विश्लेषण शामिल है.

आपको क्या सीखने को मिलेगा

  • Cloud Shell का इस्तेमाल कैसे करें
  • Natural Language API को चालू करने का तरीका
  • एपीआई अनुरोधों की पुष्टि करने का तरीका
  • C# के लिए Google Cloud क्लाइंट लाइब्रेरी इंस्टॉल करने का तरीका
  • भावनाओं का विश्लेषण कैसे करें
  • इकाई के विश्लेषण को कैसे पूरा करें
  • सिंटैक्स का विश्लेषण कैसे करें

आपको इन चीज़ों की ज़रूरत होगी

  • Google Cloud Platform प्रोजेक्ट
  • कोई ब्राउज़र, जैसे कि Chrome या Firefox
  • C# का इस्तेमाल करने की जानकारी

सर्वे

इस ट्यूटोरियल का इस्तेमाल कैसे किया जाएगा?

सिर्फ़ इसे पढ़ें इसे पढ़ें और एक्सरसाइज़ पूरी करें

C# के साथ अपने अनुभव को आप क्या रेटिंग देंगे?

शुरुआती सामान्य एडवांस

Google Cloud Platform की सेवाओं को इस्तेमाल करने के अपने अनुभव को आप क्या रेटिंग देंगे?

शुरुआती सामान्य एडवांस

2. सेटअप और ज़रूरी शर्तें

अपने हिसाब से एनवायरमेंट सेट अप करना

  1. Google Cloud Console में साइन इन करें और नया प्रोजेक्ट बनाएं या किसी मौजूदा प्रोजेक्ट का फिर से इस्तेमाल करें. अगर आपके पास पहले से कोई Gmail या Google Workspace खाता नहीं है, तो आपको एक खाता बनाना होगा.

295004821bab6a87.png

37d264871000675d.png

96d86d3d5655cdbe.png

  • प्रोजेक्ट का नाम, इस प्रोजेक्ट में हिस्सा लेने वाले लोगों के लिए डिसप्ले नेम होता है. यह एक वर्ण स्ट्रिंग है, जिसका इस्तेमाल Google API नहीं करते. इसे कभी भी अपडेट किया जा सकता है.
  • प्रोजेक्ट आईडी, सभी Google Cloud प्रोजेक्ट के लिए यूनीक होता है. साथ ही, इसे बदला नहीं जा सकता. Cloud Console, यूनीक स्ट्रिंग को अपने-आप जनरेट करता है. आम तौर पर, आपको इससे कोई फ़र्क़ नहीं पड़ता कि यह क्या है. ज़्यादातर कोडलैब में, आपको अपने प्रोजेक्ट आईडी (आम तौर पर PROJECT_ID के तौर पर पहचाना जाता है) का रेफ़रंस देना होगा. अगर आपको जनरेट किया गया आईडी पसंद नहीं है, तो कोई दूसरा रैंडम आईडी जनरेट किया जा सकता है. इसके अलावा, आपके पास अपना नाम आज़माने का विकल्प भी है. इससे आपको पता चलेगा कि वह नाम उपलब्ध है या नहीं. इस चरण के बाद, इसे बदला नहीं जा सकता. यह प्रोजेक्ट की अवधि तक बना रहता है.
  • आपकी जानकारी के लिए बता दें कि एक तीसरी वैल्यू भी होती है, जिसे प्रोजेक्ट नंबर कहते हैं. इसका इस्तेमाल कुछ एपीआई करते हैं. इन तीनों वैल्यू के बारे में ज़्यादा जानने के लिए, दस्तावेज़ देखें.
  1. इसके बाद, आपको Cloud Console में बिलिंग चालू करनी होगी, ताकि Cloud संसाधनों/एपीआई का इस्तेमाल किया जा सके. इस कोडलैब को पूरा करने में ज़्यादा समय नहीं लगेगा. इस ट्यूटोरियल के बाद बिलिंग से बचने के लिए, संसाधनों को बंद किया जा सकता है. इसके लिए, बनाए गए संसाधनों को मिटाएं या प्रोजेक्ट को मिटाएं. Google Cloud के नए उपयोगकर्ताओं को, 300 डॉलर का क्रेडिट मिलेगा. वे इसे मुफ़्त में आज़मा सकते हैं.

Cloud Shell शुरू करें

Google Cloud को अपने लैपटॉप से रिमोटली ऐक्सेस किया जा सकता है. हालांकि, इस कोडलैब में Google Cloud Shell का इस्तेमाल किया जाएगा. यह क्लाउड में चलने वाला कमांड लाइन एनवायरमेंट है.

Cloud Shell चालू करें

  1. Cloud Console में, Cloud Shell चालू करें d1264ca30785e435.png पर क्लिक करें.

cb81e7c8e34bc8d.png

अगर आपने Cloud Shell को पहली बार शुरू किया है, तो आपको एक इंटरमीडिएट स्क्रीन दिखेगी. इसमें Cloud Shell के बारे में जानकारी दी गई होगी. अगर आपको इंटरमीडिएट स्क्रीन दिखती है, तो जारी रखें पर क्लिक करें.

d95252b003979716.png

Cloud Shell से कनेक्ट होने में कुछ ही सेकंड लगेंगे.

7833d5e1c5d18f54.png

इस वर्चुअल मशीन में, डेवलपमेंट के लिए ज़रूरी सभी टूल पहले से मौजूद हैं. यह 5 जीबी की होम डायरेक्ट्री उपलब्ध कराता है, जो हमेशा बनी रहती है. साथ ही, यह Google Cloud में काम करता है. इससे नेटवर्क की परफ़ॉर्मेंस और पुष्टि करने की प्रोसेस बेहतर होती है. इस कोडलैब में ज़्यादातर काम ब्राउज़र से किया जा सकता है.

Cloud Shell से कनेक्ट होने के बाद, आपको दिखेगा कि आपकी पुष्टि हो गई है और प्रोजेक्ट को आपके प्रोजेक्ट आईडी पर सेट कर दिया गया है.

  1. पुष्टि करें कि आपने 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`
  1. यह पुष्टि करने के लिए कि gcloud कमांड को आपके प्रोजेक्ट के बारे में पता है, Cloud Shell में यह कमांड चलाएं:
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. C# के लिए, Google Cloud Natural Language API की क्लाइंट लाइब्रेरी इंस्टॉल करना

सबसे पहले, एक सामान्य 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/

इसके बाद, प्रोजेक्ट में Google.Cloud.Language.V1 NuGet पैकेज जोड़ें:

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 में सबसे ऊपर दाईं ओर मौजूद कोड एडिटर खोलें:

fd3fc1303e63572.png

NaturalLanguageApiDemo फ़ोल्डर में मौजूद Program.cs फ़ाइल पर जाएं और कोड की जगह यह कोड डालें:

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 great!" स्ट्रिंग पर भावना का विश्लेषण करने के लिए, कोड के स्निपेट का इस्तेमाल कैसे किया जाता है.

Cloud Shell में वापस जाकर, ऐप्लिकेशन चलाएं:

dotnet run

आपको यह आउटपुट दिखेगा:

Score: 0.9
Magnitude: 0.9

खास जानकारी

इस चरण में, आपने टेक्स्ट की स्ट्रिंग पर सेंटीमेंट एनालिसिस किया. साथ ही, स्कोर और मैग्नीट्यूड को प्रिंट किया. भावनाओं के विश्लेषण के बारे में ज़्यादा जानें.

6. इकाई का विश्लेषण

इकाई विश्लेषण में, इकाइयों के लिए दी गई जानकारी की जांच की जाती है. इसके लिए, प्रॉपर नाउन (जैसे, सार्वजनिक हस्तियां, लैंडमार्क वगैरह) खोजे जाते हैं. इसके बाद, उन इकाइयों के बारे में जानकारी दी जाती है.

इकाई का विश्लेषण करने के लिए, Program.cs फ़ोल्डर में मौजूद 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 great!" स्ट्रिंग पर इकाई विश्लेषण करने के लिए, कोड के स्निपेट का इस्तेमाल कैसे किया जाता है.

Cloud Shell में वापस जाकर, ऐप्लिकेशन चलाएं:

dotnet run

आपको यह आउटपुट दिखेगा:

Entity: "Yukihiro Matsumoto" (Person)
URL: https://en.wikipedia.org/wiki/Yukihiro_Matsumoto

खास जानकारी

इस चरण में, आपने टेक्स्ट की स्ट्रिंग पर इकाई विश्लेषण किया और उसकी इकाइयों को प्रिंट किया. इकाई के विश्लेषण के बारे में ज़्यादा जानें.

7. सिंटैक्स विश्लेषण

सिंटैक्टिक विश्लेषण में, भाषा से जुड़ी जानकारी निकाली जाती है. इसके लिए, दिए गए टेक्स्ट को वाक्यों और टोकन (आम तौर पर, शब्दों की सीमाएं) की सीरीज़ में बांटा जाता है. साथ ही, उन टोकन का विश्लेषण किया जाता है.

इस उदाहरण में, वाक्यों और टोकन की संख्या प्रिंट की जाएगी. साथ ही, हर टोकन के लिए पार्ट ऑफ़ स्पीच की जानकारी दी जाएगी.

सिंटैक्स का विश्लेषण करने के लिए, Program.cs फ़ोल्डर में मौजूद 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 great!" स्ट्रिंग का सिंटैक्स विश्लेषण करने के लिए, कोड के स्निपेट का इस्तेमाल कैसे किया जाता है.

Cloud Shell में वापस जाकर, ऐप्लिकेशन चलाएं:

dotnet run

आपको यह आउटपुट दिखेगा:

Sentences: 1
Tokens: 5
Noun Yukihiro
Noun Matsumoto
Verb is
Adj great
Punct !

नीचे विज़ुअल इंटरप्रेटेशन दिखाया गया है.

297dbabf1a723bad.png

खास जानकारी

इस चरण में, आपने टेक्स्ट की एक सामान्य स्ट्रिंग पर सिंटैक्स एनालिसिस किया. साथ ही, हर टोकन के लिए वाक्यों की संख्या, टोकन की संख्या, और भाषाई जानकारी प्रिंट की. सिंटैक्स के विश्लेषण के बारे में ज़्यादा जानें.

8. बधाई हो!

आपने C# का इस्तेमाल करके, Natural Language API का इस्तेमाल करने का तरीका सीखा. इससे जानकारी का अलग-अलग तरह से विश्लेषण किया जा सकता है!

व्यवस्थित करें

इस क्विकस्टार्ट में इस्तेमाल की गई संसाधनों के लिए, अपने Google Cloud Platform खाते से शुल्क न लिए जाने के लिए:

  • Cloud Platform Console पर जाएं.
  • वह प्रोजेक्ट चुनें जिसे बंद करना है. इसके बाद, सबसे ऊपर मौजूद ‘मिटाएं' पर क्लिक करें: इससे प्रोजेक्ट को मिटाने के लिए शेड्यूल कर दिया जाता है.

ज़्यादा जानें

लाइसेंस

इस काम के लिए, Creative Commons एट्रिब्यूशन 2.0 जेनेरिक लाइसेंस के तहत लाइसेंस मिला है.