Skip to content
/ emojeez Public

AI-powered semantic search engine for emojis in 50+ languages, developed in Python

License

Notifications You must be signed in to change notification settings

badrex/emojeez

Repository files navigation

Emojeez 💎

AI-powered semantic search engine for emojis in 50+ languages An app for emojis

Python 3.11 License HF Dataset Language Streamlit App Open In Colab

Share Share Share Share Share

Share Emojeez 💎 and star us on GitHub if you like it ⭐

[ How does it work? 🚀 ]

📑 Description

Emojeez 💎 is an AI-powered semantic search engine, which is designed to help users discover and explore emojis. It was developed using advanced natural language processing (NLP) technologies to understand users' text queries and respond with relevant emojis. Emojeez 💎 features a multilingual support for more than 50 languages, enabling exploratory emoji search for users with diverse linguistic backgrounds.

Try out Emojeez 💎 here.

🪄 Core Features

  • Advanced Semantic Emoji Search 🔎 Utilize our embedding-based search algorithm to find emojis that best match the intended meaning of short text queries. This utility is powered by the integration of Qdrant's vector database and the powerful Hugging Face 🤗 Transformers to build an efficient semantic search engine.

  • LLM-Generated Emoji Descriptions 🦜 Go beyond string matching search and experience the power of Large Language Models (LLMs) for better semantic search. Emojeez 💎 relies on enriched semantic descriptions generated by Meta AI's Llama-3-8B model. These descriptions not only define each emoji and its symbolism but also provide better contextualization of its usage in today's text-based communication. For more information, see this Hugging Face 🤗 Dataset.

  • Efficient Indexing for Thousands of Emojis ✨ Explore more than 5000 emojis based on the most recent Unicode standards. While each emoji is searchable by its standard Unicode name, you can also discover emojis by their meaning and how they are used by social media users today. For example, the text query great ambition returns 🚀, while idea returns 💡.

  • Comprehensive Multilingual Support 🌐 Discover emojis using your native language! This feature is facilitated by a Transformer-based multilingual encoder that supports over 50 languages.

  • Intuitive User Interface 🖥️ Interact with Emojeez 💎 via an intuitive user-friendly interface built with Streamlit.

🌱 Getting Started

To get a copy of the project up and running on your local machine for development and testing purposes, follow these instructions.

Prerequisites

What you need to install the software:

  • Python 3.11+
  • Qdrant
  • Sentence Transformers
  • Streamlit

Local Installation

  1. Clone the repository:

    git clone https://github.com/badrex/emojeez.git
    
  2. Navigate to the project directory:

    cd emojeez
    
  3. Install the required packages:

    pip install -r requirements.txt
    
  4. Running the Application

    streamlit run search_emojis_app.py
    
  5. (Optional) Try out the CLI tool

    python3 search_emojis_cli.py 
    
    

ℹ️ How to Use Emojeez 💎

After launching the app, you will see a text input where you can type your query. Enter a phrase or a keyword or a keyphrase, and the app will display emojis based on semantic similarity with your text input. The app use is optimized when the search query is a phrase or a full sentence.

Examples

Here, I provide a few exampels of text queries and the output of the search algorithm

Query Top 10 Emojis
great ambition 🚀 ⚒ 💯 💸 🎯 🧗 🧗‍♂ 🧗🏽‍♂ 🏃‍♀️ 🧗🏾‍♂️
innovative idea 💡 🥚 🧰 🧑‍💻 🚀 🧩 🛞 🌱 💭 🪤
extinct species 🦣 🦖 🦕 🦤 🦥 🏚️ 🇦🇶 🦛 🐧 🦏
animal that builds dams 🦫 🐃 🐏 🐐 🦬 🦦 🐂 🦛 🐺 🦙
protect from evil eye 🧿 👓 🥽 👁 🦹🏻 👀 🦹🏿 🛡️ 🦹🏼 🦹🏻‍♂
popular sport in the USA ⚾ 🏐 🏀 🏈 🥍 🏓 🏑 🤾‍♂ 🤾‍♂️ 🎾
extraterrestrial 👽 🛸 👾 👩🏼‍🚀 👩‍🚀 🧑‍🚀 👨‍🚀 👩🏽‍🚀 🧑🏻‍🚀 👩🏾‍🚀
heart gesture with hand 🫶🏽 🫶🏿 🫶🏾 🫶🏻 🫶🏼 💁🏼‍♂ 🙌🏽 🤟 🫶 🙌

🫶🏼 Contributions

If you would like to contribute to Emojeez 💎, I warmly welcome your contribution 😊 Start by forking the repository and then propose your changes through a pull request. Contributions of all kinds are welcome, from new features and bug fixes to development of test cases. Your input will be highly valued 🤝

🤙🏼 Get in Touch!

Try out Emojeez 💎 in your language and let me know how you like it 😊

Developed with 💚 by Badr Alabsi 👨🏻‍💻