内容审查器

Azure 内容审查器也是一项认知服务。它支持对文本、图形、视频进行内容审核。可以过滤出某些不健康的内容,关键词。使你的网站内容符合当地的法律法规,提供更好的用户体验。

文本内容审核

其中文本内容的审核应用比较广泛。比如在审核游戏中的群聊内容,过滤掉不健康关键词;在社交媒体发布的内容过滤关键词等。Azure 内容审查器支持对绝大多数语言的审核,当然也包括中文。它已经内置了中文常用关键词列表,当然也可以自定义关键词列表。下面让我们看看如何

创建内容审查器

在portal管理平台找到内容审查器,点击“创建”。



区域选择离你最近的。

定价层选择免费F0。

内容审查器的免费策略为:5000事务/月,1次/s 。



创建完资源后,点击资源左边菜单:密码与终结点。复制好密钥跟终结点信息后面会用到。

使用.NET调用文本审核API

创建控制台项目

使用VS创建一个控制台项目。我们来简单演示下如何使用C#代码来实现文本审核。

创建完控制台项目后,在nuget管理工具里找到:Microsoft.Azure.CognitiveServices.ContentModerator这个包安装之。

编写代码进行审核

修改main方法为以下内容:

    static void Main(string[] args)
{
Console.WriteLine("Hello World!"); var endpoint = "https://x.cognitiveservices.azure.com/";
var subscriptionkey = "x"; var client = new ContentModeratorClient(new ApiKeyServiceClientCredentials(subscriptionkey));
client.Endpoint = endpoint; var text = @"哈哈,从前有个xx,他喜欢吃山芋。他喜欢骂人xxx的,xxx什么的。";
Console.WriteLine(text);
var screen =
client.TextModeration.ScreenText(
"text/plain",
new MemoryStream(Encoding.UTF8.GetBytes(text)),
"zho",
true,
true,
null,
true); foreach (var term in screen.Terms)
{
Console.WriteLine(term.Term);
} Console.ReadLine();
}

代码很简单。实例化一个ContentModeratorClient之后把骂人的话传进去调用ScreenText方法就会返回包含的关键词。

注意第三个参数lang要穿 zho ,不然识别不出来。

让我们看一下识别的结果。可以看到脏话都给识别出来了,哈哈。

自定义关键词列表

Azure已经内置了常用的关键词列表。如果想要加入自定义的关键词可以自己创建关键词列表。在调用ScreenText的时候传入列表的id就可以了。

//自定义过滤关键词列表
static string CreateList(ContentModeratorClient client)
{
Body body = new Body("blacklist", "Term list description");
TermList list = client.ListManagementTermLists.Create("application/json", body);
client.ListManagementTerm.AddTerm(list.Id.ToString(), "二愣子", null); return list.Id.ToString();
}
 var screen =
client.TextModeration.ScreenText(
"text/plain",
new MemoryStream(Encoding.UTF8.GetBytes(text)),
"zho",
true,
true,
listId,//自定义关键词listId
true);

总结

Azure 内容审查器是除了文本审核还包括图片视频内容的审核。本次简单介绍了如何使用.Net平台来实现文本内容的审核。由于Azure已经内置了大量常用关键词,也封装了SDK所以基本上可以做到开箱即用。当然了它还支持REST API方式来调用,这样就不受语言限制了。接下来还会介绍如何进行图片、视频的识别,敬请期待。

关注我的公众号一起玩转技术

Azure 内容审查器之文本审查的更多相关文章

  1. Azure内容审查器之羞羞图审查

    上一篇 Azure 内容审查器之文本审查我们已经介绍了如果使用Azure进行文字内容的审核.对于社区内容,上传的图片是否含有羞羞内容也是需要过虑的.但是最为一般开发者自己很难实现这种级别的智能识别.但 ...

  2. 转换 Html 内容为纯文本内容(html,文本互转)

    转自http://www.cnblogs.com/jyshi/archive/2011/08/09/2132762.html : /// <summary> /// 转换纯文本内容为 HT ...

  3. python开发_tkinter_获取文本框内容_给文本框添加键盘输入事件

    在之前的blog中有提到python的tkinter中的菜单操作 python开发_tkinter_窗口控件_自己制作的Python IDEL_博主推荐 python开发_tkinter_窗口控件_自 ...

  4. 获取input type=file 的文件内容(纯文本)

    一.获取input type=file 的文件内容(纯文本) 1.需求一 通过点击其他事件,来触发 文件选择框(限定格式为 .c 文件),而不是手动鼠标点击触发. [思路:] step1:将 inpu ...

  5. 编写Java程序,读取文本文档的内容,去除文本中包含的“广告”字样,把更改后的内容保存到一个新的文本文档中

    查看本章节 查看作业目录 需求说明: 读取文本文档的内容,去除文本中包含的"广告"字样,把更改后的内容保存到一个新的文本文档中 实现思路: 在main() 方法中,使用 new F ...

  6. Python: translate()审查清理文本字符串

    ①凌乱的字符串如下: ②创建一个小的转换表格然后使用translate()方法 空白字符\t和\f已经被重新映射到一个空格. \r直接被删除 ③构建一个更大的表格,删除所有的和音符

  7. Azure AI 服务之文本翻译

    当下人工智能可谓是风头正劲,几乎所有的大厂都有相关的技术栈.微软在 AI 领域自然也是投入了重注,并且以 Azure 认知服务的方式投入了市场: 也就是说作为开发者我们不需要学习太多 AI 的理论知识 ...

  8. LINUX文件内容处理及文本编辑器vim

    Linux基本操作命令 echo命令 echo命令: 把echo后面的内容显示到屏幕. -n 显示内容的时候不显示每行结尾的回车 echo 内容 >> 文件名 表示把内容加到一个文件的末尾 ...

  9. 服务端JSON内容中有富文本时

    问题背景 由于数据中存在复杂的富文本,包含各种引号和特殊字符,导致后端和前端通过JSON格式进行数据交互引发前端JSON解析出错. 解决方案 后端将富文本内容 ConvertToBase64Strin ...

随机推荐

  1. 区块链入门到实战(21)之以太坊(Ethereum) – 分布式应用(DApp)

    作用:用户交互 分布式应用(DApp)是运行在区块链之上的应用程序,支持区块链网络中用户之间的交互. DApp(decentralized application)的后端代码运行在区块链网络上,这个可 ...

  2. 微信小程序事件绑定

    一 通过实例来认识 (一) 给出代码 我们直接通过一个实例来引入我们想要讲解的内容: <input type="text" bindinput="handleInp ...

  3. 再爆安全漏洞,这次轮到Jackson了,竟由阿里云上报

    冤冤相报何时了,得饶人处且饶人.本文已被 https://www.yourbatman.cn 收录,里面一并有Spring技术栈.MyBatis.JVM.中间件等小而美的专栏供以免费学习.关注公众号[ ...

  4. 【图像增强】CLAHE 限制对比度自适应直方图均衡化

    文章目录: 目录 1 基本概述 2 竞赛中的CLAHE实现 3 openCV绘制直方图 4 对比度Contrast 5 Contrast Stretching 6 Histogram Equaliza ...

  5. 机器学习,详解SVM软间隔与对偶问题

    今天是机器学习专题的第34篇文章,我们继续来聊聊SVM模型. 我们在上一篇文章当中推导了SVM模型在硬间隔的原理以及公式,最后我们消去了所有的变量,只剩下了\(\alpha\).在硬间隔模型当中,样本 ...

  6. Agumaster 增加日交易数据列表

  7. 循序渐进VUE+Element 前端应用开发(20)--- 使用组件封装简化界面代码

    VUE+Element 前端应用,比较不错的一点就是界面组件化,我们可以根据重用的指导方针,把界面内容拆分为各个不同的组合,每一个模块可以是一个组件,也可以是多个组件的综合体,而且这一个过程非常方便. ...

  8. Win10更新后蓝牙出现故障的解决方法

    昨天Win10自动更新后,我发现我的键盘突然就不管用了,检查了一下发现原来蓝牙没有打开,同时任务栏中的蓝牙图标也不见了. 不久之前,这样的情况已经出现过了一次,那次好像更新系统后就好了,但这次是系统更 ...

  9. linux下设置账户锁定阈值:登录失败n次,多长时间后解锁重新登录

    在centos系统下: 1.执行命令 vim /etc/pam.d/system-auth或vim /etc/pam.d/ login 2.执行命令 vim /etc/pam.d/sshd 3.在上面 ...

  10. [LeetCode]剑指 Offer 52. 两个链表的第一个公共节点

    题解 nodeA走一个链表A(A独有+公共),再走B独有的长度, nodeB走一个链表B(B独有+公共),再走A独有的长度. 结果:两者相遇点即为交点:若没有交点,两者都走到null,会返回null. ...