在 C# 中使用 REST API 对文本或文档进行实体分析

您可以轻松地以编程方式对文档或文本执行情绪分析。它用于确定文本或数据是正面的、负面的还是中性的。它还可以帮助您识别和提取意见以用于您的业务运营。在本文中,您将学习如何使用 C# 中的 REST API 对文本或文档执行情感分析。

本文讨论/涵盖以下主题:

情绪分析 REST API 和 .NET SDK

对于文本或文档的情感分析,我将使用 GroupDocs.Classification Cloud 的 .NET SDK API。它允许您将原始文本和文档分类到预定义的类别中。 SDK 支持 IAB-2、Documents 和 Sentiment 等多种分类法类型。它使您能够对支持的文件格式(例如 PDF、Word、OpenDocument、RTF 和 TXT)的文档进行分类。分类信息显示最佳类别及其概率得分。

您可以从 NuGet 包管理器将 GroupDocs.Classification Cloud 安装到您的 Visual Studio 项目中。您可以在包管理器控制台中使用以下命令来安装它:

Install-Package GroupDocs.Classification-Cloud

在开始执行步骤和可用代码示例之前,请从 仪表板 获取您的客户端 ID 和密码。获得客户端 ID 和密码后,添加如下所示的代码:

var configuration = new Configuration();
configuration.ClientId = "659fe7da-715b-4744-a0f7-cf469a392b73";
configuration.ClientSecret = "b377c36cfa28fa69960ebac6b6e36421";

在 C# 中使用 REST API 对文档进行情感分析

请按照以下步骤在云端对您的文档进行情感分析。

上传文件

首先,使用下面给出的代码示例将 DOCX 文件上传到云端:

// 接口初始化
var apiInstance = new FileApi(configuration);

// 在 IOStream 中打开文件
var fileStream = File.Open("C:\\Files\\Classification\\sample.docx", FileMode.Open);

// 创建文件上传请求
var request = new UploadFileRequest("sample.docx", fileStream, "");

// 上传文件
var response = apiInstance.UploadFile(request);

因此,上传的 DOCX 文件将在云端仪表板的 文件部分 中可用。

使用 C# 对文档进行情感分析分类

您可以按照以下步骤轻松地对文档进行情感分析并在云端对其进行分类:

  • 创建 ClassificationApi 的实例
  • 创建 BaseRequest 的实例
  • 在 FileInfo 模型中设置 DOCX 文件路径
  • 将 FileInfo 设置为 BaseRequest 文档
  • 使用 BaseRequest 创建一个 ClassifyRequest
  • 设置情绪分析分类
  • 通过使用 ClassifyRequest 调用 ClassificationApi.Classify() 方法获取结果

以下代码示例展示了如何在 C# 中使用 REST API 对文档执行情感分析。

// 接口初始化
var apiInstance = new ClassificationApi(configuration);

// 创建基础请求
BaseRequest baseRequest = new BaseRequest();
baseRequest.Document = new GroupDocs.Classification.Cloud.Sdk.Model.FileInfo()
{
    Name = "sample.docx",
    Folder = ""
};

// 创建分类请求
var request = new ClassifyRequest(baseRequest);

// 情感分析分类法
request.Taxonomy = "sentiment3";

// 得到分类结果
ClassificationResponse response = apiInstance.Classify(request);

// 显示结果
foreach(var r in response.BestResults)
{
    Console.WriteLine("ClassName :" + r.ClassName);
    Console.WriteLine("ClassProbability :" + r.ClassProbability);
    Console.WriteLine("--------------------------------");
}
ClassName :Positive
ClassProbability :83.35
--------------------------------
ClassName :Neutral
ClassProbability :9.69
--------------------------------
ClassName :Negative
ClassProbability :6.96
--------------------------------

在 C# 中使用 REST API 通过情感分析对文本进行分类

您可以执行原始文本的情感分析,并按照以下步骤在云端以编程方式对其进行分类。

  • 创建 ClassificationApi 的实例
  • 创建 BaseRequest 的实例
  • 为 BaseRequest 描述提供原始文本
  • 使用 BaseRequest 创建一个 ClassifyRequest
  • 设置情绪分析分类
  • 使用 ClassifyRequest 调用 ClassificationApi.Classify() 方法获取结果

以下代码示例展示了如何在 C# 中使用 REST API 对文本执行情感分析。

// 接口初始化
var apiInstance = new ClassificationApi(configuration);

// 创建基础请求
BaseRequest baseRequest = new BaseRequest();
baseRequest.Description = "We support some of the most popular file formats in business, "
    + "including Microsoft Word documents, Excel spreadsheets, PowerPoint presentations, "
    + "Outlook emails and archives, Visio diagrams, Project files, and Adobe Acrobat PDF documents..";

// 创建分类请求
var request = new ClassifyRequest(baseRequest);
request.Taxonomy = "sentiment3";

// 得到分类结果
var response = apiInstance.Classify(request);

// 显示结果
foreach (var r in response.BestResults)
{
    Console.WriteLine("ClassName : " + r.ClassName);
    Console.WriteLine("ClassProbability : " + r.ClassProbability);
    Console.WriteLine("--------------------------------");
}
ClassName : Positive
ClassProbability : 69.41
--------------------------------
ClassName : Neutral
ClassProbability : 22.08
--------------------------------
ClassName : Negative
ClassProbability : 8.51
--------------------------------

C#多句情感分析

您可以按照以下步骤对一批文本中给出的多个句子进行分类,并以编程方式在云上执行情感分析:

  • 创建 ClassificationApi 的实例
  • 创建 BatchRequest 的实例
  • 将一批文本中的多个句子提供给 BatchRequest
  • 设置情绪分析 Taxonomy
  • 使用 BatchRequest 和 Taxonomy 创建 ClassifyBatchRequest
  • 使用 ClassifyBatchRequest 调用 ClassificationApi.ClassifyBatch() 方法获取结果

以下代码示例展示了如何使用 C# 中的 REST API 对一批文本进行情感分析分类。

// 接口初始化
var apiInstance = new ClassificationApi(configuration);

// 创建批量文本请求
var batchRequest = new BatchRequest
{
    Batch = new List<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." },
        { "Excellent work done!" }
    }
};

// 创建分类批处理请求
var request = new ClassifyBatchRequest(batchRequest, taxonomy: "sentiment");

// 得到分类结果
var response = apiInstance.ClassifyBatch(request);

// 显示结果
for (int x=0; x<response.Results.Count; x++)
{
    var res = response.Results[x];
    Console.WriteLine("Text : " + batchRequest.Batch[x]);
    Console.WriteLine("ClassName : " + res.BestClassName);
    Console.WriteLine("ClassProbability : " + res.BestClassProbability);
    Console.WriteLine("--------------------------------");
}
Text : Now that is out of the way, this thing is a beast. It is fast and runs cool.
ClassName : Positive
ClassProbability : 85.27
--------------------------------
Text : Experience is simply the name we give our mistakes
ClassName : Negative
ClassProbability : 72.56
--------------------------------
Text : When I used compressed air a cloud of dust bellowed out from the card (small scuffs and scratches).
ClassName : Negative
ClassProbability : 70.84
--------------------------------
Text : This is Pathetic.
ClassName : Negative
ClassProbability : 88.48
--------------------------------
Text : Excellent work done!
ClassName : Positive
ClassProbability : 90.41
--------------------------------

在线试用

请试用以下免费在线分类工具,该工具是使用上述API开发的。 https://products.groupdocs.app/分类[/](https:/ /products.groupdocs.app/splitter/pdf)

结论

在本文中,您学习了如何使用 REST API 通过情感分析对文档进行分类。您还学习了如何在 C# 中对文本批处理执行情感分析。此外,您还学习了如何以编程方式将 DOCX 文件上传到云端。您可以使用 文档 了解有关 GroupDocs.Classification Cloud API 的更多信息。我们还提供了一个 API 参考 部分,让您可以直接通过浏览器可视化我们的 API 并与之交互。如有任何歧义,请随时在论坛上与我们联系。

也可以看看