O Sensitive-lexicon é um projeto chinês de código aberto de dicionário de sinônimos sensíveis que fornece uma lista de dezenas de milhares de palavras em um arquivo de texto simples. O projeto foi criado para ajudar os desenvolvedores e gerentes de conteúdo a integrar rapidamente um recurso básico de revisão de texto em seus aplicativos ou sites. O tesauro abrange várias áreas sensíveis do mainstream, como política, pornografia, violência etc., e é mantido atualizado por meio do poder da comunidade de se adaptar ao ambiente linguístico on-line em constante mudança. Devido ao seu formato de texto simples, o tesauro pode ser facilmente lido e usado por uma variedade de linguagens de programação e estruturas. Os desenvolvedores podem combinar diferentes algoritmos, como DFA, árvores Trie ou expressões regulares, para implementar a filtragem e a revisão do conteúdo do texto de acordo com suas necessidades comerciais.
Lista de funções
- Ampla cobertura de vocabulárioO tesauro contém dezenas de milhares de palavras sensíveis, abrangendo várias áreas comuns de conteúdo sensível, incluindo política, violência e pornografia.
- Atualizações contínuas da comunidadeO projeto depende das contribuições da comunidade (Issues e Pull Requests) para adicionar constantemente novas palavras e corrigir erros, garantindo que o tesauro acompanhe as mudanças na terminologia da Internet e mantenha sua validade.
- Fácil de integrarTexto simples é fornecido (
.txt
), um formato tão versátil que os desenvolvedores podem integrá-lo facilmente a qualquer linguagem de programação ou estrutura de projeto sem um processo de análise complexo. - Várias implementaçõesOs desenvolvedores podem escolher com flexibilidade diferentes algoritmos de correspondência de strings para usar esse tesauro de acordo com cenários comerciais específicos e requisitos de desempenho, como DFA (Deterministic Finite Automata), Trie Tree ou correspondência de expressão regular básica.
- abertura e transparênciaComo um projeto de código aberto, o conteúdo do tesauro e o histórico de atualizações estão disponíveis publicamente para que os usuários possam revisar, contribuir e fazer download livremente.
Usando a Ajuda
O projeto em si é uma coleção de arquivos de tesauro em vez de um software que pode ser executado diretamente, portanto, não há um processo tradicional de "instalação". Em sua essência, ele fornece os dados, e os desenvolvedores precisam escrever seu próprio código para ler e usar os dados.
Como acessar e usar o tesauro
- Baixar o arquivo do dicionário de sinônimos
A maneira mais direta de obter atualizações facilmente é clonar todo o repositório por meio do Git. Abra seu terminal ou ferramenta de linha de comando e execute o seguinte comando:git clone https://github.com/konsheng/Sensitive-lexicon.git
Se você não estiver familiarizado com o Git, também poderá fazer o download de todo o projeto como um zip clicando no botão "Code" (Código) na página inicial do projeto do GitHub e selecionando "Download ZIP" (Baixar ZIP).
- Selecionando o arquivo de tesauro correto
Nos arquivos de projeto baixados, os arquivos principais sãosensitive-lexicon.txt
Ele contém todos os tipos de palavras sensíveis. O projeto também pode fornecer arquivos de dicionário de sinônimos separados, categorizados por diferentes áreas sensíveis, para que você possa optar por carregar todas as palavras ou apenas categorias específicas de palavras, de acordo com suas necessidades. - Integração no código
A etapa principal da integração de um tesauro é ler em seu programa ossensitive-lexicon.txt
e carrega cada linha (ou seja, uma palavra sensível) dentro dele em uma estrutura de dados (por exemplo, uma lista, coleção ou nó de uma árvore Trie).Implementação básica: usando expressões regulares
Esse é um método simples, mas menos eficiente para cenários em que a quantidade de texto não é grande ou em que os requisitos de desempenho não são altos.- mover::
- através de (uma lacuna)
sensitive-lexicon.txt
Leia todas as palavras sensíveis linha por linha no - Junte essas palavras em um grande padrão de expressão regular com o
|
(ou) Separação. Por exemplo, se o tesauro contiver "palavra um" e "palavra dois", o padrão será(词语一|词语二)
. - Use esse padrão de expressão regular para fazer a correspondência com o texto que você precisa revisar.
- através de (uma lacuna)
Implementação eficiente: usando DFA (autômatos finitos determinísticos) ou árvores Trie
Para ambientes de produção que precisam lidar com grandes quantidades de texto e auditoria de alta frequência, o uso de árvores DFA ou Trie é uma opção mais desejável. Esses tipos de algoritmos têm uma eficiência de correspondência muito alta, e a complexidade de tempo é proporcional ao comprimento do texto a ser correspondido e independente do tamanho do tesauro.- mover::
- Criação de estruturas de dadosNo início de seu aplicativo, leia a seção
sensitive-lexicon.txt
muitas linguagens de programação têm bibliotecas prontas para implementar ambas as estruturas de dados e você não precisa começar do zero. - executar uma correspondênciaTexto: O texto a ser revisado é inserido em uma árvore Trie ou DFA construída para correspondência.
- resultadoO algoritmo retorna se há palavras sensíveis no texto e onde elas estão localizadas. Você pode optar por substituir palavras sensíveis por asteriscos de acordo com suas necessidades comerciais
*
ou simplesmente se recusar a publicar conteúdo com palavras sensíveis.
- Criação de estruturas de dadosNo início de seu aplicativo, leia a seção
Exemplo (pseudocódigo)
# 伪代码,展示基本逻辑 # 1. 加载词库 sensitive_words = set() with open("sensitive-lexicon.txt", "r", encoding="utf-8") as f: for line in f: sensitive_words.add(line.strip()) # 2. 构建高效的匹配器(如此处使用第三方Trie库) from some_trie_library import Trie trie = Trie() for word in sensitive_words: trie.add_word(word) # 3. 检查文本 def check_text(text): found_words = trie.search_all(text) if found_words: print(f"发现敏感词: {found_words}") return False # 包含敏感词 return True # 文本安全 # 4. 应用 user_input = "这是一段用户输入的测试文本。" is_safe = check_text(user_input) if is_safe: print("内容发布成功。") else: print("内容包含不当信息,发布失败。")
- mover::
advertência
- Conformidade com os regulamentosAo usar este tesauro para filtragem de conteúdo, certifique-se de cumprir as leis e os regulamentos relevantes de seu país ou região.
- questão contextualOs critérios de julgamento de palavras sensíveis são amplamente influenciados pela cultura, geografia e contextos específicos. Os desenvolvedores precisam avaliar e ajustar o tesauro com seus próprios cenários de negócios em aplicativos práticos para evitar prejudicar acidentalmente o conteúdo normal.
- Considerações sobre o desempenhoPara aplicativos grandes e altamente simultâneos, é importante escolher um algoritmo de correspondência de alto desempenho (por exemplo, DFA) para evitar que a revisão de conteúdo se torne um gargalo do sistema.
cenário do aplicativo
- Fóruns comunitários e mídias sociais
Ele é usado para analisar automaticamente as postagens, os comentários e as mensagens privadas publicadas pelos usuários e filtrar observações inadequadas que envolvam linguagem abusiva, pornografia, anúncios e outras observações inadequadas, a fim de manter uma atmosfera saudável na comunidade e um ambiente de rede limpo. - jogo on-line
Ele é usado para filtrar o conteúdo de bate-papo no jogo, nomes de personagens, nomes de guildas, etc., para evitar que os jogadores usem palavras não civilizadas ou ilegais, para aprimorar a experiência de jogo e atender aos requisitos regulatórios. - Plataforma de distribuição de conteúdo
Blogs, sites de notícias, plataformas de vídeo, etc. podem usar esse tesauro para a triagem inicial do conteúdo carregado pelo usuário (por exemplo, títulos, descrições, comentários, pop-ups) para reduzir a pressão da revisão manual. - Produtos educacionais e infantis
Ele pode ser usado para bloquear conteúdo inadequado, como violência e pornografia, em aplicativos ou sites destinados a menores de idade para proteger os jovens de informações prejudiciais. - Comunicação dentro da empresa
Ele é usado para monitorar a ferramenta de bate-papo interna ou o sistema de e-mail da empresa para evitar o vazamento de dados confidenciais ou a disseminação de comentários inadequados e para proteger a segurança das informações.
QA
- Esse projeto é apenas um arquivo de dicionário de sinônimos? Existe uma API que pode ser chamada diretamente?
Sim, o núcleo do projeto em si é um arquivo de dicionário de sinônimos em formato de texto simples (sensitive-lexicon.txt
). Ele não fornece uma chamada direta para a API ou serviços de software prontos. Os usuários precisam escrever seu próprio código para ler o arquivo e implementar uma lógica específica de filtragem de texto. - Com que frequência esse tesauro é atualizado?
O projeto é um projeto de código aberto voltado para a comunidade, sem ciclo de atualização fixo. Ele depende das contribuições dos membros da comunidade para suas atualizações. O tesauro é atualizado quando alguém envia um novo vocabulário (via Issue ou Pull Request) e ele é mesclado pelo mantenedor do projeto. - Como posso contribuir com novas palavras sensíveis para este projeto?
Você pode criar um novo "Problema" na página do seu projeto no GitHub, onde listará as palavras que sugere adicionar. Uma maneira mais prescritiva de fazer isso é "bifurcar" o projeto, alterando sua própria cópia do arquivosensitive-lexicon.txt
e, em seguida, inicie um "Pull Request" no projeto original e aguarde até que o mantenedor revise a mesclagem. - O uso desse dicionário de sinônimos faz com que palavras normais sejam filtradas incorretamente?
É possível. Como o tesauro é uma correspondência direta de cadeia de caracteres, pode haver "falsos positivos" (por exemplo, "computer" pode ser filtrado por regras excessivamente amplas porque contém "computing"). (por exemplo, "computer" pode ser filtrado por algumas regras excessivamente amplas porque contém "computing"). Portanto, na prática, é recomendável ajustar o tesauro de acordo com os requisitos comerciais e combiná-lo com algoritmos mais inteligentes (por exemplo, processamento de linguagem natural) para entender o contexto a fim de aumentar a precisão.