利用Azure内容审查器审查违规内容(上)

  首先来解释下什么是内容审查器:Azure 内容审查器 API 是一项认知服务,用于检查文本、图像和视频中是否存在可能的冒犯性内容、危险内容或其他令人不适的内容。 找到此类内容时,此服务会将相应的标签(标记)应用到该内容。然后,应用会处理标记的内容,使之符合法规的要求,或者为用户维持一个理想的环境。

  根据这些特性,我们可想而知,它的应用是十分广泛的,可以应用到社交通讯平台的内容审查,媒体公司的内容审查,游戏公司的聊天室审查等等。

  

  如图所示,内容审查器服务包含多个可以通过 REST 调用和 .NET SDK 使用的 Web 服务 API。 它还包括人工审阅工具,让审核人员来协助服务改进或优化其审查功能。

  那下面我们就使用C#调用内容审查服务的API接口来分析内容是否有【18禁】或是【冒犯性】的内容。

  首先我们需要在Azure平台上创建内容审查服务,获取API连接信息。

  

  输入名称,选择位置和定价层,然就点击创建

  

  等待创建完成。

  

  接下来我们需要编写一段C#代码,来调用Content Moderator API接口。

  打开Visual Studio,然后再Visual Studio中创建新的控制台应用(.NET Framework) 项目并将其命名为 ImageModeration。

  然后使用NuGet安装以下包:

  Microsoft.Azure.CognitiveServices.ContentModerator

  Microsoft.Rest.ClientRuntime

  Newtonsoft.Json

  创建Content Moderator 客户端 ,注意这里只需要更新你的API所在的区域和APIkey

  1. public static class Clients

  2. {

  3. private static readonly string AzureRegion = "YOUR API REGION";

  4. private static readonly string AzureBaseURL =$"https://{AzureRegion}.api.cognitive.microsoft.com";

  5. private static readonly string CMSubscriptionKey = "YOUR API KEY";

  6. public static ContentModeratorClient NewClient()

  7. {

  8. ContentModeratorClient client = new ContentModeratorClient(new ApiKeyServiceClientCredentials(CMSubscriptionKey));

  9. client.Endpoint = AzureBaseURL;

  10. return client;

  11. }

  12. }

  然后我们需要定义分析的源和输出的结果

  这里我把分析的图片URL放入txt文档中

  https://moderatorsampleimages.blob.core.windows.net/samples/sample2.jpg

  https://moderatorsampleimages.blob.core.windows.net/samples/sample5.png

  http://pic.pimg.tw/k110107632/1387547248-3785354604.jpg

  代码如下:

  1. //The name of the file that contains the image URLs to evaluate.

  2. private static string ImageUrlFile = "ImageFiles.txt";

  3.郑州不孕不育医院:http://jbk.39.net/yiyuanzaixian/zztjyy/郑州不孕不育医院哪家好:http://jbk.39.net/yiyuanzaixian/zztjyy/郑州不孕不育医院排行:http://jbk.39.net/yiyuanzaixian/zztjyy/

  4. ///The name of the file to contain the output from the evaluation.

  5. private static string OutputFile = "ModerationOutput.json";

  接下来我们需要定义图像评估方法,这里我们定义三种(图像审查、文本分析和人脸识别)

  1. // Evaluates an image using the Image Moderation APIs.

  2. private static EvaluationData EvaluateImage(

  3. ContentModeratorClient client, string imageUrl)

  4. {

  5. var url = new BodyModel("URL", imageUrl.Trim());

  6.

  7. var imageData = new EvaluationData();

  8.

  9. imageData.ImageUrl = url.Value;

  10.

  11. // Evaluate for adult and racy content.

  12. imageData.ImageModeration =

  13. client.ImageModeration.EvaluateUrlInput("application/json", url, true);

  14. Thread.Sleep(1000);

  15.

  16. // Detect and extract text.

  17. imageData.TextDetection =

  18. client.ImageModeration.OCRUrlInput("eng", "application/json", url, true);

  19. Thread.Sleep(1000);

  20.

  21. // Detect faces.

  22. imageData.FaceDetection =

  23. client.ImageModeration.FindFacesUrlInput("application/json", url, true);

  24. Thread.Sleep(1000);

  25.

  26. return imageData;

  27. }

  设定完成后我们就可以使用内容审查器分析图片内容了。最后会把结果输出到json文件中。

  再下一篇中我们再详细分析输出的结果内容。

原文地址:https://www.cnblogs.com/sushine1/p/11369350.html

时间: 2024-08-05 15:21:23

利用Azure内容审查器审查违规内容(上)的相关文章

Android学习笔记(二十)——自定义内容提供器

//此系列博文是<第一行Android代码>的学习笔记,如有错漏,欢迎指正! 如果我们想要实现跨程序共享数据的功能,官方推荐的方式就是使用内容提供器,可以通过新建一个类去继承 ContentProvider 的方式来创建一个自己的内容提供器: 一.继承ContentProvider的六个方法: ContentProvider 类中有六个抽象方法,我们需要使用子类去继承它,并重写六个方法,我们先来认识这六个类.新建 MyProvider继承自 ContentProvide,代码如下所示: 1 p

android学习十二(android的Content Provider(内容提供器)的使用)

文件存储和SharePreference存储以及数据存储一般为了安全,最好用于当前应用程序中访问和存储数据.内容提供器(Content Provider)主要用于在不同的应用程序之间实现数据共享的功能,它提供了一套完整的机制,允许一个程序访问另一个程序中的数据,同时还能保证被访问数据的安全性.目前使用内容提供器是android实现跨程序共享数据的标准方式.内容提供器可以选择只对一部分数据进行共享,从而保证我们的程序中的隐私数据不会有泄漏的风险. 内容提供器的用法一般有两种,一种是使用现有的内容提

Android入门(十三)内容提供器

原文链接:http://www.orlion.ga/612/ 内容提供器(Content Provider)主要用于在不同的应用程序之间实现数据共享的功能,它提供了一套完整的机制,允许一个程序访问另一个程序中的数据,同时还能保证被访数据的安全性.目前,使用内容提供器是 Android实现跨程序共享数据的标准方式.内容提供器的用法一般有两种, 一种是使用现有的内容提供器来读取和操作相应程序中的数据,另一种是创建自己的内容提供器给我们程序的数据提供外部访问接口. 一.访问其他程序中的数据 Andro

对下载到RSS阅读器里订阅内容

网络推广方法有很多,RSS推广就是其中的一种,RSS订阅能够为网站增加访问量,这是众人皆知的事实.不过,如何推广RSS,让更多人知道并促使更多人订阅RSS,却是一个很大的问题.下面就有我给大家讲解一下什么事RSS推广,如何利用RSS进行网络推广. 首先来说说什么是RSS? RSS是在线共享内容的一种简单方式(也叫聚合内容,Really Simple Syndication).通常在时效性比较强的内容上使用RSS订阅能更快速获取信息.网站提供RSS输出,有利于让用户获取网站内容的最新信息.网络用户

android: 内容提供器简介

我们学了 Android 数据持久化的技术,包括文件存储.SharedPreferences 存 储.以及数据库存储.不知道你有没有发现,使用这些持久化技术所保存的数据都只能在当 前应用程序中访问.虽然文件和 SharedPreferences 存储中提供了 MODE_WORLD_READABLE 和 MODE_WORLD_WRITEABLE 这两种操作模式,用于供给其他的应用程序访问当前应用 的数据,但这两种模式在 Android 4.2 版本中都已被废弃了.为什么呢?因为 Android 官

Android学习笔记(十九)——内容提供器

//此系列博文是<第一行Android代码>的学习笔记,如有错漏,欢迎指正! 内容提供器(Content Provider)主要用于在不同的应用程序之间实现数据共享的功能,它提供了一套完整的机制,允许一个程序访问另一个程序中的数据,同时还能保证被访数据的安全性.当一个应用程序通过内容提供器对其数据提供了外部访问接口,任何其他的应用程序就都可以对这部分数据进行访问.Android 系统中自带的电话簿.短信.媒体库等程序都提供了类似的访问接口,这就使得第三方应用程序可以充分地利用这部分数据来实现更

安卓学习之数据共享、内容提供器Content Provider

内容提供器Content Provider 能够实现不同程序之间内容的共享.安卓提供了这样的一套机制,让一个程序访问另一个程序的数据,同时保证了安全性. 一个程序可以通过内容提供器对其数据提供外部访问接口,这样其它程序就能通过接口来访问数据. ContentResolver 首先我们先介绍这个类.如果想要访问数据提供器中的数据,我们需要借助ContentResolver类.该对象实例可以在Context中调用getContentResolver()方法来获得.ContentResolver中提供

Android内容提供器——创建自己的内容提供器

创建自己的内容提供器很简单,只需要新建一个类继承ContentProvider类,并重写其中的6个抽象方法即可.(需要全部重写) 一 URI的写法 一个标准的内容URI写法有两种: 1.路径结尾,表示访问表中所有内容: content://com.example.app.provider/table1 // * 可以代表任意长度的任意字符,所以也可以写成下面这样 content://com.example.app.provider/* 2.id结尾,表示访问表中特定id的内容: content:

入职小白随笔之Android四大组件——内容提供器详解(Content Provider)

Content Provider 内容提供器简介 内容提供器(Content Provider)主要用于在不同的应用程序之间 实现数据共享的功能,它提供了一套完整的机制,允许一个程序访问另一个程序中的数据,同时还能保证被访数据的安全性,目前,使用内容提供器是Android实现跨程序共享数据的标准方式. 在正式学习内容提供器之前,我们需要先掌握另外一个非常重要的知识--Android运行时权限,因为 在学习内容提供器时,我们会用到这方面的知识.另外运行时权限的知识在以后我们的开发过程中还会经常的涉