# vi3k6i5/flashtext

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/vi3k6i5-flashtext).**

5,715 stars · 596 forks · Python · MIT

## Links

- GitHub: https://github.com/vi3k6i5/flashtext
- awesome-repositories: https://awesome-repositories.com/repository/vi3k6i5-flashtext.md

## Description

FlashText is a dictionary-based text processor and keyword extraction library designed for high-performance string searching and programmatic content replacement. It provides specialized utilities to identify and retrieve predefined terms from text or swap specific terms with replacement strings across large volumes of data.

The project utilizes an Aho-Corasick string search implementation to enable multiple-pattern matching. This approach allows for single-pass text scanning and linear-time complexity search, ensuring processing time depends on the length of the input text rather than the size of the keyword dictionary.

The library covers keyword dictionary management for maintaining targeted term lists and provides workflows for both automated text replacement and keyword extraction. These capabilities allow for the systematic modification and retrieval of predefined terms within massive datasets.

## Tags

### Data & Databases

- [Predefined Keyword Extraction](https://awesome-repositories.com/f/data-databases/predefined-keyword-extraction.md) — Provides a high-performance capability for retrieving predefined terms from text along with their positions. ([source](https://github.com/vi3k6i5/flashtext#readme))
- [Dictionary-Based Text Processors](https://awesome-repositories.com/f/data-databases/dictionary-based-text-processors.md) — Provides a high-performance utility for managing keyword dictionaries to programmatically extract or modify string content.

### Artificial Intelligence & ML

- [Predefined Term Extraction Libraries](https://awesome-repositories.com/f/artificial-intelligence-ml/information-extraction/keyword-and-phrase-extraction/predefined-term-extraction-libraries.md) — Offers a high-performance library for identifying and retrieving predefined terms from large bodies of text.
- [Comprehensive Dictionary Managers](https://awesome-repositories.com/f/artificial-intelligence-ml/machine-learning/language-tools/dictionary-management-utilities/comprehensive-dictionary-managers.md) — Includes a system for maintaining targeted term lists by adding, removing, or querying words within a dictionary. ([source](https://github.com/vi3k6i5/flashtext/))
- [Dictionary-Based Extraction](https://awesome-repositories.com/f/artificial-intelligence-ml/information-extraction/keyword-and-phrase-extraction/dictionary-based-extraction.md) — Facilitates the retrieval of predefined terms from large bodies of text to identify specific entities or topics.

### Development Tools & Productivity

- [Dictionary-Based Replacements](https://awesome-repositories.com/f/development-tools-productivity/regular-expression-search-and-replace/literal-string-replacers/dictionary-based-replacements.md) — Provides a dictionary-driven mechanism to map identified keywords to replacement strings during text reconstruction.

### Programming Languages & Runtimes

- [Custom Dictionaries](https://awesome-repositories.com/f/programming-languages-runtimes/programming-utilities/data-text-processing/custom-dictionaries.md) — Provides tools for maintaining and querying structured custom word lists used for text processing.
- [String Pattern Replacements](https://awesome-repositories.com/f/programming-languages-runtimes/string-pattern-replacements.md) — Implements a function for swapping specific terms with replacement strings across documents programmatically. ([source](https://github.com/vi3k6i5/flashtext#readme))
- [Keyword Replacement Toolkits](https://awesome-repositories.com/f/programming-languages-runtimes/string-pattern-replacements/keyword-replacement-toolkits.md) — Provides a system for swapping specific terms in documents with replacement strings across large volumes of data.
- [Large-Scale Text Handling](https://awesome-repositories.com/f/programming-languages-runtimes/large-scale-text-handling.md) — Efficiently processes massive datasets for keyword search and modification where regular expressions would be too slow.

### Software Engineering & Architecture

- [Finite Automaton Search Algorithms](https://awesome-repositories.com/f/software-engineering-architecture/finite-automaton-search-algorithms.md) — Implements an Aho-Corasick automaton for high-performance multi-pattern matching in a single pass.
- [Aho-Corasick Implementations](https://awesome-repositories.com/f/software-engineering-architecture/string-matching-algorithms/aho-corasick-implementations.md) — Implements the Aho-Corasick algorithm to enable efficient multiple-pattern matching in text.
- [Trie-Based Matching](https://awesome-repositories.com/f/software-engineering-architecture/string-matching-algorithms/multi-pattern-matching-algorithms/trie-based-matching.md) — Employs a trie-based prefix tree to enable fast lookup of multiple keywords in a single pass.
- [Linear-Time String Matching](https://awesome-repositories.com/f/software-engineering-architecture/pattern-matching-libraries/regex-pattern-matchers/linear-time-regex-matchers/linear-time-string-matching.md) — Ensures that processing time grows only with the length of the input text, regardless of dictionary size.
- [Single-Pass Tokenizers](https://awesome-repositories.com/f/software-engineering-architecture/stateless-architectures/stateless-token-validation/stateless-tokenizers/single-pass-tokenizers.md) — Utilizes a single-pass scanning approach to identify all keyword matches without repeated iterations.

### Web Development

- [Automated Text Standardization](https://awesome-repositories.com/f/web-development/content-replacement-commands/automated-text-standardization.md) — Enables systematic swapping of specific words or phrases to standardize or clean large volumes of content.

### Part of an Awesome List

- [Text Processing](https://awesome-repositories.com/f/awesome-lists/devtools/text-processing.md) — Efficient library for searching and replacing text.
