awesome-deepseek-integration/deepseek_content_moderation/README.md
google-labs-jules[bot] 800d05606f feat: Add new content moderation project
This commit introduces a new project, `deepseek_content_moderation`, designed to detect sensitive content in text based on configurable keyword lists.

Key features include:
- Customizable categories of sensitive words stored in `config.json`.
- A `Moderator` class (`moderator.py`) that loads the configuration and uses regex for case-insensitive, whole-word matching.
- The `analyze_text` method returns a dictionary of triggered categories and the specific words found.
- Comprehensive unit tests (`tests/test_moderator.py`) using pytest ensure the functionality of the `Moderator` class.
- A detailed `README.md` provides an overview, setup instructions, usage examples, and testing guidelines.

The project structure has been set up to be a valid Python package, with the main directory named `deepseek_content_moderation`.
This project serves as a foundational component for applications requiring basic content filtering capabilities.
2025-06-14 06:02:05 +00:00

3.9 KiB

DeepSeek Content Moderation Tool

Overview

This project provides a Python tool for detecting potentially sensitive content in text. It uses a configurable list of keywords and phrases across various categories to analyze input text and flag any matches. This tool is intended as a basic building block for more complex content moderation systems.

Features

  • Configurable Categories: Define your own categories of sensitive content and the keywords/phrases for each.
  • JSON Configuration: Sensitive word lists are managed in an easy-to-edit config.json file.
  • Regex-Based Matching: Uses regular expressions for case-insensitive, whole-word matching.
  • Returns Matched Categories and Words: Provides a dictionary of categories that were triggered and the specific words found.
  • Extensible: Designed to be integrated into larger applications or workflows.

Project Structure

deepseek_content_moderation/
├── __init__.py
├── config.json
├── moderator.py
├── README.md
└── tests/
    ├── __init__.py
    └── test_moderator.py

Setup and Installation

  1. Prerequisites:

    • Python 3.7+
    • pytest (for running tests): pip install pytest
  2. Configuration (config.json): The config.json file stores the categories and lists of sensitive words. You can edit this file to add, remove, or modify categories and their associated terms.

    Example structure:

    {
      "Profanity": ["example_swear", "another_bad_word"],
      "HateSpeech": ["example_slur", "derogatory_term"],
      // ... other categories
    }
    

    Initially, the file contains a predefined set of categories and example terms based on common types of sensitive content.

Usage

The core functionality is provided by the Moderator class in moderator.py.

from deepseek_content_moderation.moderator import Moderator

# Initialize the moderator (it will load from config.json by default)
# You can also provide a custom path to a config file:
# moderator = Moderator(config_path="path/to/your/custom_config.json")
moderator = Moderator()

text_to_analyze = "This text contains an example_swear and a derogatory_term."
analysis_result = moderator.analyze_text(text_to_analyze)

if analysis_result:
    print("Sensitive content found:")
    for category, words in analysis_result.items():
        print(f"  Category: {category}, Words: {', '.join(words)}")
else:
    print("No sensitive content detected.")

# Example Output:
# Sensitive content found:
#   Category: Profanity, Words: example_swear
#   Category: HateSpeech, Words: derogatory_term

analyze_text(text: str) -> dict

  • Input: A string of text to analyze.
  • Output: A dictionary where keys are the names of sensitive categories found in the text. The value for each key is a list of unique words/phrases from the input text that matched the sensitive terms in that category. If no sensitive content is found, an empty dictionary is returned.

Running Tests

To run the unit tests, navigate to the parent directory of deepseek_content_moderation and run:

python -m pytest

Or, navigate into the deepseek_content_moderation directory and run pytest. Ensure pytest is installed.

Disclaimer

This tool provides basic keyword-based detection. It is not a comprehensive solution for content moderation, which often requires more sophisticated NLP techniques, contextual understanding, and human oversight. The initial lists of sensitive words in config.json are illustrative and will likely need significant expansion and refinement for any practical application.

Contributing

Feel free to expand upon this project. Suggestions for improvement include:

  • More sophisticated matching algorithms (e.g., Levenshtein distance for typos).
  • Support for multiple languages.
  • Integration with machine learning models for nuanced detection.
  • More granular reporting.