A web-based application for stemming Harari language words. This tool helps in reducing Harari words to their root form by removing prefixes and suffixes according to Harari language rules.
# Harari Stemmer (ሀረሪ Stemmer)
A web-based application for stemming Harari language words. This tool helps in reducing Harari words to their root form by removing prefixes and suffixes according to Harari language rules.
## Features
- Harari word stemming
- Transliteration between Harari and English scripts
- Interactive web interface
- Dark/Light mode support
- History tracking of previous stems
- Detailed view of stemming process
## Stemming Rules
The stemmer implements several key rules:
1. Prefix removal (e.g., "kil" when followed by space)
2. Special case handling (e.g., "jiti" → "ja")
3. Handling words with "me" and "bee halti"
4. Processing "xu" and "u" endings
5. Managing "ye" prefixes
6. Removing nominal suffixes (zo, zee, ach)
## Installation
1. Clone the repository:
\`\`\`bash
git clone [repository-url]
cd harari-stemmer
\`\`\`
2. Create a virtual environment:
\`\`\`bash
python -m venv venv
\`\`\`
3. Activate the virtual environment:
- Windows:
\`\`\`bash
venv\Scripts\activate
\`\`\`
- Unix/MacOS:
\`\`\`bash
source venv/bin/activate
\`\`\`
4. Install dependencies:
\`\`\`bash
pip install -r requirements.txt
\`\`\`
## Usage
1. Start the application:
\`\`\`bash
python app.py
\`\`\`
2. Open your web browser and navigate to:
\`\`\`
localhost
\`\`\`
3. Enter a Harari word in the input field and click "Stem"
## Technical Details
- **Backend**: Python Flask
- **Frontend**: HTML, CSS
- **Session Management**: Flask Session
- **Character Mapping**: Comprehensive Harari-to-English transliteration
### Key Features Implementation
- Dark mode toggle with localStorage persistence
- Session-based history tracking
- Responsive design for all screen sizes
- Interactive details view with animations
- Error handling and user feedback
## Dependencies
\`\`\`
Flask==2.0.1
Flask-Session==0.4.0
SQLAlchemy==1.4.23
python-dotenv==0.19.0
\`\`\`
## Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
## Contact
For any …