Giả sử rằng bạn có cơ hội nhận được nhận xét hoặc đánh giá từ khách hàng của mình hoặc một số nguồn khác và bạn muốn đánh giá mức độ tích cực của chúng. Có một cách để phân tích những nhận xét như vậy được gọi là phân tích tình cảm. Bài đăng này tập trung vào công cụ phân tích tình cảm dựa trên mô hình mạng thần kinh sâu bằng C#. Mô hình này phù hợp cho một loạt các nhiệm vụ.

API phân tích tình cảm cho .NET

Nếu bạn muốn thực hiện phân tích cảm tính theo chương trình, GroupDocs.Classification sẽ phục vụ mục đích đó cho bạn. Nó triển khai một bộ phân loại tình cảm có mục đích chung có thể được sử dụng để đánh giá giọng điệu của các bài đánh giá sản phẩm, đánh giá cửa hàng, đánh giá ứng dụng, phản hồi, v.v.

GroupDocs.Classification for .NET

Bài viết này sẽ hướng dẫn bạn phân loại comment và phân tích mức độ tích cực bằng C# với GroupDocs.Classification for .NET. Vì vậy, trước khi bạn bắt đầu, vui lòng đảm bảo cài đặt API từ bất kỳ phương pháp nào sau đây:

  • Cài đặt bằng NuGet Trình quản lý gói.
  • Tải xuống the DLL and reference it into the project.

Cách phân loại văn bản bằng phân tích tình cảm trong C#

Để giải quyết một nhiệm vụ như vậy, chúng ta có thể sử dụng một lớp chung có tên Classifier hoặc chúng ta có thể sử dụng Sentiment Classifier, một lớp đơn giản và nhẹ hơn một chút. Dưới đây là các bước:

  • Khởi tạo SentimentClassifier.
  • Gọi phương thức PositiveProbability của lớp SentimentClassifier và chuyển văn bản dưới dạng tham số cần được phân tích.
  • Phương thức PositiveProbability sẽ trả về độ tích cực nằm trong khoảng từ 0 đến 1.

Đây là mã C# để tìm giọng điệu của bất kỳ câu lệnh nào bằng cách sử dụng phân loại tình cảm. Chúng tôi đã chọn tình cảm sau đây làm ví dụ:

“Kinh nghiệm đơn giản là cái tên mà chúng ta đặt cho những sai lầm của mình”

// Analyze the positivity of text using sentiment classifier in C#.
var sentiment = "Experience is simply the name we give our mistakes";
var sentimentClassifier = new SentimentClassifier();
/// PositiveProbability method returns the positive probability of the sentiment.
var positiveProbability = sentimentClassifier.PositiveProbability(sentiment);
Console.WriteLine($"Positive Probability of the sentiment { positiveProbability }");
Positive Probability of the sentiment: **0.1118**

Bất kỳ giá trị nào lớn hơn 0,5 có nghĩa là tình cảm là tích cực và phạm vi từ 0 đến 0,5 cho thấy đó là tiêu cực.

Bây giờ, theo tính tích cực được trích xuất, bạn có thể nhận được Hạng tốt nhất cho tình cảm đó và xác suất của Hạng tốt nhất đó. Chúng tôi nhận thấy rằng xác suất tích cực của nó là 0,11, do đó, nó nên được phân loại là nhận xét tiêu cực và Loại tốt nhất của nó phải là Tiêu cực thay vì Tích cực.

Vì vậy, xác suất loại tốt nhất của nó là gì? Vâng, nó sẽ là 0,89. Bây giờ hãy xem trong mã:

var sentiment = "Experience is simply the name we give our mistakes";
/// Classify method returns ClassificationResult object with the best class probability and name.
var response = sentimentClassifier.Classify(sentiment);
Console.WriteLine($"Best Class Name: {response.BestClassName}");
Console.WriteLine($"Best Class Probability: { response.BestClassProbability}");
Best Class Name: **Negative**
Best Class Probability: **0.8882**

Phân loại nhiều nhận xét bằng cách sử dụng Phân tích tình cảm trong C#

Thông thường chúng tôi có hàng ngàn bình luận và phản hồi, vậy làm thế nào chúng tôi có thể phân tích phản hồi của khách hàng? Rất đơn giản, chỉ cần đặt các phản hồi vào một mảng. Hãy để mảng chuỗi là nguồn xem xét. Nó cũng có thể là một tệp hoặc phản hồi được phân tích cú pháp từ cơ sở dữ liệu hoặc dịch vụ. Chúng ta có thể chuyển đổi mảng chuỗi thành mảng float xác suất tình cảm tích cực.

var sentiments = new string\[\] {
                "Now that is out of the way, this thing is a beast. It is fast and runs cool.",
                "Experience is simply the name we give our mistakes",
                "When I used compressed air a cloud of dust bellowed out from the card (small scuffs and scratches).",
                "This is Pathetic."
            };
            var classifier = new GroupDocs.Classification.SentimentClassifier();
            var sentimentPositivity = sentiments.Select(x => classifier.PositiveProbability(x)).ToArray();
            Console.WriteLine(string.Join("\\n", sentimentPositivity));
**0.8959** - "Now that is out of the way, this thing is a beast..."
**0.1118** - "Experience is simply the name we give our mistakes"
**0.1252** - "When I used compressed air a cloud ..."
**0.0970** - "This is Pathetic."

Chúng ta có thể làm gì với tình cảm mục tiêu? Chúng tôi có thể đo lường mức độ tích cực trung bình hoặc trung bình cho sản phẩm mục tiêu, cửa hàng, v.v. Chọn các giá trị tồi tệ nhất và phản hồi khách hàng. Chúng tôi cũng có thể thực hiện phân tích như tìm sự không nhất quán giữa giá trị xác suất tích cực của sản phẩm và xếp hạng của sản phẩm đó.

Chúng tôi hy vọng bạn thấy bài đăng này hữu ích. Bạn có thể tìm hiểu thêm về phân loại văn bản hoặc phân tích tình cảm trong C# từ các tài nguyên được đề cập.

Tìm hiểu thêm về API GroupDocs.Classification

Tải xuống và chạy các ví dụ về GitHub là cách tốt nhất và dễ dàng nhất để bắt đầu.

Xem thêm