敏感词(百度2017秋招真题)

本文介绍了一种文本处理算法,用于识别并屏蔽文本中的敏感词汇。该算法通过遍历文本和敏感词列表,将匹配到的敏感词用星号替换,以达到净化文本的目的。示例代码展示了如何在Java中实现这一功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目描述

大部分论坛、网站等,为了方便管理,都进行了关于敏感词的设定。

在多数网站,敏感词一般是指带有敏感政治倾向、暴力倾向、不健康色彩的词或不文明语,也有一些网站根据自身实际情况,设定一些只适用于本网站的特殊敏感词。比如,当你发贴的时候带有某些事先设定的词时,这个贴是不能发出的。或者这个词被自动替换为星号 (*),或者说是被和谐掉了。请注意敏感词只有小写字母,文本如果中的大写字母当做小写字母处理,出现敏感单词,即使作为子串出现也要被和谐,多个子串重叠他们都要被和谐。

例如当敏感词是gre,eat 是
Your English is Great.
将被和谐成
Your English is *.

请编程,输入给定的文本和关键字,将所有被和谐的部分都打上星号 (*)

输入
输入的第一行包含一个整数 n,表示敏感词的总数。
接下来的 n 行,每行包含一个长度不超过 100 的敏感词,单词不区分大小写。
接下来的一行包含一段长度不超过 10000的字符串表示待处理的文本。

输出
输出一行,表示和谐过后的文本。

样例输入
4
revolution
greatwall
democracy
science
Cross the greatwall, we can reach every corner of the world.

样例输出
Cross the ***, we can reach every corner of the world.

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner in = new Scanner(new BufferedReader(new InputStreamReader(System.in)));
        PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(System.out)));
        int n;
        String[] senWord = new String[105];
        boolean[] flag = new boolean[10050];
        String text;
        String result = "";
        while (in.hasNext()) {
            n = in.nextInt();
            for (int i = 0; i < n; i++) {
                senWord[i] = in.next().toLowerCase();
            }
            in.nextLine();
            text = in.nextLine();
            int begin = -1;
            String temp = text.toLowerCase();
            for (int i = 0; i < n; i++) {
                while ((begin = temp.indexOf(senWord[i], begin + 1)) > -1) {
                    for (int j = begin; j < begin + senWord[i].length(); j++) {
                        flag[j] = true;
                    }
                }
            }
            for (int i = 0; i < text.length(); i++) {
                if(flag[i]){
                    result += '*';
                }else{
                    result += text.charAt(i);
                }
            }
            out.println(result);
        }
        out.flush();
    }

}
特色功能: 1、强大词库:海量词库,第一时间收录最in新词; 2、中英混合输入:无需切换,中英文随意输入; 3、搜索建议功能:无需输入全部关键词,可直接在浏览器中搜索; 4、支持全拼、简拼两种输入模式; 5、云输入功能提供更准确候选词; 6、网址、邮箱地址输入模式; 7、模糊音功能; 8、自定义候选项个数功能; 为改进百度输入法软件质量,为用户提供更优质的服务,现百度输入法提供“加入用户体验改善计划”供用户选择。在安装百度输入法时,用户可以选择是否勾选"加入用户体验改善计划"的选项。如果用户选择了“加入用户体验改善计划”,即表示用户自愿选择向百度提供相关使用信息,百度输入法会定时或不定时地向百度公司发送关于用户的操作过程与输入内容等与使用相关的信息。该等信息将只被用于进行统计意义上的分析,以便百度进一步改进百度输入法,或者提供其他新的产品或服务。安装后,用户也可以随时在百度输入法的【属性设置】→【高级设置】中关闭或打开该选项。 依照我国有关法律法规规定,本计划对有关信息的收集是完全匿名的,不会收集用户的姓名、地址、密码或任何其他有助于识别个人身份的标识信息。并且,除非为了遵守我国法律法规的规定或根据相关政府主管部门的要求,百度公司不会将涉及用户的个人信息提供给任何第三方。
### 百度API敏感词识别使用方法 对于希望利用百度API实现敏感词识别的应用开发者而言,可以采用百度AI开放平台提供的服务来完成这一目标。为了调用该平台上的任何API,包括用于敏感词识别的服务,必须遵循OAuth2.0授权机制,在每次请求时于URL中附加`access_token`参数[^1]。 具体到敏感词识别功能,虽然直接提及此特性的文档未被提供,但从其他相似服务如Typecho中集成的百度文本内容审核插件来看,这类工具通常会对接口进行封装以便更便捷地处理诸如评论之类的用户生成内容,从而自动筛查并阻止不适当的信息发布[^2]。 基于上述信息以及一般性的API设计原则,以下是假设的一个简化版敏感词识别API调用流程: #### 准备工作 - **申请API Key**: 访问百度AI开放平台官网注册账号,并创建应用以获得API key。 - **获取Access Token**: 使用上一步得到的API key换取有效的`access_token`。 #### 调用示例 ```python import requests def check_sensitive_words(text, access_token): url = f"https://aip.baidubce.com/rest/2.0/solution/v1/text_censor/v2/user_defined?access_token={access_token}" headers = { 'Content-Type': 'application/x-www-form-urlencoded' } payload = {'text': text} response = requests.post(url, data=payload, headers=headers).json() if "result" in response and isinstance(response["result"], list) and len(response["result"]) > 0: return True, response['result'] elif "error_code" in response: raise Exception(f'Error {response["error_code"]}: {response["error_msg"]}') return False, [] # 假设已经获得了有效令牌 access_token = "<your_access_token_here>" test_text = "测试一些可能被认为是敏感的内容" is_sensitive, details = check_sensitive_words(test_text, access_token) if is_sensitive: print("存在敏感词汇:", details) else: print("无敏感词汇") ``` 这段代码展示了如何构建一个函数来发送POST请求给百度的文字审查接口,并解析返回的结果判断是否存在敏感词语。需要注意的是实际开发过程中应当妥善保管访问凭证,并按照官方最新指导调整参数设置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值