Skip to main content

Persian (Farsi) Stopwords

PyPI version License: MIT Python 3.9+

A comprehensive, curated list of Persian (Farsi) stopwords for text processing, NLP, search indexing, and corpus cleaning.

Installation

pip install persian-stopwords

Quick Start

from persian_stopwords import load_stopwords, clean_text

# Load the stopwords set
stopwords = load_stopwords()
print(f"{len(stopwords)} stopwords loaded")

# Remove stopwords from text
cleaned = clean_text("این یک متن نمونه است که می‌خواهیم پاک کنیم")
print(cleaned)
# Output: متن نمونه می‌خواهیم پاک

API

load_stopwords() -> frozenset[str]

Returns the full set of Persian stopwords as a frozenset. Data is loaded from package resources, so it works from any working directory.

from persian_stopwords import load_stopwords

stopwords = load_stopwords()

remove_stopwords(tokens, stopwords=None) -> list[str]

Filters stopwords out of an iterable of tokens. If stopwords is None, uses the built-in list.

from persian_stopwords import remove_stopwords

tokens = "این یک متن نمونه است".split()
cleaned = remove_stopwords(tokens)

clean_text(text, stopwords=None) -> str

Removes Persian stopwords from a whitespace-delimited string.

from persian_stopwords import clean_text

result = clean_text("این یک متن نمونه است")

What's Included

Over 2,900 stopwords including:

  • Pronouns & demonstratives — آن، این، او، آنها، خود، etc.
  • Prepositions & postpositions — از، به، در، با، برای, etc.
  • Conjunctions — و، یا، اما، که، چون, etc.
  • Verbs & verb forms — است، بود، شد، می‌کند, etc.
  • Adverbs — خیلی، بسیار، فقط، همیشه, etc.
  • Question words — چه، کی، کجا، چرا, etc.
  • Filler & interjection words — خب، آها، آهان, etc.
  • Punctuation marks — Persian and common punctuation

Data Format

  • Encoding: UTF-8
  • Format: One word per line
  • Sorting: Persian alphabetical order (آ ا ب پ ت ث ج چ ح خ د ذ ر ز ژ س ش ص ض ط ظ ع غ ف ق ک گ ل م ن و ه ی)
  • Normalization: Zero-width characters and BOM removed; duplicates removed

File Structure

.
├── pyproject.toml                    # Build config and package metadata
├── MANIFEST.in                       # Include data files in sdist
├── README.md
├── LICENSE
├── resources.txt                     # List of source references
├── example.py                        # Standalone usage example
└── src/
    └── persian_stopwords/
        ├── __init__.py               # Package API
        └── data/
            └── stopwords.txt         # The stopwords list (UTF-8)

Sources

This dataset aggregates and refines stopwords from the following sources (see resources.txt for full links):

Contributing

Contributions are welcome! If you find missing stopwords or entries that should be removed:

  1. Fork this repository
  2. Edit src/persian_stopwords/data/stopwords.txt (keep alphabetical order and one word per line)
  3. Submit a pull request

Please ensure entries are:

  • Genuinely stopwords (high-frequency words that carry little semantic meaning)
  • In standard Persian script (avoid ASCII-only or garbled entries)
  • Not duplicates of existing entries

Publishing (for maintainers)

# Build the package
python -m build

# Upload to PyPI
twine upload dist/*

License

MIT License — Copyright (c) 2022 Masoud Kaviani


دیتاست مجموعه کلمات توقف فارسی

این مجموعه داده، شامل بیش از ۲,۹۰۰ کلمه توقف فارسی است که از منابع مختلف جمع‌آوری، پاک‌سازی، و مرتب‌سازی شده است. می‌توانید برای پاک‌سازی متون، پردازش زبان طبیعی، فهرست‌سازی جستجو و کاربردهای مشابه از آن استفاده کنید.

نصب

pip install persian-stopwords

استفاده

from persian_stopwords import load_stopwords, clean_text

stopwords = load_stopwords()
cleaned = clean_text("این یک متن نمونه است")

منابع

منابع این مجموعه داده در فایل resources.txt listing شده‌اند.

Metadata

Release files for persian-stopwords 1.0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for persian-stopwords 1.0.2
File Size Uploaded
persian_stopwords-1.0.2.tar.gz 18.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for persian-stopwords 1.0.2
File Interpreter ABI Platform
persian_stopwords-1.0.2-py3-none-any.whl Python 3 none any Details

Total release size: 34.0 kB

Release files / persian_stopwords-1.0.2.tar.gz

Download URL persian_stopwords-1.0.2.tar.gz
Size 18.7 kB
Tags Source
SHA-256 checksum
How to use checksums
f9a4fec0c8cbe59a5773a9f7fc3b847707a08a3e6a2bfeb0c0ee9c541ce10e07
BLAKE2b-256 checksum
How to use checksums
c59465280657d6c6094b4996b368afa2e0e04f3b208aae793121023e11de23a1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.5

Release files / persian_stopwords-1.0.2-py3-none-any.whl

Download URL persian_stopwords-1.0.2-py3-none-any.whl
Size 15.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4c7fb257c335d97f02b31bb8764bb30e3a63bbcc6a3d653f1c26a83deee2a1e1
BLAKE2b-256 checksum
How to use checksums
2aa2af8dd8afae0b21688904fd69ca214bf30884619f6160981f335d37447e16
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.5

Release history Release notifications | RSS feed

This release

1.0.2 This release

2 release files

1.0.1

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page