Sử dụng API Ngôn ngữ tự nhiên với C#

1. Tổng quan

Trong lớp học lập trình này, bạn sẽ tập trung vào việc sử dụng API Ngôn ngữ tự nhiên với C#. Bạn sẽ tìm hiểu cách phân tích cảm xúc, thực thể và cú pháp.

API ngôn ngữ tự nhiên của Google Cloud cung cấp cho các nhà phát triển công nghệ hiểu ngôn ngữ tự nhiên, bao gồm cả phân tích quan điểm, phân tích thực thể và phân tích cú pháp.

Kiến thức bạn sẽ học được

  • Cách sử dụng Cloud Shell
  • Cách bật API Ngôn ngữ tự nhiên
  • Cách xác thực yêu cầu API
  • Cách cài đặt thư viện ứng dụng Google Cloud cho C#
  • Cách phân tích ý kiến
  • Cách thực hiện Phân tích thực thể
  • Cách thực hiện Phân tích cú pháp

Bạn cần có

  • Một dự án trên Google Cloud Platform
  • Một trình duyệt, chẳng hạn như Chrome hoặc Firefox
  • Quen thuộc với C#

Khảo sát

Bạn sẽ sử dụng hướng dẫn này như thế nào?

Chỉ có thể đọc Đọc và hoàn thành bài tập

Bạn đánh giá trải nghiệm sử dụng C# như thế nào?

Người mới tập Trung cấp Thành thạo

Bạn đánh giá trải nghiệm sử dụng các dịch vụ của Google Cloud Platform như thế nào?

Người mới tập Trung cấp Thành thạo

2. Thiết lập và yêu cầu

Thiết lập môi trường theo tiến độ riêng

  1. Đăng nhập vào Google Cloud Console rồi tạo dự án mới hoặc sử dụng lại dự án hiện có. Nếu chưa có tài khoản Gmail hoặc Google Workspace, bạn phải tạo một tài khoản.

295004821bab6a87.pngS

37d264871000675d.png.

96d86d3d5655cdbe.png.

  • Tên dự án là tên hiển thị của những người tham gia dự án này. Đây là một chuỗi ký tự không được API của Google sử dụng. Bạn luôn có thể cập nhật ứng dụng.
  • Mã dự án là duy nhất trong tất cả các dự án Google Cloud và không thể thay đổi (không thể thay đổi sau khi đã đặt). Cloud Console sẽ tự động tạo một chuỗi duy nhất; thường bạn không quan tâm đến sản phẩm đó là gì. Trong hầu hết các lớp học lập trình, bạn sẽ cần tham khảo Mã dự án của mình (thường được xác định là PROJECT_ID). Nếu không thích mã đã tạo, bạn có thể tạo một mã nhận dạng ngẫu nhiên khác. Ngoài ra, bạn có thể thử cách riêng của mình để xem có thể sử dụng hay không. Bạn không thể thay đổi mã này sau bước này và mã vẫn giữ nguyên trong thời gian dự án.
  • Đối với thông tin của bạn, có giá trị thứ ba, Project Number (Số dự án), mà một số API sử dụng. Tìm hiểu thêm về cả ba giá trị này trong tài liệu này.
  1. Tiếp theo, bạn sẽ phải bật tính năng thanh toán trong Cloud Console để sử dụng API/tài nguyên trên đám mây. Việc chạy qua lớp học lập trình này sẽ không tốn nhiều chi phí. Để tắt các tài nguyên nhằm tránh phát sinh việc thanh toán ngoài hướng dẫn này, bạn có thể xoá các tài nguyên bạn đã tạo hoặc xoá dự án. Người dùng mới của Google Cloud đủ điều kiện tham gia chương trình Dùng thử miễn phí 300 USD.

Khởi động Cloud Shell

Mặc dù bạn có thể vận hành Google Cloud từ xa trên máy tính xách tay, nhưng trong lớp học lập trình này, bạn sẽ sử dụng Google Cloud Shell, một môi trường dòng lệnh chạy trong Đám mây.

Kích hoạt Cloud Shell

  1. Trong Cloud Console, hãy nhấp vào Kích hoạt Cloud Shell d1264ca30785e435.png.

cb81e7c8e34bc8d.png

Nếu đây là lần đầu tiên khởi động Cloud Shell, bạn sẽ thấy một màn hình trung gian mô tả về Cloud Shell. Nếu bạn nhìn thấy màn hình trung gian, hãy nhấp vào Tiếp tục.

d95252b003979716.png

Quá trình cấp phép và kết nối với Cloud Shell chỉ mất vài phút.

7833d5e1c5d18f54.pngS

Máy ảo này được tải tất cả các công cụ phát triển cần thiết. Dịch vụ này cung cấp thư mục gốc có dung lượng ổn định 5 GB và chạy trên Google Cloud, giúp nâng cao đáng kể hiệu suất và khả năng xác thực của mạng. Nhiều (nếu không nói là) tất cả công việc của bạn trong lớp học lập trình này đều có thể thực hiện bằng trình duyệt.

Sau khi kết nối với Cloud Shell, bạn sẽ thấy mình đã được xác thực và dự án được đặt thành mã dự án.

  1. Chạy lệnh sau trong Cloud Shell để xác nhận rằng bạn đã được xác thực:
gcloud auth list

Kết quả lệnh

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

To set the active account, run:
    $ gcloud config set account `ACCOUNT`
  1. Chạy lệnh sau trong Cloud Shell để xác nhận rằng lệnh gcloud biết về dự án của bạn:
gcloud config list project

Kết quả lệnh

[core]
project = <PROJECT_ID>

Nếu chưa, bạn có thể thiết lập chế độ này bằng lệnh sau:

gcloud config set project <PROJECT_ID>

Kết quả lệnh

Updated property [core/project].

3. Bật Natural Language API

Bạn phải bật API này thì mới có thể bắt đầu sử dụng API Ngôn ngữ tự nhiên. Khi sử dụng Cloud Shell, bạn có thể bật API bằng cách dùng lệnh sau:

gcloud services enable language.googleapis.com

4. Cài đặt thư viện ứng dụng Google Cloud Natural Language API cho C#

Trước tiên, hãy tạo một ứng dụng bảng điều khiển C# đơn giản mà bạn sẽ dùng để chạy mẫu API Ngôn ngữ tự nhiên:

dotnet new console -n NaturalLanguageApiDemo

Bạn sẽ thấy ứng dụng được tạo và các phần phụ thuộc được giải quyết:

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

Tiếp theo, hãy chuyển đến thư mục NaturalLanguageApiDemo:

cd NaturalLanguageApiDemo/

Và thêm gói Google.Cloud.Language.V1 NuGet vào dự án:

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

Giờ đây, bạn đã sẵn sàng sử dụng API Ngôn ngữ tự nhiên!

5. Phân tích ý kiến

Trong phần này, bạn sẽ thực hiện Phân tích ý kiến trên một chuỗi và tìm Điểm sốMức độ quan trọng bằng cách sử dụng API ngôn ngữ tự nhiên.

Điểm của ý kiến nằm trong khoảng từ -1.0 (âm) đến 1.0 (tích cực) và tương ứng với ý kiến tổng thể từ thông tin đã chọn.

Mức độ quan trọng của cảm xúc nằm trong khoảng từ 0,0 đến +vô hạn và cho biết sức mạnh tổng thể của cảm xúc trong thông tin đã cho. Bạn cung cấp càng nhiều thông tin thì mức độ càng cao.

Mở trình soạn thảo mã ở trên cùng bên phải của Cloud Shell:

fd3fc1303e63572.png

Chuyển đến tệp Program.cs bên trong thư mục NaturalLanguageApiDemo rồi thay thế mã bằng đoạn mã sau:

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

Hãy dành một hoặc hai phút để nghiên cứu đoạn mã này và xem cách sử dụng đoạn mã để thực hiện phân tích cảm nhận đối với chuỗi "Yukihiro Matsumoto is great!".

Quay lại Cloud Shell, chạy ứng dụng:

dotnet run

Bạn sẽ thấy kết quả sau đây:

Score: 0.9
Magnitude: 0.9

Tóm tắt

Ở bước này, bạn có thể thực hiện Phân tích ý kiến trên một chuỗi văn bản và in ra điểm số và độ lớn. Đọc thêm về Phân tích quan điểm.

6. Phân tích thực thể

Quy trình phân tích thực thể kiểm tra thông tin đã cung cấp cho các thực thể bằng cách tìm kiếm danh từ riêng như người của công chúng, địa danh, v.v. và trả về thông tin về các thực thể đó.

Để phân tích Thực thể, hãy chuyển đến tệp Program.cs bên trong thư mục NaturalLanguageApiDemo và thay thế mã bằng đoạn mã sau:

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

Hãy dành một hoặc hai phút để nghiên cứu đoạn mã và xem cách sử dụng đoạn mã để thực hiện phân tích thực thể trên chuỗi "Yukihiro Matsumoto is great!".

Quay lại Cloud Shell, chạy ứng dụng:

dotnet run

Bạn sẽ thấy kết quả sau đây:

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

Tóm tắt

Ở bước này, bạn có thể thực hiện Phân tích đối tượng trên một chuỗi văn bản và in các thực thể của chuỗi văn bản đó. Đọc thêm về Phân tích đối tượng.

7. Phân tích cú pháp

Công cụ Phân tích cú pháp trích xuất thông tin ngôn ngữ, chia nhỏ văn bản đã cho thành một loạt các câu và mã thông báo (thường là ranh giới từ), cung cấp thêm phân tích về các mã thông báo đó.

Ví dụ này sẽ in số câu, mã thông báo và cung cấp thành từ cho mỗi mã thông báo.

Để thực hiện Phân tích cú pháp, hãy chuyển đến tệp Program.cs bên trong thư mục NaturalLanguageApiDemo và thay thế mã bằng đoạn mã sau:

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

Hãy dành một hoặc hai phút để nghiên cứu mã và xem cách sử dụng đoạn mã để thực hiện phân tích cú pháp trên chuỗi "Yukihiro Matsumoto thật tuyệt!".

Quay lại Cloud Shell, chạy ứng dụng:

dotnet run

Bạn sẽ thấy kết quả sau đây:

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

Dưới đây là phần diễn giải bằng hình ảnh.

297dbabf1a723bad.pngS

Tóm tắt

Ở bước này, bạn có thể thực hiện Phân tích cú pháp trên một chuỗi văn bản đơn giản và in ra số câu, số lượng mã thông báo và thông tin ngôn ngữ của mỗi mã thông báo. Tìm hiểu thêm về Phân tích cú pháp.

8. Xin chúc mừng!

Bạn đã tìm hiểu cách sử dụng API Ngôn ngữ tự nhiên bằng C# để thực hiện các loại phân tích thông tin khác nhau!

Dọn dẹp

Để tránh bị tính phí vào tài khoản Google Cloud Platform cho các tài nguyên được sử dụng trong hướng dẫn bắt đầu nhanh này, hãy làm như sau:

Tìm hiểu thêm

Giấy phép

Tác phẩm này được cấp phép theo Giấy phép chung Ghi nhận tác giả Creative Commons 2.0.