Press "Enter" to skip to content

使用Amazon Comprehend毒性检测标记有害内容

在线社区正推动用户参与度的增长,涵盖的行业包括游戏、社交媒体、电商、约会和在线学习。这些在线社区的成员信任平台所有者提供一个安全和包容性的环境,他们可以自由地消费内容并做出贡献。通常会雇佣内容审核员来审核用户生成的内容,并确保其符合使用条款的安全和合规性。然而,不断增长的不当内容的规模、复杂性和多样性使得人工审核流程难以扩展和昂贵。结果是用户参与度低、有害且不包容的社区,对社区和业务产生负面影响。

随着用户生成内容,机器生成的内容给内容审核带来了新的挑战。它自动生成高度逼真的内容,可能在大规模上是不适当或有害的。业内面临着自动审核由人工智能生成的内容的新挑战,以保护用户免受有害材料的侵害。

在本文中,我们介绍了毒性检测,这是来自Amazon Comprehend的新功能,可帮助您自动检测用户生成或机器生成的文本中的有害内容。其中包括纯文本、从图像提取的文本以及从音频或视频内容转录的文本。

使用Amazon Comprehend检测文本内容中的有害信息

Amazon Comprehend是一种自然语言处理(NLP)服务,利用机器学习(ML)来揭示文本中的有价值的见解和联系。它提供了一系列可以通过API接口进行预训练或自定义的ML模型。Amazon Comprehend现在为文本中的有害内容检测提供了一种直观的基于NLP的解决方案。

Amazon Comprehend毒性检测API会对文本内容进行整体有害性评分,范围从0到1,表示其有害可能性。它还将文本分为以下七个类别,并为每个类别提供一个置信度评分:

  • HATE_SPEECH – 批评、侮辱、谴责或贬低某人或某个群体的言论,基于种族、族裔、性别认同、宗教、性取向、能力、国家起源或其他身份群体的身份。
  • GRAPHIC – 使用直观形象而详细、令人不快和生动的语言。通常会将此类语言冗长化,以加大对收件人的侮辱、不适或伤害。
  • HARASSMENT_OR_ABUSE – 施加扰乱致动力的演讲,无论意图如何,都试图影响收件人的心理幸福,或把一个人物化。
  • SEXUAL – 通过对身体部位、身体特征或性活动的直接或间接参考,表达性兴趣、活动或兴奋。
  • VIOLENCE_OR_THREAT – 包括寻求对某个人或群体施以痛苦、伤害或敌意的威胁的言论。
  • INSULT – 包括贬损、羞辱、嘲笑、侮辱或轻视的语言。
  • PROFANITY – 包含不礼貌、粗俗或冒犯性词语、短语或首字母缩写的言论。

您可以通过直接调用Amazon Comprehend毒性检测API(使用AWS命令行界面(AWS CLI)和AWS SDK)来访问毒性检测API。目前,Amazon Comprehend对英语语言中的毒性检测提供支持。

应用场景

文本审核在管理各种格式的用户生成内容中起着至关重要的作用,包括社交媒体帖子、在线聊天消息、论坛讨论、网站评论等。此外,接受视频和音频内容的平台可以使用此功能对转录的音频内容进行审核。

生成型人工智能和大型语言模型(LLMs)的出现代表了人工智能领域的最新趋势。因此,迫切需要能够审核LLMs生成内容的响应性解决方案。Amazon Comprehend毒性检测API非常适合应对这个需求。

Amazon Comprehend毒性检测API请求

您可以将最多10个文本片段发送到毒性检测API,每个片段大小限制为1 KB。请求中的每个文本片段都将独立处理。在下面的示例中,我们生成一个名为toxicity_api_input.json的JSON文件,其中包含文本内容,包括三个示例文本片段以供审核。请注意,在示例中,亵渎的词语被掩盖为XXXX。

{  "TextSegments": [         {"Text": "打开门,他在右边"},    {"Text": "他在右边,不要管他"},    {"Text": "你在干什么?为什么我不想玩"}  ],  "LanguageCode": "zh"}

您可以使用AWS CLI调用毒性检测API,使用前面包含文本内容的JSON文件:

aws comprehend detect-toxic-content --cli-input-json file://toxicity_api_input.json

Amazon Comprehend毒性检测API响应

毒性检测API的响应JSON输出将包括毒性分析结果在ResultList字段中。 ResultList列出文本段项目,顺序表示文本序列在API请求中接收的顺序。毒性表示检测的整体置信度得分(介于0-1之间)。标签包含毒性标签列表,其中包括置信度得分,按照毒性类型分类。

以下代码显示了以前一节中的请求示例为基础的毒性检测API的JSON响应:

{    "ResultList": [        {            "Toxicity": 0.009200000204145908,            "Labels": [                { "Name": "亵渎", "Score": 0.0007999999797903001},                { "Name": "仇恨言论", "Score": 0.0017999999690800905},                { "Name": "侮辱", "Score": 0.003000000026077032},                { "Name": "不雅内容", "Score": 0.0010000000474974513},                { "Name": "骚扰或虐待", "Score": 0.0013000000035390258},                { "Name": "性别暴力", "Score": 0.0017000000225380063},                { "Name": "暴力或威胁", "Score": 0.004999999888241291}            ]        },        {            "Toxicity": 0.7358999848365784,            "Labels": [                { "Name": "亵渎", "Score": 0.011900000274181366},                { "Name": "仇恨言论", "Score": 0.019500000402331352},                { "Name": "侮辱", "Score": 0.0714000016450882},                { "Name": "不雅内容", "Score": 0.006099999882280827},                { "Name": "骚扰或虐待", "Score": 0.018200000748038292},                { "Name": "性别暴力", "Score": 0.0027000000700354576},                { "Name": "暴力或威胁", "Score": 0.8145999908447266}            ]        },        {            "Toxicity": 0.9843000173568726,            "Labels": [                { "Name": "亵渎", "Score": 0.9369999766349792 },                { "Name": "仇恨言论", "Score": 0.30880001187324524 },                { "Name": "侮辱", "Score": 0.42100000381469727 },                { "Name": "不雅内容", "Score": 0.12630000710487366 },                { "Name": "骚扰或虐待", "Score": 0.25519999861717224 },                { "Name": "性别暴力", "Score": 0.19169999659061432 },                { "Name": "暴力或威胁", "Score": 0.19539999961853027 }            ]        }    ]}

在上述JSON中,第一个文本段被认为是安全的,具有较低的毒性得分。但是,第二个和第三个文本段的毒性得分分别为73%和98%。对于第二个段落,Amazon Comprehend检测到暴力或威胁的高毒性得分;对于第三个段落,它检测到亵渎的高毒性得分。

使用Python SDK的示例请求

以下代码段演示了如何使用Python SDK调用毒性检测API。这段代码接收与之前演示的AWS CLI命令相同的JSON响应。

import boto3 
import base64

# 初始化一个Comprehend boto3客户端对象
comprehend_client = session.client('comprehend')

# 使用文本段调用comprehend检测毒性内容API
response = comprehend_client.detect_toxic_content(
    TextSegments=[
        {"Text":  "and go through the door go through the door he's on the right"},
        {"Text":  "he's on the right XXXXX him"},
        {"Text":  "what the XXXX are you doing man that's why i didn't want to play"}
    ],
    LanguageCode='en'
)

总结

在本文中,我们介绍了新的Amazon Comprehend毒性检测API的概述。我们还介绍了如何解析API响应的JSON。更多信息请参考Comprehend API文档

Amazon Comprehend毒性检测现在已在四个区域中普遍可用:us-east-1,us-west-2,eu-west-1和ap-southeast-2。

要了解有关内容审核的更多信息,请参考AWS内容审核指南。通过AWS,迈出简化内容审核运营的第一步。

Leave a Reply

Your email address will not be published. Required fields are marked *