Natural Language API'yi C# ile kullanma

1. Genel Bakış

Bu codelab'de Natural Language API'yi C# ile kullanmaya odaklanacaksınız. Duygu, varlık ve söz dizimi analizini nasıl yapacağınızı öğreneceksiniz.

Google Cloud Natural Language API, geliştiricilere duygu analizi, varlık analizi ve söz dizimi analizi gibi doğal dil anlama teknolojileri sunar.

Neler öğreneceksiniz?

  • Cloud Shell'i kullanma
  • Natural Language API'yi Etkinleştirme
  • API isteklerinin kimliğini doğrulama
  • C# için Google Cloud istemci kitaplığını yükleme
  • Yaklaşım analizi nasıl yapılır?
  • Varlık analizi nasıl yapılır?
  • Söz dizimi analizi nasıl yapılır?

Gerekenler

  • Google Cloud Platform projesi
  • Chrome veya Firefox gibi bir tarayıcı
  • C# kullanma konusunda bilgi sahibi olma

Anket

Bu eğitimi nasıl kullanacaksınız?

Yalnızca okuyun Okuyun ve alıştırmaları tamamlayın

C# ile ilgili deneyiminizi nasıl değerlendirirsiniz?

Yeni başlayan Orta düzey Uzman

Google Cloud Platform hizmetlerini kullanma deneyiminizi nasıl değerlendirirsiniz?

Başlangıç Orta İleri

2. Kurulum ve Gereksinimler

Yönlendirmesiz ortam kurulumu

  1. Google Cloud Console'da oturum açın ve yeni bir proje oluşturun veya mevcut bir projeyi yeniden kullanın. Gmail veya Google Workspace hesabınız yoksa hesap oluşturmanız gerekir.

295004821bab6a87.png

37d264871000675d.png

96d86d3d5655cdbe.png

  • Proje adı, bu projenin katılımcıları için görünen addır. Google API'leri tarafından kullanılmayan bir karakter dizesidir. Bu bilgiyi istediğiniz zaman güncelleyebilirsiniz.
  • Proje kimliği, tüm Google Cloud projelerinde benzersizdir ve sabittir (ayarlandıktan sonra değiştirilemez). Cloud Console, benzersiz bir dizeyi otomatik olarak oluşturur. Genellikle bu dizenin ne olduğuyla ilgilenmezsiniz. Çoğu codelab'de proje kimliğinize (genellikle PROJECT_ID olarak tanımlanır) başvurmanız gerekir. Oluşturulan kimliği beğenmezseniz başka bir rastgele kimlik oluşturabilirsiniz. Dilerseniz kendi adınızı deneyerek kullanılabilir olup olmadığını kontrol edebilirsiniz. Bu adım tamamlandıktan sonra değiştirilemez ve proje süresince geçerli kalır.
  • Bazı API'lerin kullandığı üçüncü bir değer olan Proje Numarası da vardır. Bu üç değer hakkında daha fazla bilgiyi belgelerde bulabilirsiniz.
  1. Ardından, Cloud kaynaklarını/API'lerini kullanmak için Cloud Console'da faturalandırmayı etkinleştirmeniz gerekir. Bu codelab'i tamamlamak neredeyse hiç maliyetli değildir. Bu eğitimin ötesinde faturalandırılmayı önlemek için kaynakları kapatmak üzere oluşturduğunuz kaynakları veya projeyi silebilirsiniz. Yeni Google Cloud kullanıcıları 300 ABD doları değerinde ücretsiz deneme programından yararlanabilir.

Cloud Shell'i başlatma

Google Cloud, dizüstü bilgisayarınızdan uzaktan çalıştırılabilir. Ancak bu codelab'de, Cloud'da çalışan bir komut satırı ortamı olan Google Cloud Shell'i kullanacaksınız.

Cloud Shell'i etkinleştirme

  1. Cloud Console'da Cloud Shell'i etkinleştir 'i d1264ca30785e435.png tıklayın.

cb81e7c8e34bc8d.png

Cloud Shell'i ilk kez başlatıyorsanız ne olduğunu açıklayan bir ara ekran gösterilir. Ara ekran gösterildiyse Devam'ı tıklayın.

d95252b003979716.png

Cloud Shell'in temel hazırlığı ve bağlanması yalnızca birkaç dakikanızı alır.

7833d5e1c5d18f54.png

Bu sanal makineye, ihtiyaç duyacağınız tüm geliştirme araçları yüklenmiştir. 5 GB boyutunda kalıcı bir ana dizin bulunur ve Google Cloud'da çalışır. Bu sayede ağ performansı ve kimlik doğrulama önemli ölçüde güçlenir. Bu codelab'deki çalışmalarınızın neredeyse tamamını tarayıcıyla yapabilirsiniz.

Cloud Shell'e bağlandıktan sonra kimliğinizin doğrulandığını ve projenin, proje kimliğinize ayarlandığını görürsünüz.

  1. Kimliğinizin doğrulandığını onaylamak için Cloud Shell'de şu komutu çalıştırın:
gcloud auth list

Komut çıkışı

 Credentialed Accounts
ACTIVE  ACCOUNT
*       <my_account>@<my_domain.com>

To set the active account, run:
    $ gcloud config set account `ACCOUNT`
  1. gcloud komutunun projeniz hakkında bilgi sahibi olduğunu onaylamak için Cloud Shell'de aşağıdaki komutu çalıştırın:
gcloud config list project

Komut çıkışı

[core]
project = <PROJECT_ID>

Değilse şu komutla ayarlayabilirsiniz:

gcloud config set project <PROJECT_ID>

Komut çıkışı

Updated property [core/project].

3. Natural Language API'yi etkinleştirme

Natural Language API'yi kullanmaya başlamadan önce API'yi etkinleştirmeniz gerekir. Cloud Shell'i kullanarak aşağıdaki komutla API'yi etkinleştirebilirsiniz:

gcloud services enable language.googleapis.com

4. C# için Google Cloud Natural Language API istemci kitaplığını yükleyin

Öncelikle Natural Language API örneklerini çalıştırmak için kullanacağınız basit bir C# konsol uygulaması oluşturun:

dotnet new console -n NaturalLanguageApiDemo

Uygulamanın oluşturulduğunu ve bağımlılıkların çözüldüğünü görmelisiniz:

The template "Console Application" was created successfully.
Processing post-creation actions...
...
Restore succeeded.

Ardından NaturalLanguageApiDemo klasörüne gidin:

cd NaturalLanguageApiDemo/

Ayrıca projeye Google.Cloud.Language.V1 NuGet paketini ekleyin:

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'.

Artık Natural Language API'yi kullanmaya hazırsınız.

5. Yaklaşım Analizi

Bu bölümde, Natural Language API'yi kullanarak bir dize üzerinde yaklaşım analizi gerçekleştirecek ve puanı ve büyüklüğü öğreneceksiniz.

Duyarlılık puanı, -1,0 (negatif) ile 1,0 (pozitif) arasında değişir ve verilen bilgilerdeki genel duyarlılığa karşılık gelir.

Duygunun büyüklüğü 0,0 ile +sonsuz arasında değişir ve verilen bilgilerdeki duygunun genel gücünü gösterir. Ne kadar çok bilgi verilirse büyüklük o kadar yüksek olur.

Cloud Shell'in sağ üst tarafındaki kod düzenleyiciyi açın:

fd3fc1303e63572.png

NaturalLanguageApiDemo klasöründeki Program.cs dosyasına gidin ve kodu aşağıdakilerle değiştirin:

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}");
        }
    }
}

Kodu incelemek ve kod snippet'inin "Yukihiro Matsumoto is great!" (Yukihiro Matsumoto harika!) dizesinde duygu analizi yapmak için nasıl kullanıldığını görmek için bir veya iki dakikanızı ayırın.

Cloud Shell'e dönüp uygulamayı çalıştırın:

dotnet run

Aşağıdaki çıkışı göreceksiniz:

Score: 0.9
Magnitude: 0.9

Özet

Bu adımda, bir metin dizesinde duygu analizi yapıp puanı ve büyüklüğü yazdırabildiniz. Duygu analizi hakkında daha fazla bilgi edinin.

6. Varlık Analizi

Varlık analizi, verilen bilgileri varlıklar açısından inceler. Bu işlem için özel isimler (ör. kamuya mal olmuş kişiler, önemli yerler vb.) aranır ve bu varlıklarla ilgili bilgiler döndürülür.

Varlık analizi yapmak için NaturalLanguageApiDemo klasöründeki Program.cs dosyasına gidin ve kodu aşağıdakilerle değiştirin:

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"]}");
                }
            }
        }
    }
}

Kodu incelemek ve kod snippet'inin "Yukihiro Matsumoto is great!" dizesinde nasıl varlık analizi yapmak için kullanıldığını görmek için bir veya iki dakikanızı ayırın.

Cloud Shell'e dönüp uygulamayı çalıştırın:

dotnet run

Aşağıdaki çıkışı göreceksiniz:

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

Özet

Bu adımda, bir metin dizesinde Entity Analysis gerçekleştirebildiniz ve öğelerini yazdırabildiniz. Varlık analizi hakkında daha fazla bilgi edinin.

7. Söz Dizimi Analizi

Söz Dizimi Analizi, verilen metni bir dizi cümle ve jetona (genellikle kelime sınırları) ayırarak dilbilimsel bilgileri ayıklar ve bu jetonlar üzerinde daha fazla analiz sağlar.

Bu örnekte cümle ve jeton sayısı yazdırılır ve her jetonun kelime türü sağlanır.

Söz dizimi analizini gerçekleştirmek için NaturalLanguageApiDemo klasöründeki Program.cs dosyasına gidin ve kodu aşağıdakilerle değiştirin:

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}");
            }
        }
    }
}

Kodu incelemek ve kod snippet'inin "Yukihiro Matsumoto is great!" dizesinde söz dizimi analizi yapmak için nasıl kullanıldığını görmek için bir veya iki dakikanızı ayırın.

Cloud Shell'e dönüp uygulamayı çalıştırın:

dotnet run

Aşağıdaki çıkışı göreceksiniz:

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

Aşağıda görsel bir yorum gösterilmektedir.

297dbabf1a723bad.png

Özet

Bu adımda, basit bir metin dizesinde Söz Dizimi Analizi gerçekleştirebildiniz ve her jeton için cümle sayısını, jeton sayısını ve dilbilimsel bilgileri yazdırdınız. Söz Dizimi Analizi hakkında daha fazla bilgi edinin.

8. Tebrikler!

C# kullanarak Natural Language API ile bilgiler üzerinde farklı analizler yapmayı öğrendiniz.

Temizleme

Bu hızlı başlangıçta kullanılan kaynaklar için Google Cloud Platform hesabınızın ücretlendirmesini önlemek amacıyla:

  • Cloud Platform Console'a gidin.
  • Kapatmak istediğiniz projeyi seçin, ardından üst kısımdaki "Sil"i tıklayın. Bu işlem, projenin silinmesini planlar.

Daha Fazla Bilgi

Lisans

Bu çalışma, Creative Commons Attribution 2.0 Genel Amaçlı Lisans ile lisans altına alınmıştır.