A powerful, local semantic search engine that finds the perfect emoji using natural language. Built with the Streamlit framework and Sentence Transformers, it allows users to search for emojis conceptually (e.g., "victory" → ✌️, 🏆, 🎆) rather than just by keyword. It uses a persistent local vector database for fast, efficient queries.
- Natural Language Search: Type complex queries like "feeling loved" or "space travel" to find matching emojis.
- Semantic Understanding: Uses a transformer model to understand the meaning behind emojis, not just their names.
- Blazing Fast: Powered by
sqlite-vecfor millisecond-level vector similarity search. - Persistent Index: efficient local storage using SQLite; indexes thousands of emojis once and reuses the database.
- Modern UI: Clean, responsive interface built with Streamlit, featuring gradient cards and match percentage scores.
- Python: The primary programming language.
- Sentence Transformers:
all-MiniLM-L6-v2model for generating dense vector embeddings.
- Streamlit: For building the interactive web application.
- SQLite: Reliable local database engine.
- sqlite-vec: Vector search extension for SQLite.
- Requests: For fetching the latest emoji definitions from Unicode.org.
Before installation, ensure you have the following:
-
Clone the repository
git clone <repository-url> cd text-to-emoji
-
Install dependencies
pip install -r requirements.txt
(Note: Ensure
sqlite-vecis installed correctly for your platform)
streamlit run main.pyAccessible at http://localhost:8501
On the first run, the app will download the embedding model and index the emoji dataset. This is a one-time process.

