Natural Language API'yi C# ile kullanma

1. Genel Bakış

Bu codelab'de, Natural Language API'yi C# ile kullanmaya odaklanacaksınız. Yaklaşım, varlık ve söz dizimi analizi yapmayı öğreneceksiniz.

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

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

  • Bir Google Cloud Platform Projesi
  • Chrome veya Firefox gibi bir tarayıcı
  • C# kullanımı hakkında bilgi

Anket

Bu eğiticiden nasıl yararlanacaksınız?

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

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

Acemi Orta Yeterli

Google Cloud Platform hizmetlerinin kullanımıyla ilgili deneyiminizi nasıl değerlendirirsiniz?

Acemi Orta Yeterli

2. Kurulum ve Gereksinimler

Kendi hızınızda ortam kurulumu

  1. Google Cloud Console'da oturum açıp 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. İstediğiniz zaman güncelleyebilirsiniz.
  • Proje Kimliği, tüm Google Cloud projelerinde benzersizdir ve değiştirilemez (belirlendikten sonra değiştirilemez). Cloud Console, otomatik olarak benzersiz bir dize oluşturur. bunun ne olduğunu umursamıyorsunuz. Çoğu codelab'de proje kimliğinizi (genellikle PROJECT_ID olarak tanımlanır) belirtmeniz gerekir. Oluşturulan kimliği beğenmezseniz rastgele bir kimlik daha oluşturabilirsiniz. Alternatif olarak, kendi ölçümünüzü deneyip mevcut olup olmadığına bakabilirsiniz. Bu adımdan sonra değiştirilemez ve proje süresince kalır.
  • Bilginiz olması açısından, bazı API'lerin kullandığı üçüncü bir değer, yani Proje Numarası daha vardır. Bu değerlerin üçü hakkında daha fazla bilgiyi belgelerde bulabilirsiniz.
  1. Sonraki adımda, Cloud kaynaklarını/API'lerini kullanmak için Cloud Console'da faturalandırmayı etkinleştirmeniz gerekir. Bu codelab'i çalıştırmanın maliyeti, yüksek değildir. Bu eğitim dışında faturalandırmanın tekrarlanmasını önlemek amacıyla kaynakları kapatmak için oluşturduğunuz kaynakları silebilir veya projeyi silebilirsiniz. Yeni Google Cloud kullanıcıları 300 ABD doları değerindeki ücretsiz denemeden yararlanabilir.

Cloud Shell'i başlatma

Google Cloud dizüstü bilgisayarınızdan uzaktan çalıştırılabilse de 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 d1264ca30785e435.png simgesini 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 bir ekran görüntülendiyse Devam'ı tıklayın.

d95252b003979716.png

Temel hazırlık ve Cloud Shell'e bağlanmak yalnızca birkaç dakika sürer.

7833d5e1c5d18f54.png

Gereken tüm geliştirme araçları bu sanal makinede yüklüdür. 5 GB boyutunda kalıcı bir ana dizin sunar ve Google Cloud'da çalışarak ağ performansını ve kimlik doğrulamasını büyük ölçüde iyileştirir. Bu codelab'deki çalışmalarınızın tamamı olmasa bile büyük bir kısmı tarayıcıyla yapılabilir.

Cloud Shell'e bağlandıktan sonra kimliğinizin doğrulandığını ve projenin proje kimliğinize ayarlandığını göreceksiniz.

  1. Kimlik doğrulamanızın tamamlandığını onaylamak için Cloud Shell'de aşağıdaki 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 projenizi bildiğini onaylamak için Cloud Shell'de aşağıdaki komutu çalıştırın:
gcloud config list project

Komut çıkışı

[core]
project = <PROJECT_ID>

Doğru değilse aşağıdaki 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'de aşağıdaki komutu kullanarak API'yi etkinleştirebilirsiniz:

gcloud services enable language.googleapis.com

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

Öncelikle, Natural Language API örnekleri ç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öreceksiniz:

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

Sonra, NaturalLanguageApiDemo klasörüne gidin:

cd NaturalLanguageApiDemo/

Ardından 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, bir dizede Yaklaşım Analizi gerçekleştirecek ve Natural Language API'yi kullanarak Puan ve Magnitude değerlerini belirleyeceksiniz.

Yaklaşımın puanı -1,0 (negatif) ile 1,0 (pozitif) arasında değişir ve verilen bilgiden elde edilen genel düşünceye karşılık gelir.

Yaklaşımın etkisi 0,0 ile +sonsuz arasında değişir ve verilen bilgiden edinilen genel duyarlılık gücünü gösterir. Sağlanan bilginin boyutu da o kadar büyük olur.

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

fd3fc1303e63572.png

NaturalLanguageApiDemo klasörünün içindeki Program.cs dosyasına gidin ve kodu aşağıdakiyle 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}");
        }
    }
}

Bir iki dakikanızı ayırarak kodu inceleyin ve "Yukihiro Matsumoto harika!" dizesinde yaklaşım analizi yapmak için kod snippet'inin nasıl kullanıldığını gö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 dizesi üzerinde Yaklaşım Analizi gerçekleştirdiniz ve puan ile ölçeği yazdırdınız. Yaklaşım Analizi hakkında daha fazla bilgi edinin.

6. Varlık Analizi

Varlık analizi; kamuya mal olmuş kişiler, önemli noktalar vb. gibi özel isimleri arayarak varlıklar için verilen bilgileri inceler ve bu varlıklarla ilgili bilgileri döndürür.

Varlık analizi yapmak için NaturalLanguageApiDemo klasöründeki Program.cs dosyasına gidin ve kodu aşağıdaki kodla 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"]}");
                }
            }
        }
    }
}

Bir iki dakikanızı ayırarak kodu inceleyin ve "Yukihiro Matsumoto harika!" dizesinde varlık analizi yapmak için kod snippet'inin nasıl kullanıldığını öğrenin.

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 dizesi üzerinde Varlık Analizi gerçekleştirdiniz ve bu metin öğelerinin öğelerini yazdırdınız. Varlık Analizi hakkında daha fazla bilgi edinin.

7. Söz Dizimi Analizi

Sözdizimsel Analiz, belirli bir metni bir dizi cümleye ve simgeye (genellikle, kelime sınırları) ayırarak dilsel bilgileri ayıklar ve bu belirteçler üzerinde daha ayrıntılı analiz sunar.

Bu örnekte cümle sayısı ve jeton sayısı yazdırılacak ve her jeton için söz konusu kısım yer alacaktır.

Söz Dizimi Analizi gerçekleştirmek için NaturalLanguageApiDemo klasörünün içindeki Program.cs dosyasına gidin ve kodu aşağıdaki kodla 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}");
            }
        }
    }
}

Bir iki dakikanızı ayırarak kodu inceleyin ve "Yukihiro Matsumoto harika!" dizesinde söz dizimi analizi yapmak için kod snippet'inin nasıl kullanıldığını öğrenin.

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 !

Görsel bir anlatımı aşağıda verilmiştir.

297dbabf1a723bad.png

Özet

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

8. Tebrikler!

Bilgilerle ilgili farklı türde analizler yapmak için C# kullanarak Natural Language API'yi nasıl kullanacağınızı öğ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 "Sil"i tıklayın üstte üstte yer alır: Bu işlem, projeyi silinmek üzere programlar.

Daha Fazla Bilgi

Lisans

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