You can find a mini afaan oromo retrieval system
# Afaan Oromo Information Retrieval System (IRS) Project
This project implements a comprehensive Information Retrieval System using text processing techniques to extract, index, and search through a collection of documents. It includes modules for text extraction, word frequency analysis, inverted index creation, and query-based document retrieval. A graphical user interface (GUI) built with Tkinter provides a user-friendly interface for performing searches and viewing results.
## Project Structure
### Files and Directories
- **textProcessor.py**: Contains `Tokenizer`, `StopWord`, and `Stemmer` classes for text preprocessing.
- **textExtractor.py**: Contains the `Binary` class for reading and writing binary data.
- **WordFrequency.py**: Contains the `WordFrequency` class for analyzing word frequencies.
- **Indexing.py**: Contains the `InvertedIndex` class for creating and managing an inverted index.
- **similarityCalculator.py**: Contains the `SimilarityCalculator` class for computing TF-IDF and cosine similarity between queries and documents.
- **IRSystem.py**: Contains the `MiniRetrievalSystem` class for integrating the various components and performing searches.
- **IRGui.py**: Contains the `IRGui` class for the Tkinter-based GUI.
- **documents**: Directory containing the PDF documents to be indexed and searched.
### Classes and Methods
#### Tokenizer Class
- **tokenize(word)**: Tokenizes and normalizes the input word.
#### StopWord Class
- **__init__(wordFrequency)**: Initializes with a word frequency dictionary.
- **remove()**: Removes stop words based on frequency criteria.
#### Stemmer Class
- **apply_cluster_rules(word)**: Applies stemming rules to a word.
- **measure(word)**: Measures vowel-consonant sequences.
- **stem(word)**: Stems the input word.
#### TextExtractor Class
- **extractText(directory_path)**: Extracts text from documents in a directory.
- **Binary Class**
- **save(data, filename)**: Saves data to a binary file.
- **read(filename)**: …