Skip to content

A 3-stage Information Retrieval engine leveraging Elasticsearch, BERT embeddings, and RRF to implement a robust Hybrid Search strategy for EU Research Projects.

License

Notifications You must be signed in to change notification settings

Anthippi/Information-Retrieval-Systems

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

63 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Σύστημα Ανάκτησης Πληροφοριών. Static Badge

Το σύστημα στοχεύει στην αναζήτηση επιστημονικών περιλήψεων από Ευρωπαϊκά Ερευνητικά Έργα (EU Research Projects), χρησιμοποιώντας τόσο κλασικές (Lexical) όσο και σύγχρονες (Semantic) μεθόδους.

Φάση 1: Κλασική Ανάκτηση (phase1_elastic.ipynb)

  • Σκοπός: Υλοποίηση του Baseline συστήματος χρησιμοποιώντας Elasticsearch και τον αλγόριθμο BM25.
  • Λειτουργίες:
    • Προεπεξεργασία κειμένου (Tokenization, Stemming, Lemmatization, Stopword Removal).
    • Δημιουργία ευρετηρίου (Indexing) στο Elasticsearch.
    • Εκτέλεση Boolean ερωτημάτων για βελτιστοποίηση Ακρίβειας/Ανάκλησης.
    • Αξιολόγηση αποτελεσμάτων (MAP, Precision@k, Recall@k).
graph TD
    %% Input
    Docs["Documents"]
    Queries["Queries"]

    %% Process
    subgraph Preprocessing ["Text Processing"]
        Clean["Cleaning & Stemming"]
    end

    subgraph Search_Engine ["Search Engine"]
        Index[("Elasticsearch Index")]
        Algorithm["BM25 Algorithm"]
    end

    %% Output
    Results["Ranked Results"]

    %% Flow
    Docs --> Clean --> Index
    Queries --> Clean --> Algorithm
    Index -.-> Algorithm
    Algorithm --> Results

    %% Styles
    style Preprocessing fill:#e6fcf5,stroke:#0c9,color:#000
    style Search_Engine fill:#fff4e6,stroke:#f66,color:#000
    style Results fill:#e6e6ff,stroke:#333,color:#000
Loading

Φάση 2: Σημασιολογική Ανάκτηση (phase2_minilm.ipynb)

  • Σκοπός: Υλοποίηση συστήματος Dense Retrieval χρησιμοποιώντας Transformers και FAISS.
  • Λειτουργίες:
    • Χρήση του προ-εκπαιδευμένου μοντέλου all-MiniLM-L6-v2 για τη δημιουργία Embeddings (διανυσμάτων).
    • Αναζήτηση ομοιότητας συνημιτόνου (Cosine Similarity) σε διανυσματικό χώρο.
    • Αξιολόγηση της ικανότητας του μοντέλου να αντιλαμβάνεται το νόημα χωρίς λέξεις-κλειδιά.
graph TD
    %% Input Data
    Docs["Documents"]
    Queries["Queries"]

    %% Step 1: Preprocessing
    subgraph Prep ["Data Preparation"]
        Clean["Text Cleaning (Python)"]
    end

    %% Step 2: Vectorization
    subgraph Model ["AI Vectorization (BERT)"]
        Encoder["Transformer Model (MiniLM)"]
        Vectors["Dense Vectors (Embeddings)"]
    end

    %% Step 3: Search
    subgraph Search ["Similarity Search (FAISS)"]
        Index["FAISS Index"]
        Sim["Cosine Similarity Calculation"]
    end

    %% Output
    Results["Top-k Semantic Results"]

    %% Flow Connections
    Docs --> Clean
    Queries --> Clean
    
    Clean --> Encoder
    Encoder --> Vectors
    
    Vectors --> Index
    Index --> Sim
    Sim --> Results

    %% Styles (Pastel Colors + Black Text)
    style Prep fill:#e6fcf5,stroke:#0c9,color:#000
    style Model fill:#ffffcc,stroke:#cccc00,color:#000
    style Search fill:#e6e6ff,stroke:#333,color:#000
    style Vectors fill:#fff,stroke:#333,color:#000
Loading

Φάση 3: Υβριδική Ανάκτηση (phase3_hybrid.ipynb)

  • Σκοπός: Συνδυασμός των δύο προηγούμενων μεθόδων (Hybrid Approach - Retrieve & Re-rank).
  • Λειτουργίες:
    • Retrieve: Ανάκτηση των top-200 υποψηφίων εγγράφων από το Elasticsearch (για υψηλό Recall).
    • Re-rank: Επανακατάταξη των υποψηφίων με χρήση BERT Embeddings (για υψηλό Precision).
    • Fusion: Τελική συγχώνευση των κατατάξεων με τον αλγόριθμο Reciprocal Rank Fusion (RRF).
graph TD
    %% --- INPUT ---
    RawDocs[("Raw Documents")]
    RawQueries[("Raw Queries")]

    %% --- STEP 0: SHARED CLEANING ---
    subgraph Preprocessing ["Data Cleaning (Python)"]
        CleanFunc[("clean_text Function")]
        CleanDocs["Cleaned Documents"]
        CleanQueries["Cleaned Queries"]
        
        CleanFunc --> CleanDocs
        CleanFunc --> CleanQueries
    end

    %% --- STEP 1: ELASTICSEARCH ---
    subgraph Stage1 ["Retrieval (Elasticsearch)"]
        Elastic["Elasticsearch Index (BM25)"]
        Candidates["Top-200 Candidate IDs"]
    end

    %% --- STEP 2: BERT RE-RANKING ---
    subgraph Stage2 ["Re-ranking (BERT Model)"]
        Filter["Filter: Keep only Top-200 Texts"]
        BERT["BERT Model (MiniLM)"]
        SemScores["Semantic Similarity Scores"]
    end

    %% --- STEP 3: FUSION ---
    subgraph Stage3 ["Fusion (RRF)"]
        RRF["Reciprocal Rank<br/>Fusion Algorithm"]
    end

    %% --- OUTPUT ---
    Final["Final Top-50 Results"]

    %% --- FLOW CONNECTIONS ---
    
    %% Cleaning Flow
    RawDocs --> CleanFunc
    RawQueries --> CleanFunc

    %% Stage 1 Flow
    CleanDocs --> Elastic
    CleanQueries --> Elastic
    Elastic --> Candidates

    %% Stage 2 Flow
    Candidates --> Filter
    CleanDocs --> Filter
    
    Filter -- "Text of Top-200" --> BERT
    CleanQueries -- "Text of Query" --> BERT
    
    BERT --> SemScores

    %% Stage 3 Flow
    Candidates -- "Rank A (Lexical)" --> RRF
    SemScores -- "Rank B (Semantic)" --> RRF
    
    RRF --> Final

    %% --- STYLING ---
    style Preprocessing fill:#e6fcf5,stroke:#0c9,color:#000
    style Stage1 fill:#fff4e6,stroke:#f66,color:#000
    style Stage2 fill:#ffffcc,stroke:#cccc00,color:#000
    style Stage3 fill:#99ccff,stroke:#003366,color:#000
    style Final fill:#fff,stroke:#333,color:#000
Loading

Προαπαιτούμενα & Εγκατάσταση

Για να εκτελέσετε τα notebooks, χρειάζεστε τα εξής:

  • Python 3.8+
  • Elasticsearch (Τοπική εγκατάσταση): Πρέπει να τρέχει στη θύρα 9200.
  • trec_eval: Το εκτελέσιμο αρχείο για την αξιολόγηση (συνήθως τοποθετείται σε φάκελο ../../trec_eval/).

Εγκατάσταση Βιβλιοθηκών Python

Εκτελέστε την παρακάτω εντολή για να εγκαταστήσετε τα απαραίτητα πακέτα:

pip install pandas numpy elasticsearch sentence-transformers faiss-cpu nltk scikit-learn matplotlib

About

A 3-stage Information Retrieval engine leveraging Elasticsearch, BERT embeddings, and RRF to implement a robust Hybrid Search strategy for EU Research Projects.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors