{
  "slug": "stopword-filter",
  "name": "gizza-ai/stopword-filter",
  "version": "0.1.0",
  "title": "Stop Word Remover — Strip Stop Words From Text — gizza.ai",
  "description": "Remove stop words from text in 8 languages, or use your own list. Whole-word matching, a keep list, and a removed-words report. Runs in your browser, free.",
  "tags": [
    "stop word remover",
    "remove stop words",
    "stopword filter",
    "stop words list",
    "text preprocessing",
    "nlp text cleaner",
    "seo keyword cleaner",
    "multilingual stopwords"
  ],
  "category": "developer",
  "urls": {
    "page": "https://gizza.ai/tools/stopword-filter/",
    "markdown": "https://gizza.ai/tools/stopword-filter/index.md",
    "descriptor": "https://gizza.ai/tools/stopword-filter/tool.json",
    "deep_link_example": "https://gizza.ai/tools/stopword-filter/?text=Paste%20the%20text%20to%20filter%E2%80%A6&language=english&custom_words=brand%2C%20click%20here%2C%20lorem&keep_words=not%2C%20no%2C%20without&case_sensitive=true&remove_punctuation=true&output=text"
  },
  "cli": "gizza tool stopword-filter \"Paste the text to filter…\"",
  "tool": {
    "description": "Remove stop words (the, and, of, …) from text using a built-in list for English, Spanish, French, German, Italian, Portuguese, Dutch, or Russian — or set language='none' and supply your own list in `custom_words`. Matching is whole-word, so 'the' never touches 'theatre', and contractions stay one token. `keep_words` protects words that must survive. `output` picks the view: 'text' (cleaned text), 'removed' (each removed word with its count), or 'stats' (counts summary). Set remove_punctuation=true for a bare token stream.",
    "parameters": {
      "additionalProperties": false,
      "properties": {
        "case_sensitive": {
          "default": false,
          "description": "When false (default), 'The' and 'the' both match a list entry; true removes only exact-case matches.",
          "type": "boolean"
        },
        "custom_words": {
          "default": "",
          "description": "Extra words to remove on top of the built-in list, separated by commas, semicolons, or whitespace.",
          "type": "string"
        },
        "keep_words": {
          "default": "",
          "description": "Words that must never be removed even when a list contains them (same separators as custom_words). Useful for terms like 'not' or 'no'.",
          "type": "string"
        },
        "language": {
          "default": "english",
          "description": "Which built-in stop-word list to remove. 'none' skips the built-in list so only custom_words is removed.",
          "enum": [
            "english",
            "spanish",
            "french",
            "german",
            "italian",
            "portuguese",
            "dutch",
            "russian",
            "none"
          ],
          "type": "string"
        },
        "output": {
          "default": "text",
          "description": "Which view to return: 'text' (default) is the cleaned text, 'removed' lists each removed stop word with its count, 'stats' is a word-count summary.",
          "enum": [
            "text",
            "removed",
            "stats"
          ],
          "type": "string"
        },
        "remove_punctuation": {
          "default": false,
          "description": "When true, punctuation is stripped as well, leaving a bare token stream. Line breaks are always kept.",
          "type": "boolean"
        },
        "text": {
          "description": "The text to filter. Up to 200,000 characters.",
          "type": "string"
        }
      },
      "required": [
        "text"
      ],
      "type": "object"
    }
  }
}