1. ภาพรวม
ใน Codelab นี้ คุณจะมุ่งเน้นการใช้ Natural Language API กับ C# คุณจะได้เรียนรู้วิธีวิเคราะห์ความรู้สึก เอนทิตี และไวยากรณ์
Natural Language API ของ Google Cloud มีเทคโนโลยีความเข้าใจภาษาธรรมชาติสำหรับนักพัฒนาซอฟต์แวร์ ซึ่งรวมถึงการวิเคราะห์ความเห็น การวิเคราะห์เอนทิตี และการวิเคราะห์ไวยากรณ์
สิ่งที่คุณจะได้เรียนรู้
- วิธีใช้ Cloud Shell
- วิธีเปิดใช้ Natural Language API
- วิธีตรวจสอบสิทธิ์คำขอ API
- วิธีติดตั้งไลบรารีของไคลเอ็นต์ Google Cloud สำหรับ C#
- วิธีทำการวิเคราะห์ความรู้สึก
- วิธีทำการวิเคราะห์เอนทิตี
- วิธีทำการวิเคราะห์ไวยากรณ์
สิ่งที่คุณต้องมี
แบบสำรวจ
คุณจะใช้บทแนะนำนี้อย่างไร
คุณจะให้คะแนนประสบการณ์การใช้งาน C# เท่าใด
คุณจะให้คะแนนประสบการณ์การใช้บริการ Google Cloud Platform เท่าใด
2. การตั้งค่าและข้อกำหนด
การตั้งค่าสภาพแวดล้อมแบบเรียนรู้ด้วยตนเอง
- ลงชื่อเข้าใช้ Google Cloud Console แล้วสร้างโปรเจ็กต์ใหม่หรือใช้โปรเจ็กต์ที่มีอยู่ซ้ำ หากยังไม่มีบัญชี Gmail หรือ Google Workspace คุณต้องสร้างบัญชี



- ชื่อโปรเจ็กต์คือชื่อที่แสดงสำหรับผู้เข้าร่วมโปรเจ็กต์นี้ ซึ่งเป็นสตริงอักขระที่ Google APIs ไม่ได้ใช้ คุณอัปเดตได้ทุกเมื่อ
- รหัสโปรเจ็กต์จะไม่ซ้ำกันในโปรเจ็กต์ Google Cloud ทั้งหมดและเปลี่ยนแปลงไม่ได้ (เปลี่ยนไม่ได้หลังจากตั้งค่าแล้ว) Cloud Console จะสร้างสตริงที่ไม่ซ้ำกันโดยอัตโนมัติ ซึ่งโดยปกติแล้วคุณไม่จำเป็นต้องสนใจว่าสตริงนั้นคืออะไร ใน Codelab ส่วนใหญ่ คุณจะต้องอ้างอิงรหัสโปรเจ็กต์ (โดยทั่วไปจะระบุเป็น
PROJECT_ID) หากไม่ชอบรหัสที่สร้างขึ้น คุณอาจสร้างรหัสแบบสุ่มอีกรหัสหนึ่งได้ หรือคุณอาจลองใช้ชื่อของคุณเองและดูว่ามีชื่อนั้นหรือไม่ คุณจะเปลี่ยนแปลงรหัสนี้หลังจากขั้นตอนนี้ไม่ได้ และรหัสจะคงอยู่ตลอดระยะเวลาของโปรเจ็กต์ - โปรดทราบว่ายังมีค่าที่ 3 ซึ่งคือหมายเลขโปรเจ็กต์ที่ API บางตัวใช้ ดูข้อมูลเพิ่มเติมเกี่ยวกับค่าทั้ง 3 นี้ได้ในเอกสารประกอบ
- จากนั้นคุณจะต้องเปิดใช้การเรียกเก็บเงินใน Cloud Console เพื่อใช้ทรัพยากร/API ของ Cloud การทำตาม Codelab นี้จะไม่มีค่าใช้จ่ายมากนัก หรืออาจไม่มีค่าใช้จ่ายเลย หากต้องการปิดทรัพยากรเพื่อหลีกเลี่ยงการเรียกเก็บเงินนอกเหนือจากบทแนะนำนี้ คุณสามารถลบทรัพยากรที่สร้างขึ้นหรือลบโปรเจ็กต์ได้ ผู้ใช้ Google Cloud รายใหม่มีสิทธิ์เข้าร่วมโปรแกรมช่วงทดลองใช้ฟรีมูลค่า$300 USD
เริ่มต้น Cloud Shell
แม้ว่าคุณจะใช้งาน Google Cloud จากระยะไกลจากแล็ปท็อปได้ แต่ใน Codelab นี้คุณจะใช้ Google Cloud Shell ซึ่งเป็นสภาพแวดล้อมบรรทัดคำสั่งที่ทำงานในระบบคลาวด์
เปิดใช้งาน Cloud Shell
- จาก Cloud Console ให้คลิกเปิดใช้งาน Cloud Shell


หากคุณเริ่มใช้ Cloud Shell เป็นครั้งแรก คุณจะเห็นหน้าจอระดับกลางที่อธิบายว่า Cloud Shell คืออะไร หากเห็นหน้าจอระดับกลาง ให้คลิกต่อไป

การจัดสรรและเชื่อมต่อกับ Cloud Shell จะใช้เวลาไม่นาน

เครื่องเสมือนนี้โหลดเครื่องมือพัฒนาซอฟต์แวร์ทั้งหมดที่จำเป็นไว้แล้ว โดยมีไดเรกทอรีหลักแบบถาวรขนาด 5 GB และทำงานใน Google Cloud ซึ่งช่วยเพิ่มประสิทธิภาพเครือข่ายและการตรวจสอบสิทธิ์ได้อย่างมาก คุณสามารถทำงานส่วนใหญ่หรือทั้งหมดในโค้ดแล็บนี้ได้ด้วยเบราว์เซอร์
เมื่อเชื่อมต่อกับ 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].
3. เปิดใช้ Natural Language API
คุณต้องเปิดใช้ Natural Language API ก่อนจึงจะเริ่มใช้งานได้ คุณเปิดใช้ API ได้โดยใช้ Cloud Shell โดยใช้คำสั่งต่อไปนี้
gcloud services enable language.googleapis.com
4. ติดตั้งไลบรารีของไคลเอ็นต์ Google Cloud Natural Language API สำหรับ C#
ก่อนอื่น ให้สร้างแอปพลิเคชันคอนโซล 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 โดยทำดังนี้

ไปที่ไฟล์ 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}");
}
}
}
โปรดสละเวลาสัก 1-2 นาทีเพื่อศึกษาโค้ดและดูวิธีใช้ข้อมูลโค้ดเพื่อทำการวิเคราะห์ความรู้สึกในสตริง "Yukihiro Matsumoto is great!"
กลับไปที่ Cloud Shell แล้วเรียกใช้แอปโดยทำดังนี้
dotnet run
คุณควรเห็นเอาต์พุตต่อไปนี้
Score: 0.9
Magnitude: 0.9
สรุป
ในขั้นตอนนี้ คุณสามารถวิเคราะห์ความรู้สึกในสตริงข้อความและพิมพ์คะแนนและความรุนแรงออกมาได้ อ่านเพิ่มเติมเกี่ยวกับการวิเคราะห์ความรู้สึก
6. การวิเคราะห์เอนทิตี
การวิเคราะห์เอนทิตีจะตรวจสอบข้อมูลที่ระบุเพื่อหาเอนทิตีโดยการค้นหาคำนามเฉพาะ เช่น บุคคลสาธารณะ สถานที่สำคัญ ฯลฯ และแสดงข้อมูลเกี่ยวกับเอนทิตีเหล่านั้น
หากต้องการวิเคราะห์เอนทิตี ให้ไปที่ไฟล์ 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"]}");
}
}
}
}
}
ใช้เวลาสัก 1-2 นาทีเพื่อศึกษาโค้ดและดูวิธีใช้ข้อมูลโค้ดเพื่อทำการวิเคราะห์เอนทิตีในสตริง "Yukihiro Matsumoto is great!"
กลับไปที่ Cloud Shell แล้วเรียกใช้แอปโดยทำดังนี้
dotnet run
คุณควรเห็นเอาต์พุตต่อไปนี้
Entity: "Yukihiro Matsumoto" (Person)
URL: https://en.wikipedia.org/wiki/Yukihiro_Matsumoto
สรุป
ในขั้นตอนนี้ คุณสามารถทำการวิเคราะห์เอนทิตีในสตริงข้อความและพิมพ์เอนทิตีได้ อ่านเพิ่มเติมเกี่ยวกับการวิเคราะห์เอนทิตี
7. การวิเคราะห์ไวยากรณ์
การวิเคราะห์ไวยากรณ์จะดึงข้อมูลทางภาษาออกมา โดยแบ่งข้อความที่กำหนดออกเป็นชุดประโยคและโทเค็น (โดยทั่วไปคือขอบเขตของคำ) เพื่อให้วิเคราะห์โทเค็นเหล่านั้นเพิ่มเติมได้
ตัวอย่างนี้จะพิมพ์จำนวนประโยค โทเค็น และระบุส่วนของคำพูดสำหรับแต่ละโทเค็น
หากต้องการทำการวิเคราะห์ไวยากรณ์ ให้ไปที่ไฟล์ 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}");
}
}
}
}
ใช้เวลาสัก 1-2 นาทีเพื่อศึกษาโค้ดและดูวิธีใช้ข้อมูลโค้ดเพื่อทำการวิเคราะห์ไวยากรณ์ในสตริง "Yukihiro Matsumoto is great!"
กลับไปที่ Cloud Shell แล้วเรียกใช้แอปโดยทำดังนี้
dotnet run
คุณควรเห็นเอาต์พุตต่อไปนี้
Sentences: 1
Tokens: 5
Noun Yukihiro
Noun Matsumoto
Verb is
Adj great
Punct !
การตีความด้วยภาพแสดงอยู่ด้านล่าง

สรุป
ในขั้นตอนนี้ คุณสามารถวิเคราะห์ไวยากรณ์ในสตริงข้อความอย่างง่าย และพิมพ์จำนวนประโยค จำนวนโทเค็น และข้อมูลทางภาษาสำหรับแต่ละโทเค็น อ่านเพิ่มเติมเกี่ยวกับการวิเคราะห์ไวยากรณ์
8. ยินดีด้วย
คุณได้เรียนรู้วิธีใช้ Natural Language API โดยใช้ C# เพื่อทำการวิเคราะห์ข้อมูลประเภทต่างๆ
ล้างข้อมูล
เพื่อเลี่ยงไม่ให้เกิดการเรียกเก็บเงินกับบัญชี Google Cloud Platform สำหรับทรัพยากรที่ใช้ในการเริ่มต้นอย่างรวดเร็วนี้ ควรทำดังนี้
- ไปที่คอนโซล Cloud Platform
- เลือกโปรเจ็กต์ที่ต้องการปิด แล้วคลิก "ลบ" ที่ด้านบน ซึ่งจะเป็นการกำหนดเวลาให้ลบโปรเจ็กต์
ดูข้อมูลเพิ่มเติม
- Google Cloud Natural Language API: https://cloud.google.com/natural-language/docs/
- C#/.NET ใน Google Cloud Platform: https://cloud.google.com/dotnet/
- ไคลเอ็นต์ .NET ของ Google Cloud: https://googlecloudplatform.github.io/google-cloud-dotnet/
ใบอนุญาต
ผลงานนี้ได้รับอนุญาตภายใต้สัญญาอนุญาตครีเอทีฟคอมมอนส์สำหรับยอมรับสิทธิของผู้สร้าง (Creative Commons Attribution License) 2.0 แบบทั่วไป