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
Anket
Bu eğiticiden nasıl yararlanacaksınız?
C# ile ilgili deneyiminizi nasıl değerlendirirsiniz?
Google Cloud Platform hizmetlerinin kullanımıyla ilgili deneyiminizi nasıl değerlendirirsiniz?
2. Kurulum ve Gereksinimler
Kendi hızınızda ortam kurulumu
- 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.
- 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.
- 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
- Cloud Console'da, Cloud Shell'i etkinleştir simgesini tıklayın.
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.
Temel hazırlık ve Cloud Shell'e bağlanmak yalnızca birkaç dakika sürer.
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.
- 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`
- 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:
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.
Ö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
- Google Cloud Natural Language API: https://cloud.google.com/natural-language/docs/
- Google Cloud Platform'da C#/.NET: https://cloud.google.com/dotnet/
- Google Cloud .NET istemcisi: https://googlecloudplatform.github.io/google-cloud-dotnet/
Lisans
Bu çalışma, Creative Commons Attribution 2.0 Genel Amaçlı Lisans ile lisans altına alınmıştır.